Implantar um Aplicativo Web Altamente Disponível

Uma pilha de aplicativos web geralmente inclui um balanceador de carga, vários servidores web e um armazenamento de dados. Para alta disponibilidade, você precisa de uma topologia que inclua recursos redundantes em todas as camadas da pilha.

Arquitetura

Essa arquitetura de referência mostra um aplicativo Web altamente disponível em execução no Oracle Cloud com um banco de dados do Oracle Autonomous Transaction Processing.

Um balanceador de carga público recebe solicitações do cliente da internet e roteia as solicitações para um pool de servidores Web que são distribuídos entre vários domínios de falha. A camada de dados consiste em um banco de dados autônomo com um ponto final privado.

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

Veja a seguir a descrição da ilustração ha-webapp-oci.png
Descrição da ilustração ha-webapp-oci.png

ha-webapp-oci-atp-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 grande distância pode separá-las (entre países ou até mesmo continentes).

    Todos os recursos dessa arquitetura são implantados em uma única região.

  • Domínios de disponibilidade

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

    Os recursos dessa arquitetura são implantados em um único domínio de disponibilidade.

  • Domínios de falha

    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ê 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 alimentação dentro de um domínio de falha.

    A topologia mostrada nessa arquitetura abrange vários domínios de falha.

  • Redes virtuais em nuvem e sub-redes

    Uma VCN é uma rede personalizada e definida por software que você configura em uma região do Oracle Cloud Infrastructure. Como as redes tradicionais de data center, as VCNs permitem 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.

    Nessa arquitetura, os servidores Web são anexados a uma sub-rede pública, e o banco de dados usa uma sub-rede privada.

  • Balanceador de carga

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

  • servidores Web

    O serviço Oracle Cloud Infrastructure Compute permite provisionar e gerenciar hosts de computação na nuvem. Você pode iniciar instâncias de computação com formas que atendam aos seus requisitos de recursos para CPU, memória, largura de banda da rede e armazenamento. Após criar uma instância de computação, você pode acessá-la de forma segura, reiniciá-la, anexar e desconectar volumes e encerrá-la quando não precisar mais dela.

    Os servidores web nesta arquitetura são executados em máquinas virtuais de computação.

  • Banco de dados autônomo de processamento de transações

    O Oracle Autonomous Transaction Processing é um serviço de banco de dados autônomo, com autoproteção e correção que é otimizado para cargas de trabalho de processamento de transações. Não é necessário configurar ou gerenciar nenhum hardware ou instalar qualquer software. O Oracle Cloud Infrastructure trata da criação do banco de dados, bem como de backup, aplicação de patches, upgrade e ajuste do banco de dados.

  • Grupos de segurança de rede (NSG)

    Os NSGs atuam como firewalls virtuais para seus recursos de nuvem. Com o modelo de segurança de confiança zero do Oracle Cloud Infrastructure, todo o tráfego é negado, e você pode controlar o tráfego da rede dentro de uma VCN. Um NSG consiste em um conjunto de regras de segurança de entrada e saída que se aplicam a apenas um conjunto especificado de VNICs em uma única VCN.

    Nessa arquitetura, NSGs separados são usados para o balanceador de carga, os servidores Web e o banco de dados.

  • Tabelas de roteamento

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

  • Gateway de internet

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

  • Gateway NAT (Network Address Translation)

    Um gateway NAT permite que recursos privados em uma VCN acessem hosts na internet, sem expor esses recursos a conexões da internet de entrada.

Recomendações

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

  • Configurações de computação para os servidores Web

    Ao implantar a arquitetura, escolha uma forma apropriada para as instâncias de computação que hospedam os servidores Web, com base nos requisitos de memória e processamento de seu aplicativo.

  • Design da rede

    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 a sub-redes na VCN. Use blocos CIDR que estão dentro do espaço de endereço IP privado padrão.

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

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

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

    Use sub-redes regionais.

Considerações

Ao projetar uma pilha de aplicativos altamente disponível na nuvem, considere os seguintes fatores:

  • Escalabilidade
    • Banco de Dados

      Você pode dimensionar manualmente o número de núcleos de CPU do banco de dados para cima ou para baixo a qualquer momento. O recurso de dimensionamento automático de bancos de dados autônomos permite que o seu banco de dados use até três vezes o número base atual de núcleos de CPU a qualquer momento. Com o aumento da demanda, o dimensionamento automático aumentará automaticamente o número de núcleos em uso. Os bancos de dados autônomos permitem que você dimensione a capacidade de armazenamento a qualquer momento, sem afetar a disponibilidade ou o desempenho.

    • Aplicativo

      Você pode dimensionar seu aplicativo usando o pool de instâncias e os recursos de dimensionamento automático.

      Os pools de instâncias permitem provisionar e criar várias instâncias de computação com base na mesma configuração dentro da mesma região.

      Use o dimensionamento automático para ajustar automaticamente o número de instâncias de computação em um pool de instâncias com base nas métricas de desempenho, como utilização da CPU. O dimensionamento automático ajuda a fornecer desempenho consistente para usuários durante períodos de alta demanda e reduzir seus custos quando a demanda é baixa.

  • Disponibilidade
    • Banco de Dados

      O diagrama de arquitetura mostra um único banco de dados do Oracle Autonomous Transaction Processing. Ao implantar a arquitetura, você pode ativar o Oracle Autonomous Data Guard para provisionar e gerenciar um banco de dados standby.

    • Aplicativo

      Os domínios de falha fornecem a resiliência dentro de um domínio de disponibilidade. Quando possível, considere a distribuição de seus recursos entre diversos domínios de disponibilidade ou várias regiões.

  • Segurança
    • Controle de acesso

      Use políticas para restringir quem pode acessar seus recursos na nuvem e as ações que eles podem executar.

    • Segurança de rede

      O serviço Networking oferece duas funcionalidades de firewall virtual que usam regras de segurança para controlar o tráfego no nível do pacote: listas de segurança e grupos de segurança de rede (NSG). Um NSG consiste em um conjunto de regras de segurança de entrada e saída que se aplicam somente a um conjunto de VNICs de sua escolha em uma única VCN. Por exemplo, você pode escolher todas as instâncias de computação que agem como servidores web na camada web de um aplicativo de várias camadas em sua VCN.

      As regras de segurança NSG funcionam da mesma forma que as regras de lista de segurança. No entanto, para a origem ou o destino de uma regra de segurança NSG, você pode especificar um NSG em vez de um bloco CIDR. Portanto, você pode criar facilmente regras de segurança para controlar o tráfego entre dois NSGs na mesma VCN ou o tráfego em um único NSG. Ao criar um sistema de banco de dados, você pode especificar um ou mais NSGs. Você também pode atualizar um sistema de banco de dados existente para usar um ou mais NSGs.

Implantar

O código Terraform para esta 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á-lo. Como alternativa, faça download do código do GitHub para seu computador, personalize o código e implante a arquitetura usando a CLI do Terraform.

  • Implante usando o Oracle Cloud Infrastructure Resource Manager:
    1. Clique em Implante 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 da tarefa e revise o plano.

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

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

Alterar Log

Esse log lista apenas as alterações significativas: