Présentation de l’ingénierie du chaos et de la résilience
Avant de commencer à utiliser Azure Chaos Studio, il est utile de comprendre les principaux concepts d’ingénierie de fiabilité des sites appliqués.
Qu’est-ce que la résilience ?
La création d’applications distribuées à grande échelle n’a jamais été aussi simple. L’infrastructure est hébergée dans le cloud et la prise en charge du langage de programmation est diversifiée. Il y a également de nombreux composants et services open source et hébergés sur lesquels s’appuyer.
Malheureusement, il n’existe aucune garantie de fiabilité pour ces composants et dépendances sous-jacents, ou pour les systèmes qui reposent dessus. L’infrastructure peut passer en mode hors connexion, et des interruptions de service ou des pannes peuvent se produire à tout moment. Des interruptions mineures dans une zone peuvent être amplifiées et avoir des effets secondaires prolongés dans une autre.
Les applications et services doivent planifier et prendre en charge les problèmes tels que :
- Les interruptions de service.
- Les interruptions des dépendances connues et inconnues.
- Une charge inattendue soudaine.
- Des latences dans tout le système.
Les applications et services doivent être conçus pour gérer les défaillances et être renforcés contre les perturbations.
Les applications et services qui traitent correctement les contraintes et les problèmes sont résilients. La fiabilité des composants individuels est bonne, mais la résilience est une propriété de l’ensemble du système. La résilience du système de bout en bout doit être validée dans un environnement intégré de type production, avec les conditions et la charge qui seront rencontrées en production.
Que sont l’ingénierie du chaos et l’injection d’erreurs ?
- Ingénierie du chaos : la pratique consistant à soumettre des applications et services à des contraintes et défaillances réelles. L’objectif est de créer et de valider la résilience aux conditions non fiables et aux dépendances manquantes.
- Injection d’erreurs : l’action d’introduire une erreur dans un système. Vous pouvez utiliser différentes erreurs, telles que la latence réseau ou la perte d’accès au stockage, pour cibler les composants système. Vous pouvez créer des scénarios à partir desquels une application ou un service doit être en mesure d’être gérée ou récupérée.
Une expérience de chaos est l’application d’erreurs de façon individuelle, en parallèle ou séquentiellement sur une ou plusieurs ressources ou dépendances d’abonnement. L’objectif est de surveiller le comportement et l’intégrité du système afin que vous puissiez agir sur tous les problèmes qui surviennent.
Une expérience peut représenter un scénario réel, tel qu’une panne de courant dans un centre de données ou une latence du réseau sur un serveur DNS. Elle peut également être utilisée pour simuler des conditions exceptionnelles pouvant se produire. Par exemple, les jours Black Friday ou l’ouverture à la vente de billets de concert pour un groupe de musique très populaire.