Implantar o WildFly Conectado a um Autonomous Database

O WildFly suporta os padrões mais recentes para acesso a dados baseados em REST, incluindo JAX-RS 2 e JSON-P. B

WildFly, anteriormente conhecido como servidor de aplicativos JBoss, é um servidor de aplicativos de código-fonte aberto compatível com as especificações Jakarta EE 8/9 e Java EE 8. Inclui um componente do servidor Web chamado Submeter. O servidor de aplicativos pode ser configurado para executar e gerenciar uma topologia com vários servidores ou como um servidor independente. O WildFly suporta os padrões mais recentes para acesso a dados baseados em REST, incluindo JAX-RS 2 e JSON-P. Ele fornece um gerenciamento eficiente da memória baseado em subsistemas plugáveis. O WildFly permite um ciclo de desenvolvimento mais rápido com o framework Arquillian fácil de usar.

Arquitetura

Essa arquitetura de referência contém um balanceador de carga, uma camada de aplicativo com arquitetura de vários servidores WildFly, uma camada de banco de dados com o Oracle Autonomous Transaction Processing e um bastion host para acesso seguro à console de administração WildFly.

Os componentes estão localizados em sub-redes diferentes. O balanceador de carga e o host bastion estão em uma sub-rede pública. Os servidores WildFly compartilham uma sub-rede privada e são distribuídos entre domínios de disponibilidade em regiões que permitem a alta disponibilidade e entre domínios de falha.

O banco de dados está em sua própria sub-rede privada. O acesso externo aos servidores de aplicativos é por meio do balanceador de carga por meio de um gateway de Internet, enquanto o acesso à console de administração é por meio de um host bastião.

O diagrama a seguir ilustra essa arquitetura de referência.

Veja a seguir a descrição da ilustração architecture-wildfly-oci.png
Descrição da ilustração architecture-wildfly-oci.png

arquitetura-wildfly-oci-oracle.zip

A arquitetura tem os seguintes componentes:

  • Região

    Uma região do Oracle Cloud Infrastructure é uma área geográfica localizada que contém um ou mais data centers, chamados domínios de disponibilidade. As regiões são independentes de outras regiões e grandes distâncias podem separá-las (entre países ou mesmo continentes).

  • Domínios de disponibilidade

    Os domínios de disponibilidade são data centers independentes e independentes em uma região. Os recursos físicos em cada domínio de disponibilidade são isolados dos recursos nos outros domínios de disponibilidade, o que fornece tolerância a falhas. Os domínios de disponibilidade não compartilham infraestrutura, como energia ou resfriamento, ou a rede de domínio de disponibilidade interna. Portanto, é improvável que uma falha em um domínio de disponibilidade afete os outros domínios de disponibilidade na região.

  • Domínios com falha

    Um domínio de falha é um agrupamento de hardware e infraestrutura dentro de um domínio de disponibilidade. Cada domínio de disponibilidade contém três domínios de falha com energia e hardware independentes. Quando você distribui recursos entre vários domínios de falha, seus aplicativos podem tolerar falhas físicas do servidor, manutenção do sistema e falhas de energia dentro de um domínio de falha.

  • Rede virtual na nuvem (VCN) e sub-redes

    Uma VCN é uma rede personalizável definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes de data center tradicionais, as VCNs dão a você total controle sobre seu ambiente de rede. Uma VCN pode ter vários blocos CIDR não sobrepostos que você pode alterar após criar a VCN. Você pode segmentar uma VCN em sub-redes, que podem ter escopo em uma região ou em um domínio de disponibilidade. Cada sub-rede consiste em um intervalo contínuo de endereços que não se sobrepõem com as outras sub-redes da VCN. Você pode alterar o tamanho de uma sub-rede após a criação. Uma sub-rede pode ser pública ou privada.

  • Balanceador de carga

    O serviço Oracle Cloud Infrastructure Load Balancing fornece distribuição de tráfego automatizada de um único ponto de entrada para vários servidores no backend.

  • Lista de segurança

    Para cada sub-rede, você pode criar regras de segurança que especifiquem a origem, o destino e o tipo de tráfego que deve ser permitido dentro e fora da sub-rede.

  • Tabela de roteamento

    As tabelas de roteamento virtuais contêm regras para rotear o tráfego de sub-redes para destinos fora de uma VCN, geralmente por meio de gateways.

  • Gateway de Internet

    O gateway de internet permite o tráfego entre as sub-redes públicas em uma VCN e a internet pública.

  • servidores WildFly

    Os servidores do WildFly hospedam suas aplicações.

  • Sistema Autonomous Database

    O WildFly pode estabelecer conexão com qualquer banco de dados que ofereça JDBC (Java Database Connectivity). Essa arquitetura oferece a opção de provisionar um Oracle Autonomous Database.

Recomendações

