Comprendre l’ingénierie et la résilience du chaos

Avant de commencer à utiliser Azure Chaos Studio, il est utile de comprendre les concepts d’ingénierie de fiabilité de site de base appliqués.

Qu’est-ce que la résilience ?

Il n’a jamais été plus facile de créer des applications distribuées à grande échelle. L’infrastructure est hébergée dans le cloud et la prise en charge du langage de programmation est diversifiée. De nombreux composants et services open source et hébergés s’appuient également.

Malheureusement, il n’existe aucune garantie de fiabilité pour ces composants et dépendances sous-jacents, ou pour les systèmes basés sur eux. L’infrastructure peut être 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 :

  • Pannes de service.
  • Interruptions des dépendances connues et inconnues.
  • Charge inattendue soudaine.
  • 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 interruptions.

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 sont confrontées en production.

Que sont l’ingénierie du chaos et l’injection d’erreurs ?

  • Ingénierie du chaos : la pratique de soumettre des applications et des services à des contraintes et des 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’erreur : acte d’introduction d’une erreur à 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 duquel une application ou un service doit être en mesure de gérer ou de récupérer.

Une expérience de chaos est l’application d’erreurs individuellement, 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 du centre de données ou une latence réseau sur un serveur DNS. Il peut également être utilisé pour simuler des conditions de périphérie qui se produisent. Par exemple, black friday shopping sprees or when concert tickets go on sale for a popular band.