REL 12: Comment tester la fiabilité ?

Une fois que vous avez conçu votre charge de travail pour qu'elle soit résiliente aux sollicitations de la production, les tests sont le seul moyen de s'assurer qu'elle fonctionne comme prévu et d'obtenir la résilience voulue.

Ressources

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

Bonnes pratiques:

Plan d'amélioration

Utilisation de manuels pour enquêter sur les causes des défaillances

  • Utiliser des playbooks pour identifier les problèmes: Les playbooks sont des processus documentés pour enquêter sur les problèmes. Mettez en œuvre des réponses cohérentes et rapides aux échecs en documentant les processus dans des playbooks. Les manuels doivent contenir les informations et les instructions nécessaires pour permettre à une personne compétente de recueillir les informations pertinentes, identifier les causes potentielles de défaillance, isoler les pannes et déterminer les facteurs adjuvants (c'est-à-dire effectuer une analyse post-incident).
  • Exécution d'une analyse post-incident

  • Établissement d'une norme pour votre analyse post-incident: Une bonne analyse post-incident permet de proposer des solutions courantes pour les problèmes avec des modèles d'architecture utilisés dans d'autres compartiments de vos systèmes.
  • Utilisation d'un processus pour déterminer les facteurs adjuvants: Disposez d'un processus pour identifier et documenter les facteurs adjuvants d'un événement, développez des mesures d'atténuation pour limiter ou empêcher sa récurrence, et développez des procédures de réponses rapides et efficaces. Communiquez, le cas échéant, les facteurs adjuvants sur mesure en fonction du public ciblé.
    What is log analytics?
  • Exigences fonctionnelles de test

  • Exigences fonctionnelles de test: Il s'agit, entre autres, des tests unitaires et des tests d'intégration qui valident les fonctionnalités requises.
    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
  • Test des exigences de mise à l'échelle et de performance

  • Test des exigences de mise à l'échelle et de performance: Effectuez un test de charge pour vérifier que la charge de travail répond aux exigences de mise à l'échelle et de performance.
    Distributed Load Testing on AWS: simulate thousands of connected users
    Apache JMeter
  • Test la résilience à l'aide de l'ingénierie du chaos

  • Test la résilience à l'aide de l'ingénierie du chaos: Exécutez des tests qui injectent régulièrement des défaillances dans des environnements de préproduction et de production. Formulez une hypothèse sur la façon dont votre charge de travail réagira à la défaillance, puis comparez votre hypothèse aux résultats des tests. Répétez l'opération en cas d'absence de correspondance. Assurez-vous que les tests de production n'ont pas d'impact sur les utilisateurs.
    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)
  • Organisation régulière de jeux de rôle

  • Planifiez des jeux de rôle pour tester régulièrement vos runbooks et vos manuels.: Les jeux de rôle devraient impliquer tous ceux qui seraient affectés par une interruption de production : le propriétaire de l'entreprise, les développeurs, le personnel d'exploitation et les équipes d'interventions.