Projetar para degradação suave

Last reviewed 2024-12-30 UTC

Esse princípio no pilar de confiabilidade do Google Cloud Framework de arquitetura oferece recomendações para ajudar você a projetar as cargas de trabalho do Google Cloud para falhar de maneira elegante.

Esse princípio é relevante para a resposta na área de foco de confiabilidade.

Visão geral do princípio

A degradação suave é uma abordagem de design em que um sistema que experimenta uma carga alta continua funcionando, possivelmente com desempenho ou precisão reduzidos. A degradação suave garante a disponibilidade contínua do sistema e evita falhas completas, mesmo que o funcionamento do sistema não seja ideal. Quando a carga retorna a um nível gerenciável, o sistema retoma a funcionalidade completa.

Por exemplo, durante períodos de alta carga, a Pesquisa Google prioriza os resultados de páginas da Web com classificação mais alta, o que pode sacrificar um pouco da precisão. Quando a carga diminui, a Pesquisa Google recalcula os resultados da pesquisa.

Recomendações

Para projetar seus sistemas para degradação suave, considere as recomendações nas subseções a seguir.

Implementar limitação

Verifique se as réplicas podem lidar de forma independente com sobrecargas e limitar as solicitações recebidas durante cenários de tráfego intenso. Essa abordagem ajuda a evitar falhas em cascata causadas por mudanças no excesso de tráfego entre zonas.

Use ferramentas como a Apigee para controlar a taxa de solicitações de API durante períodos de tráfego intenso. É possível configurar regras de política para refletir como você quer reduzir as solicitações.

Descartar solicitações em excesso antecipadamente

Configure seus sistemas para descartar solicitações em excesso na camada de front-end para proteger componentes de back-end. A exclusão de algumas solicitações evita falhas globais e permite que o sistema se recupere de forma mais suave.Com essa abordagem, alguns usuários podem encontrar erros. No entanto, é possível minimizar o impacto das falhas, em contraste com uma abordagem como a interrupção de circuito, em que todo o tráfego é interrompido durante uma sobrecarga.

Processar erros parciais e novas tentativas

Crie seus aplicativos para lidar com erros parciais e novas tentativas sem problemas. Esse design ajuda a garantir que o máximo de tráfego possível seja veiculado durante cenários de alta carga.

Testar cenários de sobrecarga

Para validar se os mecanismos de limitação e de descarte de solicitações funcionam de maneira eficaz, simule regularmente as condições de sobrecarga no sistema. Os testes ajudam a garantir que seu sistema esteja preparado para picos de tráfego reais.

Monitorar picos de tráfego

Use ferramentas de análise e monitoramento para prever e responder a picos de tráfego antes que eles se transformem em sobrecargas. A detecção e a resposta precoces podem ajudar a manter a disponibilidade do serviço durante períodos de alta demanda.