Tire partido da elasticidade

Last reviewed 2024-12-06 UTC

Este princípio no pilar de otimização do desempenho da Google Cloud estrutura bem arquitetada fornece recomendações para ajudar a incorporar a elasticidade, que é a capacidade de ajustar os recursos dinamicamente com base nas alterações nos requisitos da carga de trabalho.

A elasticidade permite que diferentes componentes de um sistema sejam dimensionados de forma independente. Esta expansão segmentada pode ajudar a melhorar o desempenho e a eficiência de custos através da atribuição de recursos precisamente onde são necessários, sem aprovisionar em excesso ou em falta os seus recursos.

Vista geral do princípio

Os requisitos de desempenho de um sistema influenciam diretamente quando e como o sistema é dimensionado verticalmente ou horizontalmente. Tem de avaliar a capacidade do sistema e determinar a carga que o sistema deve processar na linha de base. Em seguida, tem de determinar como quer que o sistema responda aos aumentos e diminuições na carga.

Quando a carga aumenta, o sistema tem de escalar na horizontal, escalar na vertical ou ambas as opções. Para a escalabilidade horizontal, adicione nós de réplica para garantir que o sistema tem capacidade geral suficiente para satisfazer o aumento da procura. Para a escalabilidade vertical, substitua os componentes existentes da aplicação por componentes que contenham mais capacidade, mais memória e mais armazenamento.

Quando a carga diminui, o sistema tem de ser reduzido (horizontalmente, verticalmente ou ambos).

Defina as circunstâncias em que o sistema aumenta ou diminui a escala. Planeie aumentar manualmente a escala dos sistemas para períodos conhecidos de tráfego elevado. Use ferramentas como o dimensionamento automático, que responde a aumentos ou diminuições na carga.

Recomendações

Para tirar partido da elasticidade, considere as recomendações nas secções seguintes.

Planeie períodos de carga máxima

Tem de planear um caminho de escalabilidade eficiente para eventos conhecidos, como períodos esperados de aumento da procura dos clientes.

Considere dimensionar o seu sistema antes de períodos conhecidos de tráfego elevado. Por exemplo, se for uma organização de retalho, espera que a procura aumente durante as vendas sazonais. Recomendamos que aumente ou expanda manualmente os seus sistemas antes dessas vendas para garantir que o sistema consegue processar imediatamente o aumento da carga ou ajustar imediatamente os limites existentes. Caso contrário, o sistema pode demorar vários minutos a adicionar recursos em resposta a alterações em tempo real. A capacidade da sua aplicação pode não aumentar com rapidez suficiente e causar atrasos para alguns utilizadores.

Para eventos desconhecidos ou inesperados, como um aumento súbito na procura ou no tráfego, pode usar funcionalidades de dimensionamento automático para acionar o dimensionamento elástico com base em métricas. Estas métricas podem incluir a utilização da CPU, a capacidade de publicação do balanceador de carga, a latência e até métricas personalizadas que define no Cloud Monitoring.

Por exemplo, considere uma aplicação que é executada num grupo de instâncias geridas (GIG) do Compute Engine. Esta aplicação tem um requisito de que cada instância tenha um desempenho ideal até a utilização média da CPU atingir 75%. Neste exemplo, pode definir uma política de escalamento automático que cria mais instâncias quando a utilização da CPU atinge o limite. Estas instâncias recém-criadas ajudam a absorver a carga, o que ajuda a garantir que a utilização média da CPU permanece a uma taxa ideal até ser atingido o número máximo de instâncias que configurou para o MIG. Quando a procura diminui, a política de escala automática remove as instâncias que já não são necessárias.

Planeie reservas de recursos de slots no BigQuery ou ajuste os limites das configurações de escalamento automático no Spanner através do escalamento automático gerido.

Use o ajuste de escala preditivo

Se os componentes do seu sistema incluírem o Compute Engine, tem de avaliar se o dimensionamento automático preditivo é adequado para a sua carga de trabalho. O dimensionamento automático preditivo prevê a carga futura com base nas tendências históricas das suas métricas, por exemplo, a utilização da CPU. As previsões são recalculadas a cada poucos minutos, pelo que o escalador automático adapta rapidamente a respetiva previsão às alterações de carga muito recentes. Sem o dimensionamento automático preditivo, um dimensionador automático só pode dimensionar um grupo de forma reativa, com base nas alterações em tempo real observadas na carga. O dimensionamento automático preditivo funciona com dados em tempo real e dados do histórico para responder à carga atual e prevista.

Implemente 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 da escala automática noutros serviços que requerem regras de ajuste preciso (por exemplo, o Compute Engine), a escala automática sem servidor é instantânea e pode ser reduzida para zero recursos.

Use o modo Autopilot para o Kubernetes

Para aplicações complexas que requerem um maior controlo sobre o Kubernetes, considere o modo Autopilot no Google Kubernetes Engine (GKE). O modo de piloto automático oferece automatização e escalabilidade por predefinição. O GKE dimensiona automaticamente os nós e os recursos com base no tráfego. O GKE gere os nós, cria novos nós para as suas aplicações e configura atualizações e reparações automáticas.