Design para Escalabilidade

Um sistema escalável fornece elasticidade. A capacidade de adicionar e remover recursos automaticamente permite que os recursos correspondam mais à demanda atual em um determinado momento.

Dimensione os Recursos da Nuvem para Atender aos seus Requisitos de Carga de Trabalho

Arquiteto Corporativo, Arquiteto de Nuvem, Gerente de Operações de Nuvem

Identifique os recursos de computação e armazenamento exigidos por diferentes níveis de uso da carga de trabalho. Você pode adicionar recursos por dimensionamento horizontal (expansão) ou vertical (expansão).
  • O dimensionamento horizontal significa adicionar mais instâncias de computação para sua carga de trabalho. Isso é muito mais econômico e oferece melhor alta disponibilidade do que o dimensionamento vertical. A maioria dos aplicativos sem monitoramento de estado é mais adequada para dimensionamento horizontal, em que as sessões são armazenadas em armazenamentos de dados centralizados (banco de dados, cache persistente como redis) em vez de nas instâncias de computação.
  • O dimensionamento vertical significa adicionar mais núcleos de OCPU à sua instância de computação. Por exemplo, alterando as instâncias do Oracle Cloud Infrastructure Compute ou do banco de dados para uma forma maior.

Alguns recursos são totalmente elásticos, alguns são dimensionados automaticamente nativamente, outros suportam o dimensionamento por meio de uma API que você pode usar para automatizar o dimensionamento. Identifique recursos que podem ser dimensionados automaticamente e use-os para dimensionar o consumo de cargas de trabalho. Se sua carga de trabalho permitir, escolher um serviço que seja dimensionado automaticamente poderá diminuir radicalmente a complexidade operacional de um ambiente.

Os seguintes serviços do Oracle Cloud Infrastructure suportam o dimensionamento:

  • Oracle Cloud Infrastructure Object Storage

    Fornece uma plataforma de armazenamento de alto desempenho em escala na internet que oferece durabilidade de dados confiável e econômica. O serviço Object Storage pode armazenar uma quantidade ilimitada de dados não estruturados de qualquer tipo de conteúdo, incluindo dados analíticos e conteúdo avançado, como imagens e vídeos. O Object Storage oferece várias interfaces de gerenciamento que permitem gerenciar facilmente o armazenamento em escala. A elasticidade da plataforma permite que você comece em pequena escala e dimensione perfeitamente, sem prejudicar o desempenho ou a confiabilidade do serviço. É um serviço regional.

  • Oracle Cloud Infrastructure File Storage

    É um sistema de arquivos elástico escalável que oferece suporte de kilobytes de dados para petabytes.

  • Dimensionamento Automático do Oracle Cloud Infrastructure Compute

    Permite que você ajuste automaticamente o número de instâncias do serviço Compute em um pool de instâncias com base nas métricas de desempenho, como utilização da CPU. Isso ajuda a fornecer um desempenho consistente para seus usuários finais durante períodos de alta demanda e ajuda a reduzir os custos durante períodos de demanda baixa. Você seleciona uma métrica de desempenho para monitorar e define limites que a métrica de desempenho deve atingir para acionar um evento de dimensionamento automático. Quando o uso do sistema atinge um limite, o dimensionamento automático aloca recursos dinamicamente em tempo quase real. À medida que a carga aumenta, as instâncias são provisionadas automaticamente: o pool de instâncias é ampliado. À medida que a carga diminui, as instâncias são automaticamente removidas: o pool de instâncias é ampliado.

  • Formas do Oracle Cloud Infrastructure Compute

    Você pode usar a API para ajustar a forma de uma instância. As formas padrão alocam CPU e memória em incrementos, e as formas flexíveis permitem qualquer configuração de CPU de 1 CPU a 64 CPUs. Você pode usar o serviço Oracle Cloud Infrastructure Monitoring para monitorar métricas de VM e emitir um alarme quando uma métrica específica for atendida. A notificação de alarme pode chamar uma função para ajustar a forma da VM, conforme necessário.

    Observação:

    O dimensionamento de uma instância de VM causará uma reinicialização.
  • Oracle Cloud Infrastructure Functions

    O OCI Functions fornece uma plataforma Functions-as-a-Service totalmente gerenciada, altamente escalável, sob demanda, criada no Oracle Cloud Infrastructure de nível empresarial e acionada pelo mecanismo de código aberto Fn Project. Use o serviço OCI Functions quando quiser focar a gravação de código para atender às necessidades do negócio. Você não precisa se preocupar com a infraestrutura subjacente porque o OCI Functions garantirá que seu aplicativo esteja altamente disponível, escalável, seguro e monitorado. Você pode implantar seu código, chamá-lo diretamente ou acioná-lo em resposta a eventos e só será cobrado pelos recursos consumidos durante a execução.

  • Serviços do Oracle Cloud Infrastructure Load Balancing

    Um balanceador de carga pode ter sua largura de banda alterada dinamicamente quando necessário. Você pode usar a API para automatizar esse dimensionamento.

  • Oracle Autonomous Database

    O Oracle Autonomous Database fornece dimensionamento automático até três vezes a OCPU, o que permite dimensionamento automático sem chamar uma API separada. Você também pode usar a API para automatizar o dimensionamento. O Oracle Autonomous Database permite dimensionar a CPU ou o armazenamento para cima ou para baixo sem impacto no sistema.

  • Sistemas de Banco de Dados de Máquina Virtual

    O sistema de BD de VM permite que você altere a forma de um sistema de BD de VM para cima ou para baixo. Você pode usar a API para automatizar esse dimensionamento. Você também pode dimensionar o armazenamento on-line de um Sistema de BD de VM, e a Oracle fornece o utilitário Oracle Dynamic Scaling.

    Observação:

    A alteração da forma de um sistema de BD de VM faz com que ele seja reiniciado. Para sistemas de banco de dados de VM com vários nós, isso é feito de forma incremental para manter a disponibilidade do serviço. Certifique-se de configurar o Timeout de Drenagem em seus serviços de aplicativo para configurar o tempo que as operações de dimensionamento aguardam uma operação de dimensionamento antes que as sessões do servidor sejam drenadas.
  • Oracle Exadata Database Service

    O Oracle Exadata Database Service permite que você amplie ou reduza a CPU para nós existentes sem qualquer tempo de inatividade. As versões X8M ou mais recentes permitem que você adicione nós de banco de dados e armazenamento ao cluster para aumentar a CPU, o armazenamento ou ambos. Você pode usar a API ou o utilitário Oracle Dynamic Scaling para automatizar esse dimensionamento.

