Dimensionar Automaticamente um Aplicativo Web Balanceado por Carga

Para executar seus aplicativos Web na nuvem, é necessária uma infraestrutura confiável e segura, uma topologia elástica e fácil de manter e um faturamento baseado em uso. Um recurso do Oracle Cloud que atende a todos esses requisitos é o dimensionamento automático.

O dimensionamento automático garante que seus recursos na nuvem sejam utilizados de forma eficiente e disponíveis quando necessário. Você pode configurar sua implantação na nuvem para ajustar automaticamente os recursos de computação com base em métricas de desempenho, como a utilização da CPU. Seus usuários têm desempenho consistente mesmo quando a carga é alta. E seus custos são proporcionalmente baixos durante períodos de baixa demanda.

Arquitetura

Esta arquitetura de referência mostra uma topologia de 3 camadas que consiste em um balanceador de carga (LB), uma camada web de dimensionamento automático e um banco de dados altamente disponível.

Todos os recursos são implantados em um único domínio de disponibilidade em uma região do Oracle Cloud Infrastructure. A camada LB, a camada Web e a camada de banco de dados estão isoladas em sub-redes separadas dentro de uma única VCN. Os grupos de segurança de rede (NSGs) servem como firewalls para regular o tráfego de rede de e para os recursos de cada camada. Uma tabela de roteamento anexada a cada sub-rede contém regras para direcionar o tráfego para destinos fora da VCN.

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



dimensionamento automático - oracle.zip

Essa 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 vastas distâncias podem separá-las (entre países ou mesmo continentes).

    Todos os recursos desta arquitetura estão em uma única região.

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

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

  • 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 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 energia dentro de um domínio de falha.

    Os recursos em cada camada dessa arquitetura são distribuídos em vários domínios de falha.

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

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

    O balanceamento de carga e as camadas Web nesta arquitetura usam sub-redes públicas separadas. O banco de dados está anexado a uma sub-rede 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 back-end.

  • Grupos de segurança de rede (NSGs)

    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 de rede dentro de uma VCN. Um NSG consiste em um conjunto de regras de segurança de entrada e saída que se aplicam somente a um conjunto especificado de VNICs em uma única VCN.

    NSGs separados são usados para os recursos em cada camada nesta arquitetura.

  • Tabelas de roteamento

    As tabelas de roteamento virtuais contêm regras para rotear 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.

  • Configuração da instância

    Uma configuração de instância é um modelo que define as definições a serem usadas ao criar instâncias de computação, incluindo detalhes como a imagem-base, a forma e os metadados. Você também pode especificar os recursos associados para a instância, como anexos de volume em blocos e a configuração de rede.

  • Pool de instâncias

    Um pool de instâncias é um grupo de instâncias dentro de uma região que são criadas a partir da mesma configuração de instância e gerenciadas como um grupo.

  • Dimensionamento Automático

    O dimensionamento automático permite ajustar automaticamente o número de instâncias de computação em um pool de instâncias com base em métricas de desempenho, como a utilização da CPU.

    Quando o pool de instâncias é ampliado ou incorporado, o conjunto de backend do balanceador de carga associado é atualizado automaticamente.

  • Autonomous Transaction Processing

    O Oracle Autonomous Transaction Processing é um serviço de banco de dados autônomo, autosseguro e autorreparável que é otimizado para cargas de trabalho de processamento de transações. Você não precisa configurar ou gerenciar nenhum hardware ou instalar nenhum software. O Oracle Cloud Infrastructure trata da criação do banco de dados, bem como do backup, aplicação de patches, upgrade e ajuste do banco de dados.

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 a sub-redes na VCN. Use blocos CIDR que estejam 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ê pretenda configurar conexões privadas.

    Depois de criar um 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.

    Usar sub-redes regionais.

  • Pool de instâncias

    Se não houver restrições, inclua todos os domínios de disponibilidade disponíveis no pool.

  • Configuração da instância

    Escolha formas de instância que ofereçam a melhor relação custo/desempenho e atendam aos requisitos mínimos de sua carga de trabalho.

  • Configuração de dimensionamento automático

    Avalie os requisitos de recursos do seu aplicativo e use essas informações para definir os limites de escalonamento e o comportamento de cool-down durante o escalonamento. Isso determina o custo máximo do pool de instâncias.

Considerações

Ao implantar uma pilha de aplicativos de várias camadas de dimensionamento automático, considere os seguintes fatores:

  • Escalabilidade do banco de dados

    Você pode escalar manualmente o número de núcleos da 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 seu banco de dados use até três vezes o número base atual de núcleos da CPU a qualquer momento. À medida que a demanda aumenta, o dimensionamento automático aumenta automaticamente o número de núcleos em uso. Os bancos de dados autônomos permitem dimensionar a capacidade de armazenamento a qualquer momento sem afetar a disponibilidade ou o desempenho.

  • Disponibilidade do banco de dados

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

  • Disponibilidade do aplicativo

    Os domínios de falha fornecem a resiliência dentro de um domínio de disponibilidade. Sempre que possível, considere distribuir seus recursos entre vários domínios de disponibilidade ou várias regiões.

  • Acesso

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

  • Desempenho

    O tamanho do pool pode ser ampliado ou reduzido automaticamente, mas é importante saber o comportamento da aplicação para que você possa ajustar a política de dimensionamento automático. Os limites de recursos podem afetar a capacidade de expansão do pool.

Implantar

O código necessário para implantar esta arquitetura de referência está disponível no GitHub. Você pode inserir o código no 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 o computador, personalize-o e implante a arquitetura usando a CLI do Terraform.

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

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

    2. Revise e aceite os termos e condições.
    3. Selecione a região em que deseja implantar a pilha.
    4. Siga os prompts e instruções na tela para criar a pilha.
    5. Depois de criar a pilha, clique em Ações do Terraform e selecione Plano.
    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 do Plano 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 o GitHub.
    2. Baixe ou clone o código para o computador local.
    3. Siga as instruções no arquivo README.

Log de Alterações

Este log lista apenas as alterações significativas: