Implantar o Apache Tomcat na computação Ampere A1 baseada em Armas conectada a um banco de dados autônomo

O Apache Tomcat é um servidor de aplicativos Java de código-fonte aberto. Ele implementa as tecnologias Java Servlet, JavaServer Pages, Java Expression Language e Java WebSocket.

Arquitetura

Esta é uma arquitetura de referência multiarco que contém um balanceador de carga, uma camada de aplicativo com o Apache Tomcat em execução nas formas Arm AArch64 (Ampere A1 Compute com Base em Armas) e uma camada de banco de dados com Oracle Autonomous Database em execução no x86.

Como desenvolvedor do Java, você pode aproveitar essa flexibilidade e implantar um aplicativo Web Tomcat usando a segurança e o desempenho das formas Arm no OCI. Nesse cenário, é possível alterar a contagem principal com base nos requisitos do aplicativo.

Os componentes estão localizados em sub-redes diferentes. O balanceador de carga está em uma sub-rede pública. Os servidores Tomcat compartilham uma sub-rede privada e o banco de dados está em sua própria sub-rede privada. Todo o acesso externo é feito por meio do balanceador de carga por meio de um gateway de Internet.

Um aplicativo de amostra que mostra o gerenciamento da sessão do aplicativo usando o banco de dados é incluído.

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

Veja a seguir a descrição da ilustração arquitetura-deploy-tomcat-adb.png
Descrição da ilustração architecture-deploy-tomcat-adb.png

architecture-deploy-tomcat-adb-oracle.zip

A arquitetura tem os seguintes componentes:

  • Região

    Uma região é uma área geográfica localizada composta de um ou mais 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 continentes).

  • Domínios de disponibilidade

    Os domínios de disponibilidade são centros de dados 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ínios 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 de falha

    Um domínio de falha é um agrupamento de hardware e infraestrutura dentro de um domínio de disponibilidade. Cada domínio de disponibilidade tem três domínios de falha com energia e hardware independentes. Quando você coloca instâncias do serviço Compute em vários domínios de falha, os aplicativos podem tolerar falhas físicas do servidor, manutenção do sistema e muitas falhas comuns de rede e energia dentro do domínio de disponibilidade.

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

    Um VCN é uma rede definida por software que você configura em uma região do Oracle Cloud Infrastructure. As VCNs podem ser segmentadas em sub-redes, que podem ser específicas de uma região ou de um domínio de disponibilidade. As sub-redes específicas da região e do domínio de disponibilidade podem coexistir na mesma VCN. 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 ponto de entrada para vários servidores acessíveis em sua VCN. Ao criar a camada de aplicativos no modo de cluster, você pode configurar o balanceador de carga para distribuir o tráfego entre os servidores Tomcat. O balanceador de carga fornece um front-end para os servidores de aplicativos, isolando e impedindo o acesso desnecessário ou não autorizado à camada interna.

  • Listas 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.

  • Tabelas de rotas

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

  • Gateway da Internet

    O gateway de internet permite o tráfego entre a VCN e a internet pública.

  • Servidores Tomcat

    Os servidores Tomcat hospedam o Servlet Java, o JavaServer Pages, o Java Expression Language e o Java WebSockets. Os servidores Tomcat são instalados em formas A1 Ampere baseadas em Armas nesta arquitetura.

  • Servidores de banco de dados

    O Tomcat pode se conectar a qualquer banco de dados que ofereça Conectividade de Banco de Dados JDBC Java. Essa arquitetura usa o Oracle Autonomous Database.

  • Host de Bastion

    O host bastion é uma instância de computação que serve como um ponto de entrada seguro e controlado para a topologia de fora da nuvem. O bastião host é provisionado normalmente em uma zona desmilitarizada (DMZ). Ele permite proteger recursos confidenciais colocando-os em redes privadas que não podem ser acessadas diretamente de fora da nuvem. A topologia tem um único ponto de entrada conhecido que você pode monitorar e auditar regularmente. Como resultado, você pode evitar expor os componentes mais sensíveis da topologia sem comprometer o acesso a eles.

Recomendações