Distribua Seu Tráfego em Domínios de Disponibilidade e Regiões

Arquiteto Corporativo, Arquiteto de Nuvem, Gerente de Operações de Nuvem

Use políticas de orientação de balanceamento de carga, DNS e gerenciamento de tráfego para distribuir seu tráfego entre vários domínios de disponibilidade, domínios de falha e regiões.

Use os seguintes serviços para distribuir o tráfego entre vários domínios de disponibilidade, domínios de falha e regiões:

  • Regiões, domínios de disponibilidade e domínios de falha

    O Oracle Cloud Infrastructure é hospedado em regiões e domínios de disponibilidade. Uma região é uma área geográfica localizada e um domínio de disponibilidade abrange um ou mais data centers localizados em uma região. Uma região é composta de um ou mais domínios de disponibilidade. A maioria dos recursos do Oracle Cloud Infrastructure são específicos da região, como uma rede virtual na nuvem, ou específicos do domínio de disponibilidade, como uma instância de computação. O tráfego entre os domínios de disponibilidade e entre as regiões é criptografado.

    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. Os domínios de falha oferecem antiafinidade: eles permitem distribuir suas instâncias para que elas não fiquem no mesmo hardware físico em um único domínio de disponibilidade. Uma falha de hardware ou um evento de manutenção de hardware do serviço Compute que afeta um domínio de falha não afeta instâncias em outros domínios de falha.

  • DNS (Sistema de Nomes de Domínio) do Oracle Cloud Infrastructure

    O serviço de DNS ( Domain Name System) do Oracle Cloud Infrastructure permite que você crie e gerencie suas zonas de DNS. É possível criar zonas, adicionar registros a zonas e permitir que a rede de borda do Oracle Cloud Infrastructure trate as consultas de DNS do seu domínio.

  • Políticas de Orientação do Oracle Cloud Infrastructure Traffic Management

    O serviço Oracle Cloud Infrastructure Traffic Management Steering Policies ajuda você a orientar o tráfego para seus pontos finais com base em várias condições, incluindo a integridade do ponto final e as origens geográficas de solicitações DNS.

    Você pode configurar políticas para fornecer respostas inteligentes às consultas de DNS, o que significa que diferentes respostas (pontos finais) podem ser fornecidas para a consulta dependendo da lógica definida pelo cliente na política. O serviço Traffic Management Steering Policies pode considerar a integridade das respostas para fornecer recursos de failover, oferecer a capacidade de carregar o tráfego de balanceamento em vários recursos e considerar o local no qual a consulta foi iniciada para fornecer um mecanismo simples, flexível e avançado para direcionar o tráfego de DNS com eficiência.

  • Oracle Cloud Infrastructure Load Balancing

    O serviço Oracle Cloud Infrastructure Load Balancing automatiza a distribuição de tráfego de um ponto de entrada para vários servidores acessíveis pela sua VCN (rede virtual na nuvem).

    O serviço oferece um balanceador de carga com a sua escolha de endereço IP público ou privado e largura de banda provisionada. Um balanceador de carga melhora a utilização dos recursos, facilita o escalonamento e ajuda a assegurar alta disponibilidade. Você pode configurar várias políticas de balanceamento de carga e verificações de integridade específicas do aplicativo para garantir que o balanceador de carga direcione o tráfego apenas para instâncias saudáveis. O balanceador de carga pode reduzir a sua janela de manutenção diminuindo o tráfego de um servidor de aplicativos não saudável antes de você removê-lo do serviço para manutenção.

Executar Testes de Carga

Arquiteto de Nuvem, Gerente de Operações em Nuvem, Desenvolvedor de Aplicativos

Adote uma metodologia de teste de carga para medir se a atividade de dimensionamento atenderá aos requisitos do seu aplicativo. Execute testes de carga regulares em seu aplicativo para validar seus métodos de dimensionamento. Certifique-se de que os casos de teste reflitam o tráfego real do usuário, se possível, pois os testes artificiais podem fornecer uma falsa sensação de confiança.