c4.17 Praticar engenharia do caos
Como diz Werner Vogels: "tudo falha o tempo todo". Injete falhas deliberadamente —primeiro em teste, depois com cuidado em produção— para verificar que a sua arquitetura resiste a condições turbulentas e para fortalecer a ciber-resiliência. É uma prática avançada para equipes com fortes requisitos de disponibilidade.
Guia de implementação
Verifique a resiliência injetando falhas
A alta disponibilidade na nuvem é possível, mas construir arquiteturas resilientes é sua responsabilidade. A engenharia do caos simula falhas deliberadamente —a queda de uma AZ, a falha de uma dependência— para confirmar que a sua arquitetura se comporta como esperado (degradando de forma controlada, fazendo failover) em vez de descobrir as lacunas durante um incidente real. Baseie o seu trabalho de resiliência no pilar de Confiabilidade do Well-Architected.
Ferramentas
O AWS Fault Injection Service (FIS) é um serviço gerenciado de engenharia do caos para executar experimentos controlados (por exemplo parar instâncias, injetar latência, simular a falha de uma AZ). Entre as opções open source está o Chaos Monkey da Netflix.
Faça de forma segura
Esta é uma recomendação avançada; introduzir falhas deliberadamente não é para todos.
- Pratique em ambientes de teste antes de executar experimentos em produção.
- Adote-a se você tem fortes requisitos de disponibilidade ou precisa provar que o seu ambiente resiste a falhas, e uma equipe capacitada para executar os testes.
- Entenda que erros nesses testes podem causar indisponibilidades reais; comece com um raio de impacto pequeno, defina condições de parada e expanda gradualmente.
Como validar
- Você valida a resiliência injetando falhas (por exemplo com o AWS Fault Injection Service)?
- Você pratica em ambientes de teste antes da produção, com condições de parada definidas e um raio de impacto limitado?
- Os experimentos são executados por uma equipe capacitada, com resultados que alimentam melhorias de arquitetura?
Ameaças atendidas
- Uma arquitetura que se supõe resiliente mas nunca foi testada pode falhar de forma inesperada durante uma indisponibilidade real; a engenharia do caos expõe essas fraquezas de forma controlada primeiro.
Cloud Security Maturity Model