L’ingénierie du chaos consiste à provoquer de façon volontaire et contrôlée des défaillances dans l’environnement de production ou de préproduction afin d’en évaluer l’impact, de planifier une meilleure défense et d’affiner la stratégie de maintenance en cas d’incident.
Les entreprises sont confrontées en permanence au risque de défaillance de leur infrastructure et de leurs applications critiques, avec pour conséquence une incapacité à fournir les services promis aux clients. Les causes possibles sont multiples, des violations de la sécurité aux interruptions de service en passant par les erreurs de configuration. Si le nombre d’applications et de données hébergées dans le cloud est important, le risque d’erreur ou d’interruption est susceptible d’augmenter et d’entraîner une multiplication des problèmes de sécurité.
L’ingénierie du chaos est l’une des solutions pour prévenir les perturbations. Il ne s’agit pas de mettre fin de façon aléatoire aux instances ou aux services, ni de provoquer la défaillance des systèmes sans but précis. Ce processus permet aux ingénieurs d’anticiper les problèmes et de mettre en place les mesures nécessaires pour éviter leur survenue en environnement réel.
L’ingénierie du chaos est très utile, car une erreur ou une perturbation peut ralentir la dynamique d’une organisation en raison du temps précieux passé à rechercher une solution à la volée pendant que les temps d’arrêt augmentent. Netflix l’a appris à ses dépens lorsque l’entreprise est passée de l’informatique sur site au cloud1 (lien externe à ibm.com) et a subi une panne qui a entraîné une interruption de service de trois jours en 2008. Cet événement s’est heureusement produit avant sa transformation en opérateur de streaming, sinon cela lui aurait coûté des sommes astronomiques. Décidé à faire tout son possible pour minimiser les perturbations, Netflix a commencé à introduire l’ingénierie du chaos dans ses workflows. Cela leur permet d’identifier les problèmes avant qu’ils ne se produisent et de minimiser les dommages en cas de défaillance inévitable.
Netflix a conçu Chaos Monkey2(lien externe à ibm.com), un outil open source qui permet de créer des incidents aléatoires au sein de l’infrastructure et des services informatiques, afin d’identifier leurs faiblesses et de les corriger grâce à des procédures de reprise après sinistre automatiques. C’était à l’époque où Netflix réalisait sa migration à partir d’un centre de données privé vers Amazon Web Services (AWS) en réponse au manque de fiabilité du cloud. Chaos Monkey est désormais utilisé par bon nombre d’entreprises à des fins d’ingénierie du chaos.
L’ingénierie du chaos s’avère essentielle non seulement pour prévenir les défaillances et les pannes d’infrastructure, mais aussi pour identifier les composants manquants dans l’environnement de production de l’entreprise. Elle permet aux ingénieurs de fiabilité du site (SRE), ainsi qu’aux autres membres de l’équipe DevOps, d’assurer la continuité des services. En effet, ils sont en mesure d’éviter les interruptions prolongées, de mieux comprendre les vulnérabilités et de déterminer comment réduire l’impact en cas de perturbations.
Étant donné la diversité des dépendances logicielles, le moindre problème de code peut avoir des conséquences désastreuses sur l’ensemble de l’environnement de production. Par exemple, une erreur dans le système logiciel transactionnel d’une entreprise financière peut entraîner des pertes de plusieurs millions de dollars3 (lien externe à ibm.com). Si éviter tout incident informatique peut s’avérer impossible, les entreprises peuvent tout de même réduire les dégâts en s’appuyant sur le chaos management pour comprendre les différents scénarios possibles et identifier les meilleures solutions à y apporter.
IBM Instana Observability offre à tous les membres de l’entreprise un accès convivial aux données dont ils ont besoin avec le contexte nécessaire pour assurer une prévention et une résolution rapides des problèmes.
Abonnez-vous à la newsletter IBM
Les entreprises ayant atteint un niveau élevé de résilience, de maturité numérique et d’observabilité, au moyen de tableaux de bord et d’autres outils, ont tout intérêt à adopter l’ingénierie du chaos car elles sont en mesure de réagir promptement face aux problèmes qui surviennent au cours des expériences. En l’absence d’un tel niveau d’observabilité4 (lien externe à ibm.com), le délai pour mener à bien les expériences créées grâce à l’ingénierie du chaos serait trop long.
L’ingénierie du chaos s’avère également incontournable pour les entreprises qui utilisent le cloud, notamment des solutions cloud public et des applications cloud natives. Le risque de panne associé au cloud public exige une coordination avec le fournisseur cloud, incompatible avec la démarche de gestion des problèmes sur site.
Selon Constellation Research, les entreprises ayant adopté le cloud ont tendance, encore aujourd’hui, à aborder les incidents informatiques sans prendre en compte l’impact différent que le cloud et les logiciels à la demande (SaaS) ont sur ces incidents5.(lien externe à ibm.com)
En outre, l’utilisation croissante des microservices, qui entraîne une multiplication des hôtes ou des conteneurs exécutés dans un système, pose de nouveaux défis (lien externe à ibm.com) que l’ingénierie du chaos permet d’identifier et de résoudre. Les complexités ne sont pas éliminées, mais transférées de la conception de code vers les opérations système, ce qui multiplie les opportunités d’automatisation.
L’ingénierie du chaos permet également aux entreprises d’accélérer leurs pipelines d’intégration continue et de livraison continue (CI/CD). En intégrant l’ingénierie du chaos à leurs pipelines CI/CD comme l’a fait Netflix6 (lien externe à ibm.com), les entreprises peuvent automatiser leurs expériences pour assurer une exécution continue, tout en maîtrisant leur impact.
Pour finir, il convient de noter que les entreprises se tournent de plus en plus vers les API pour communiquer avec leurs partenaires, ce qui veut dire que tout problème survenu dans leurs systèmes est susceptible d’affecter également d’autres infrastructures.
L’ingénierie du chaos permet aux entreprises d’identifier et de corriger les points faibles de leur architecture afin de prévenir les défaillances. En déployant efficacement leur stratégie d’ingénierie du chaos, les entreprises sont en mesure d’éviter les défaillances techniques susceptibles d’avoir un impact significatif sur leurs clients et de créer des architectures de systèmes complexes, plus solides et plus résilientes. Une fois le choix d’adopter l’ingénierie du chaos fait, la prochaine étape consiste à déterminer si l’exécuter dans l’environnement de production ou de préproduction.
Les équipes DevOps peuvent mener diverses expériences d’ingénierie du chaos afin de tester les différents processus du système.
Plusieurs principes sont appliqués pour élaborer un processus d’ingénierie du chaos efficace et garantir à l’entreprise un système distribué à grande échelle.
Les entreprises qui adoptent l’ingénierie du chaos doivent décider si mener leurs tests dans l’environnement de production ou de préproduction. L’environnement de production est préférable pour plusieurs raisons. En effet, ce dernier s’avère plus exact et vous permettra de mieux comprendre l’impact que tel ou tel incident aurait sur l’expérience client. Autre raison : l’environnement de préproduction peut présenter des paramètres différents et entraîner une certaine variabilité lors des tests.
Par exemple, un incident en préproduction risque de ne pas créer une réponse réaliste, car les niveaux de trafic ne sont pas les mêmes que dans l’environnement réel. Les configurations de sécurité des deux environnement peuvent également différer.
Certaines organisations préfèrent exécuter leurs tests dans un environnement de préproduction ou de développement afin d’éviter de perturber un site déjà en service. Les problèmes éventuels n’ont ainsi aucun impact sur l’expérience client. Pour limiter les risques, elles commencent donc par des environnements de préproduction afin de maîtriser le processus avant de passer à l’environnement de production.
Les organisations choisissent ainsi l’environnement à utiliser en fonction de leur tolérance au risque. Pour conclure sur ce point, comme l’ingénierie du chaos vise à tester des problèmes réels à grande échelle, les environnements de production donnent l’image la plus précise de ce qui se passe et de ce qui doit être corrigé.
L’ingénierie du chaos apporte aux entreprises plusieurs avantages majeurs.
Les clients ont des attentes élevées quant à la disponibilité des services qu’ils achètent auprès des entreprises. Les temps d’arrêt ou l’impossibilité d’accéder à ce pour quoi ils ont payé peut avoir un effet désastreux sur la satisfaction client, se traduisant par une perte de chiffre d’affaire et une atteinte à la réputation. L’exécution de tests et l’identification des solutions réduisent le risque qu’un système soit indisponible pendant une période importante.
Les interruptions peuvent être dues à un code erroné, à des problèmes de serveur ou à des menaces externes. Celles-ci peuvent se manifester même avec d’excellentes pratiques de sécurité. L’ingénierie du chaos aide à identifier les problèmes que les organisations peuvent exploiter pour introduire des correctifs et des corrections de bugs (lien externe à ibm.com) pour assurer la sécurité de leurs services.
L’ingénierie du chaos permet aux organisations de créer un schéma directeur bien documenté sur la stratégie à adopter pour résoudre les problèmes futurs. En adoptant l’ingénierie du chaos, elles disposeront de plans d’attaque spécifiques pour répondre à de nombreux incidents, de manière à accélérer la réparation et à limiter les temps d’arrêt. L’ingénierie du chaos permet de réduire les temps d’arrêt7 (lien externe à ibm.com) de 20 %.
Les expériences d’ingénierie du chaos permettent d’identifier la manière dont le système alloue les ressources et gère les charges, ainsi que les endroits où les goulots d’étranglement se situent ou sont susceptibles de se produire.
L’ingénierie du chaos permet aux équipes de renforcer la résilience et la flexibilité de leurs logiciels. Les entreprises sont donc en mesure d’aborder plus intelligemment le codage de leurs logiciels et solutions, puisqu’elles savent comment le système actuel gère les problèmes.
Avec la solution d’observabilité d’IBM, vous vous dotez du contexte nécessaire pour accélérer la résolution des incidents.
Optimiser l’usage et le coût des logiciels
Découvrez comment l’intelligence artificielle pour les opérations informatiques (AIOps) utilise les données et le Machine Learning pour améliorer et automatiser la gestion des services informatiques
Adoptez la gestion de la performance des applications pour anticiper et prévenir les problèmes de performance
Les opérations informatiques et les AIOps supervisent et automatisent la gestion, la fourniture et le soutien des services informatiques dans l’ensemble de l’organisation
L’ITSM désigne la manière dont une organisation s’assure que ses services informatiques fonctionnent conformément aux besoins des utilisateurs et de l’entreprise
Adoptez l’ingénierie de la fiabilité des sites pour automatiser vos tâches opérationnelles informatiques, accélérer la livraison de logiciels et réduire les risques informatiques
L’automatisation intelligente combine l’IA et les technologies d’automatisation afin d’automatiser les tâches de bas niveau au sein de votre entreprise
1 Chaos Engineering: System Resiliency in Practice, (lien externe à ibm.com) Casey Rosenthal, Nora Jones, 2020
2 What is Chaos Monkey? Chaos engineering explained, (lien externe à ibm.com) InfoWorld,13 mai 2020
3 Knight Capital Says Trading Glitch Cost It $440 Million, (lien externe à ibm.com) New York Times, 2012
4 There Is No Resilience without Chaos, The New Stack, (lien externe à ibm.com) 13 avril 2023
5 Incident Management in the Cloud Era, (lien externe à ibm.com) Constellation Research, 2023
6 ChAP: Chaos Automation Platform, (lien externe à ibm.com) Blog Netflix, 26 juillet 2017
7 The I&O Leader’s Guide to Chaos Engineering, (lien externe à ibm.com) Gartner, 28 octobre 2021