Aproveitar a elasticidade

Last reviewed 2026-10-22 UTC

Este princípio no pilar de otimização de desempenho do Google Cloud Well-Architected Framework fornece recomendações para ajudar você a incorporar a elasticidade, que é a capacidade de ajustar recursos dinamicamente com base em mudanças nos requisitos de carga de trabalho.

A elasticidade permite que diferentes componentes de um sistema sejam escalonados de forma independente. Esse escalonamento direcionado pode ajudar a melhorar o desempenho e a eficiência de custos, alocando recursos exatamente onde são necessários, sem provisionamento excessivo ou insuficiente.

Visão geral do princípio

Os requisitos de desempenho de um sistema influenciam diretamente quando e como o sistema é escalonado vertical ou horizontalmente. É preciso avaliar a capacidade do sistema e determinar a carga que ele deve processar no valor de referência. Em seguida, determine como o sistema deve responder aos aumentos e às reduções na carga.

Quando a carga aumenta, o sistema precisa ser escalonar horizontalmente horizontalmente, verticalmente ou de ambas as formas. Para o escalonamento horizontal, adicione nós de réplica para garantir que o sistema tenha capacidade geral suficiente para atender ao aumento da demanda. Para o escalonamento vertical, substitua os componentes atuais do aplicativo por componentes que tenham mais capacidade, mais memória e mais armazenamento.

Quando a carga diminui, o sistema precisa reduzir escala vertical verticalmente, horizontalmente ou de ambas as formas.

Defina as circunstâncias em que o sistema aumenta ou reduz a escala vertical. Planeje o escalonar verticalmente manual dos sistemas para períodos conhecidos de alto tráfego. Use ferramentas como o escalonamento automático, que responde a aumentos ou reduções na carga.

Recomendações

Para aproveitar a elasticidade, considere as recomendações nas seções a seguir.

Planejar períodos de pico de carga

É preciso planejar um caminho de escalonamento eficiente para eventos conhecidos, como períodos esperados de aumento na demanda dos clientes.

Considere escalonar verticalmente o sistema antes de períodos conhecidos de alto tráfego. Por exemplo, se você é uma organização de varejo, espera que a demanda aumente durante as vendas sazonais. Recomendamos que você faça escalonar verticalmente ou escalonar horizontalmente dos sistemas manualmente antes dessas vendas para garantir que o sistema possa lidar imediatamente com o aumento da carga ou ajustar os limites atuais. Caso contrário, o sistema pode levar vários minutos para adicionar recursos em resposta a mudanças em tempo real. A capacidade do aplicativo pode não aumentar com rapidez suficiente e causar atrasos para alguns usuários.

Para eventos desconhecidos ou inesperados, como um aumento repentino na demanda ou no tráfego, use os recursos de escalonamento automático para acionar o escalonamento elástico com base em métricas. Essas métricas podem incluir utilização da CPU, capacidade de veiculação do balanceador de carga, latência e até métricas personalizadas que você define no Cloud Monitoring.

Por exemplo, considere um aplicativo executado em um grupo gerenciado de instâncias (MIG, na sigla em inglês) do Compute Engine. Esse aplicativo exige que cada instância tenha um desempenho ideal até que a utilização média da CPU atinja 75%. Neste exemplo, você pode definir uma política de escalonamento automático que cria mais instâncias quando o uso da CPU atinge o limite. Essas instâncias recém-criadas ajudam a absorver a carga, o que ajuda a garantir que a utilização média da CPU permaneça em uma taxa ideal até que o número máximo de instâncias configurado para o MIG seja atingido. Quando a demanda diminui, a política de escalonamento automático remove as instâncias que não são mais necessárias.

Planeje reservas de slots de recursos no BigQuery ou ajuste os limites para configurações de escalonamento automático no Spanner usando o escalonador automático gerenciado.

Usar o escalonamento preditivo

Se os componentes do sistema incluírem o Compute Engine, avalie se o escalonamento automático preditivo é adequado para sua carga de trabalho. O escalonamento automático preditivo prevê a carga futura com base nas tendências históricas das suas métricas, como o uso da CPU. As previsões são recalculadas a cada poucos minutos, de modo que o escalonador automático se adapta rapidamente às mudanças recentes na carga. Sem o escalonamento automático preditivo, um escalonador automático só pode escalonar um grupo de forma reativa, com base nas mudanças de carga observadas em tempo real. O escalonamento automático preditivo funciona com dados em tempo real e dados históricos para responder à carga atual e prevista.

Implementar arquiteturas sem servidor

Considere implementar uma arquitetura sem servidor com serviços sem servidor que sejam inerentemente elásticos, como os seguintes:

Ao contrário do escalonamento automático em outros serviços que exigem regras de ajuste (por exemplo, o Compute Engine), o escalonamento automático sem servidor é instantâneo e pode reduzir escala vertical para zero recurso.

Usar o modo Autopilot para Kubernetes

Para aplicativos complexos que exigem maior controle sobre o Kubernetes, considere o modo Autopilot no Google Kubernetes Engine (GKE). O modo Autopilot oferece automação e escalonabilidade por padrão. O GKE escalona automaticamente os nós e os recursos com base no tráfego. O GKE gerencia nós, cria novos nós para os aplicativos e configura upgrades e reparos automáticos.