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.

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:
- Cliqueem
Se você ainda não tiver efetuado sign-in, informe as credenciais da tenancy e do usuário.
- Analise e aceite os termos e as condições.
- Selecione a região onde você deseja disponibilizar a pilha.
- Siga os prompts na tela e as instruções para criar a pilha.
- Depois de criar a pilha, clique em Ações do Terraform e selecione Plano.
- 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.
- Se não forem necessárias mais alterações, retorne à página Detalhes da Pilha, clique em Ações do Terraform e selecione Aplicar.
- Cliqueem
- Implante usando o código Terraform no GitHub:
- Vá para GitHub.
- Clonar ou fazer download do repositório para seu computador local.
- 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.
-
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.
-
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.