Seus requisitos podem ser diferentes da arquitetura descrita aqui. Usar as recomendações a seguir como ponto inicial.

  • VCN

    Ao criar a VCN, determine quantos endereços IP seus recursos de nuvem em cada sub-rede exigem. Usando a notação CIDR (Classless Inter-Domain Routing), especifique uma máscara de sub-rede e um intervalo de endereços de rede que seja grande o suficiente para os endereços IP necessários. Use um espaço de endereço que esteja dentro dos blocos de endereços IP privados padrão.

    Selecione um intervalo de endereços que não se sobreponha à sua rede local, para que você possa configurar uma conexão entre o VCN e sua rede local, se necessário.

    Depois de criar um VCN, não será possível alterar seu intervalo de endereços.

    Ao projetar as sub-redes, considere seus requisitos de funcionalidade e segurança. Anexe todas as instâncias de computação dentro da mesma camada ou atribuição à mesma sub-rede, que pode servir como um limite de segurança.

    Usar sub-redes regionais.

  • Balanceador de carga

    Esta arquitetura usa um balanceador de carga Always Free de 10 Mbps.

    A forma dos balanceadores de carga não livres começa no 100 Mbps. Dependendo do número de conexões simultâneas necessárias e do throughput total, você pode usar formas maiores.

    Recomendamos que você use nomes DNS porque o endereço IP do balanceador de carga não pode ser reservado.

  • Instâncias

    Como parte das formas flexíveis, todas as tenancies obtêm 4 núcleos de formato de computação Ampere A1 gratuitamente e um total de 24 GB de memória.

  • Sistemas de banco de dados (DB)

    Todas as tenancies recebem dois Autonomous Databases Always Free Oracle. Os Autonomous Databases usam a infraestrutura compartilhada do Exadata, onde o Oracle lida com o provisionamento e a manutenção da infraestrutura.

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

  • Armazenamento

    As instâncias nesta arquitetura usam 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 bastião 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 seguintes pontos ao implantar esta arquitetura de referência.

  • Desempenho

    Essa arquitetura usa os recursos Always Free do Oracle Cloud Infrastructure. Devido às limitações do poder de processamento, esta arquitetura 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, se presente, 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 qualquer intervenção para aproveitar esses recursos. Os servidores Tomcat são implantados como um par e balanceados pelo balanceador de carga. Mais nós podem ser adicionados, mas eles não são incluídos na Camada Always Free.

  • Custo

    Essa arquitetura usa a camada Always Free. Não haverá custo se a configuração de implantação padrão for usada.

Implantar

O código Terraform desta arquitetura de referência está disponível no GitHub. Você pode extrair o código para o Oracle Cloud Infrastructure Resource Manager com um único clique, criar a pilha e implantá-la. Como alternativa, faça download do código do GitHub para seu computador, personalize-o e implante a arquitetura usando a CLI do Terraform.

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

      Se você ainda não tiver efetuado sign-in, informe as credenciais da tenancy e do usuário.

    2. Analise e aceite os termos e as condições.
    3. Selecione a região onde você deseja disponibilizar a pilha.
    4. Siga os prompts na tela e as instruções para criar a pilha.
    5. Depois de criar a pilha, clique em Ações do Terraform e selecione Plano.
    6. Aguarda até que o job seja concluído e revisa 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 do Plano novamente.

    7. Se não forem necessárias mais alterações, retorne à página Detalhes da Pilha, clique em Ações do Terraform e selecione Aplicar.
  • Implante usando o código Terraform no GitHub:
    1. Vá para GitHub.
    2. Clonar ou fazer download do repositório para seu computador local.
    3. Siga as instruções no documento README.

Mais Informações

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

  • Um workshop prático gratuito no Oracle LiveLabs no qual você migra o Tomcat para o Oracle Cloud Infrastructure e estabelece conexão com um Autonomous Database.

    Migrar Aplicativos do Tomcat Java para o OCI Workshop

  • Artigos técnicos, white papers, amostras de código, perguntas frequentes e muito mais que descrevem como usar o JDBC, o Universal Connection Pool e a JVM incorporada para conectar-se ao Oracle Database.

    Desenvolver aplicativos Java com o Oracle Database

  • Um repositório no GitHub que tem amostras de código para um Servlet Java que se conecta ao Oracle Database usando o driver Oracle JDBC.

    Servlet Java Tomcat

Log de Alterações

Este log lista alterações significativas: