Esse conteúdo está desatualizado. Esta versão da Well-Architected Framework agora pode ser encontrada em: https://docs.aws.amazon.com/pt_br/wellarchitected/2022-03-31/framework/reliability.html

REL 12: Como testar a confiabilidade?

Depois de projetar sua carga de trabalho para resiliência à pressão da produção, o teste é a única maneira de garantir que ela opere conforme projetado e com a resiliência esperada.

Recursos

Well-Architected lab: Level 300: Testing for Resiliency of EC2 RDS and S3
Injecting Chaos to Amazon EC2 using AWS Systems Manager
Resilience Engineering: Learning to Embrace Failure
AWS re:Invent 2019: Improving resiliency with chaos engineering (DOP309-R1)
Continuous Delivery and Continuous Integration
Using Canaries (Amazon CloudWatch Synthetics)
Use CodePipeline with AWS CodeBuild to test code and run builds
Automate your operational playbooks with AWS Systems Manager
Principles of Chaos Engineering
Apache JMeter
Casey Rosenthal, Lorin Hochstein, Aaron Blohowiak, Nora Jones, Ali Basiri. “Chaos Engineering” (August 2017)
AWS Marketplace: products that can be used for continuous integration
APN Partner: partners that can help with implementation of a continuous integration pipeline

Melhores práticas:

Plano de melhoria

Usar playbooks para investigar falhas

  • Usar playbooks para identificar problemas: Os manuais são processos documentados para investigar problemas. Faça a documentação dos processos em playbooks para permitir respostas consistentes e rápidas em cenários de falha. Os playbooks devem incluir as informações e as diretrizes necessárias para que uma pessoa com as devidas qualificações colete as informações aplicáveis, identifique possíveis fontes de falha, isole as falhas e determine os fatores contribuintes (ou seja, faça uma análise pós-incidente).
  • Executar análise pós-incidente

  • Estabeleça um padrão para sua análise pós-incidente: Uma boa análise pós-incidente oferece oportunidades para propor soluções comuns a problemas com padrões de arquitetura usados em outros locais nos sistemas.
  • Usar um processo para determinar fatores contribuintes: Tenha um processo para identificar e documentar os fatores que contribuem para um evento para que você possa desenvolver mitigações a fim de limitar ou impedir a recorrência e elaborar procedimentos para respostas rápidas e eficazes. Comunique os fatores contribuintes conforme apropriado, de acordo com o público-alvo.
    What is log analytics?
  • Teste os requisitos funcionais

  • Teste os requisitos funcionais: Esse procedimento inclui testes de unidade e de integração que validam a funcionalidade necessária.
    Use CodePipeline with AWS CodeBuild to test code and run builds
    AWS CodePipeline Adds Support for Unit and Custom Integration Testing with AWS CodeBuild
    Continuous Delivery and Continuous Integration
    Using Canaries (Amazon CloudWatch Synthetics)
    Software test automation
  • Teste os requisitos de escalabilidade e performance

  • Teste os requisitos de escalabilidade e performance: Execute o teste de carga para validar se a carga de trabalho atende aos requisitos de escalabilidade e performance.
    Distributed Load Testing on AWS: simulate thousands of connected users
    Apache JMeter
  • Teste a resiliência por meio da engenharia do caos

  • Teste a resiliência por meio da engenharia do caos: Execute testes que injetam falhas regularmente em ambientes de pré-produção e de produção. Especule como sua carga de trabalho reagirá à falha, depois compare sua hipótese com os resultados do teste e reafirme se elas não corresponderem. Certifique-se de que os testes de produção não afetem os usuários.
    Principles of Chaos Engineering
    Well-Architected lab: Level 300: Testing for Resiliency of EC2 RDS and S3
    Injecting Chaos to Amazon EC2 using AWS Systems Manager
    AWS re:Invent 2019: Improving resiliency with chaos engineering (DOP309-R1)
  • Conduza dias de jogo regularmente

  • Programe os dias de jogo para praticar regularmente os runbooks e os manuais.: Os dias de jogo devem incluir todas as pessoas envolvidas em uma interrupção da produção: proprietário da empresa, equipe de desenvolvimento, equipe operacional e equipes de resposta a incidentes.