Seus requisitos podem ser diferentes da arquitetura descrita aqui. Use as recomendações a seguir como ponto de partida.

  • VCN

    Ao criar uma VCN, determine o número de blocos CIDR necessários e o tamanho de cada bloco com base no número de recursos que você planeja anexar às sub-redes na VCN. Use blocos CIDR que estão dentro do espaço de endereço IP privado padrão.

    Selecione os blocos CIDR que não se sobrepõem a nenhuma outra rede (no Oracle Cloud Infrastructure, em seu data center local ou em outro provedor de nuvem) para a qual você pretende configurar conexões privadas.

    Depois de criar uma VCN, você poderá alterar, adicionar e remover seus blocos CIDR.

    Ao projetar as sub-redes, considere o fluxo de tráfego e os requisitos de segurança. Anexe todos os recursos em uma camada ou função específica à mesma sub-rede, que pode servir como um limite de segurança.

  • Largura de banda do balanceador de carga

    Ao criar o balanceador de carga, você pode selecionar uma forma predefinida que forneça uma largura de banda fixa ou especificar uma forma personalizada (flexível) na qual você define uma faixa de largura de banda e permite que o serviço dimensione a largura de banda automaticamente com base nos padrões de tráfego. Com qualquer uma das abordagens, você pode alterar a configuração a qualquer momento após criar o balanceador de carga.

  • Instâncias do serviço Compute

    Todas as tenancies obtêm duas instâncias de VM (Always Free Compute Virtual Machine), que essa arquitetura pode usar.

    Se for necessário mais poder de processamento, você poderá selecionar diferentes formas.

  • Sistemas de banco de dados

    Todas as tenancies recebem dois Oracle Autonomous Databases Always Free. Os Autonomous Databases usam o Exadata infrastructure compartilhado, em que o Oracle trata do provisionamento e da manutenção da infraestrutura.

    Se mais de dois bancos de dados forem necessários, use um Oracle Autonomous Database não livre.
  • Armazenamento em bloco

    As instâncias nesta arquitetura usam o armazenamento em blocos regular; nenhum desempenho extra é necessário.

  • Conectividade de rede

    Você pode gerenciar o ambiente conectando-se à sua infraestrutura local existente usando uma VPN site a site ou uma conexão dedicada com o FastConnect.

    Se o ambiente precisar ser segregado da infraestrutura existente ou acessado externamente, um bastion host poderá proteger as conexões de gerenciamento. O bastião host geralmente é provisionado em uma zona desmilitarizada (DMZ). Ele protege recursos confidenciais, colocando-os em redes privadas que não podem ser acessadas diretamente de fora da nuvem. Você pode evitar expor os componentes mais sensíveis da arquitetura sem comprometer o acesso a eles.

Considerações

Considere os pontos a seguir ao implantar esta arquitetura de referência.

  • Desempenho

    Essa arquitetura pode usar os recursos Always Free do Oracle Cloud Infrastructure. Devido às limitações do poder de processamento no nível Always Free, ele não se destina à produção. Para cargas de trabalho mais intensas, as formas regulares de instâncias, balanceadores de carga e bancos de dados devem ser usadas.

  • Segurança

    Exceto para o host bastião e balanceadores de carga, todos os componentes devem ser colocados em sub-redes privadas.

  • Disponibilidade

    Os balanceadores de carga e os bancos de dados são redundantes, não exigindo nenhuma intervenção para aproveitar esses recursos. Os servidores WildFly são implantados como um par e balanceados pelo balanceador de carga. É possível adicionar mais nós, mas eles não estão incluídos na Camada Always Free.

  • Custo

    Essa arquitetura pode usar a camada Always Free. No entanto, os recursos de nível livre podem não ser adequados para cargas de trabalho de produção, caso em que você precisará provisionar recursos e serviços de computação às taxas regulares.

Implantar

O código Terraform para esta arquitetura de referência está disponível como uma pilha de amostra no Oracle Cloud Infrastructure Resource Manager. Você também pode fazer download do código do GitHub e personalizá-lo de acordo com seus requisitos específicos.

  • Implante usando o Oracle Cloud Infrastructure Resource Manager:
    1. Clique em Implantar no Oracle Cloud

      Se você ainda não estiver conectado, informe a tenancy e as credenciais do usuário.

    2. Revise e aceite os termos e condições.
    3. Selecione a região na qual você deseja implantar a pilha.
    4. Siga os prompts na tela e as instruções para criar a pilha.
    5. Após criar a pilha, clique em Ações do Terraform e selecione Planejar.
    6. Aguarde a conclusão do job e revise o plano.

      Para fazer alterações, retorne à página Detalhes da Pilha, clique em Editar Pilha e faça as alterações necessárias. Em seguida, execute a ação Plano novamente.

    7. Se nenhuma alteração adicional for necessária, retorne à página Detalhes da Pilha, clique em Ações do Terraform e selecione Aplicar.
  • Implante usando o código do Terraform no GitHub:
    1. Vá para GitHub.
    2. Clone ou faça download do repositório no computador local.
    3. Siga as instruções no documento README.

Explorar Mais

Links para informações adicionais que podem ajudá-lo a aprender, modificar, usar ou implementar essa arquitetura.

Alterar Log

Esse log lista alterações significativas: