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é et des erreurs de configuration aux interruptions de service. La probabilité d’erreurs ou de perturbations peut augmenter à mesure que de plus en plus d’applications et de données sont hébergées dans le cloud, entraînant une hausse des incidents de sécurité.
L’ingénierie du chaos est l’une des solutions pour prévenir les perturbations. Il ne s’agit pas d’un processus aléatoire au cours duquel les ingénieurs arrêtent des instances ou des services, ou provoquent une défaillance des systèmes sans objectif particulier. Ce processus identifie les problèmes futurs potentiels, permettant aux équipes d’ingénierie de les résoudre de manière proactive afin de les éviter dans l’environnement réel plus tard.
L’ingénierie du chaos est très utile, car une erreur ou une perturbation peut ralentir la dynamique d’une organisation en faisant perdre un temps précieux à rechercher une solution à la volée alors que les temps d’arrêt augmentent. Netflix a appris ce concept de première main en 2008 pendant son passage d’un système sur site au cloud1 lorsqu’une panne a interrompu la fourniture des services pendant trois jours.
Si cette panne s’était produite après la transition de Netflix vers le streaming vidéo, elle lui aurait coûté des sommes astronomiques. Décidé à faire tout son possible pour minimiser les perturbations, le groupe a commencé à introduire l’ingénierie du chaos dans ses workflows. Ce processus 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 créé Chaos Monkey2, un outil open source qui provoque des incidents aléatoires dans les services et l’infrastructure informatiques afin d’identifier les faiblesses qui peuvent être corrigées ou résolues par des procédures de récupération automatiques. Chaos Monkey a été mis en œuvre lors de la transition 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 de nombreuses entreprises pour mener à bien leurs expériences d’ingénierie du chaos.
L’ingénierie du chaos constitue une défense importante contre les défaillances de l’infrastructure, les pannes ou les composants manquants dans l’environnement de production d’une organisation. Elle aide les ingénieurs en fiabilité des sites (SRE) et les autres membres de l’équipe DevOps à assurer la livraison continue des services en évitant les perturbations importantes. L’ingénierie du chaos leur permet de mieux comprendre les vulnérabilités et les informe sur la manière de minimiser l’impact en cas de perturbation.
É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 société financière peut entraîner des pertes de plusieurs millions de dollars3.
Si tous les incidents informatiques ne peuvent pas être évités, les organisations peuvent toutefois minimiser les dommages grâce à la gestion du chaos pour comprendre les scénarios probables et les meilleures solutions possibles.
Les organisations dotées d'une grande résilience, d'une maturité numérique et d'une grande observabilité grâce à des tableaux de bord et d'autres outils devraient adopter l'ingénierie du chaos, car elles peuvent prendre des mesures immédiates pour résoudre les problèmes qui surviennent au cours des expériences. Les organisations qui n'ont pas cette observabilité4 peuvent mettre trop de temps à résoudre les expériences qu'elles créent grâce à l'ingénierie du chaos.
L’ingénierie du chaos est également indispensable pour les organisations qui utilisent le cloud, en particulier le cloud public et les applications cloud natives. Le risque de panne lié au cloud public exige une coordination avec le fournisseur de cloud, ce qui nécessite une approche différente de la résolution des problèmes sur site.
Selon Constellation Research5, les entreprises qui utilisent le cloud abordent encore souvent les incidents informatiques sans tenir compte des différences entre le cloud et un logiciel en tant que service (SaaS) dans la façon dont ils influent sur ces incidents.
De plus, l’essor de l’utilisation des microservices, qui augmente le nombre de conteneurs exécutés dans un système, crée des défis uniques qui peuvent être découverts et résolus grâce à des expériences de chaos. 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 possibilités d’automatisation.
L’ingénierie du chaos peut également aider les organisations à améliorer la vitesse de 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, les entreprises peuvent automatiser leurs expériences pour assurer une exécution continue, tout en maîtrisant leur impact.
Enfin, comme les entreprises communiquent de plus en plus avec leurs partenaires via des API, un problème lié à leurs systèmes peut avoir des répercussions sur les autres organisations. L’ingénierie du chaos permet ainsi aux entreprises d’identifier et de corriger les points faibles de leur architecture afin d’anticiper les défaillances futures.
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.
Dans l’idéal, un processus d’ingénierie du chaos doit respecter plusieurs principes afin que l’entreprise puisse disposer d’un système distribué à l’échelle.
Les entreprises qui adoptent l’ingénierie du chaos doivent décider où effectuer leurs tests, dans l’environnement de production ou de préproduction. L’environnement de production est préférable pour plusieurs raisons.
En effet, les environnements réels offrent une vue plus précise pour comprendre l’impact d’un incident sur l’expérience client. De plus, la configuration de l’environnement de préproduction peut présenter des différences avec l’environnement réel, ce qui introduit une certaine variabilité dans les expériences.
Par exemple, un incident dans un environnement de préproduction peut générer une réponse inadaptée, les niveaux de trafic n’étant pas les mêmes que dans l’environnement live. Les configurations de sécurité peuvent aussi être différentes.
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 l’environnement à utiliser en fonction de leur tolérance au risque. En fin de compte, l’ingénierie du chaos vise à tester les problèmes à grande échelle. C’est pourquoi les environnements de production offrent la vue 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 aux services qu’ils ont payé peut avoir un effet désastreux sur la satisfaction client, avec pour conséquences une perte de chiffre d’affaires et une atteinte à la réputation. Le test des systèmes et la recherche de solutions permettent d’atténuer le risque qu’un système soit hors service pendant une trop longue durée.
Les perturbations 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 de façon à 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 peut réduire les temps d’arrêt7 jusqu’à 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.
Découvrez les opinions des PDG en matière de durabilité et comment ils l’intègrent à leur entreprise.
Découvrez sept tendances métier qui, selon les experts, façonneront le monde au cours des trois prochaines années, et les sept domaines sur lesquels miser pour en tirer profit.
Découvrez comment Climate Service a intégré les données climatiques dans les décisions financières grâce à la technologie IBM.
Découvrez comment la méthodologie IBM Garage a permis à Kraft Heinz Company d’améliorer la vélocité en production.
Associez transformation opérationnelle et transformation technologique pour repenser votre façon de travailler et gagner en agilité.
Repensez et modernisez vos ressources humaines grâce à l’IA pour améliorer vos résultats et libérer le plein potentiel de vos équipes.
Alliez performance financière et création de valeur grâce à nos services complets, pensés pour intégrer analyse des données, IA et automatisation dans vos processus métier.
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 USD 440 Million (lien externe à ibm.com), New York Times, 2012.
4 There Is No Resilience without Chaos (lien externe à ibm.com), The New Stack, 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.
IBM web domains
ibm.com, ibm.org, ibm-zcouncil.com, insights-on-business.com, jazz.net, mobilebusinessinsights.com, promontory.com, proveit.com, ptech.org, s81c.com, securityintelligence.com, skillsbuild.org, softlayer.com, storagecommunity.org, think-exchange.com, thoughtsoncloud.com, alphaevents.webcasts.com, ibm-cloud.github.io, ibmbigdatahub.com, bluemix.net, mybluemix.net, ibm.net, ibmcloud.com, galasa.dev, blueworkslive.com, swiss-quantum.ch, blueworkslive.com, cloudant.com, ibm.ie, ibm.fr, ibm.com.br, ibm.co, ibm.ca, community.watsonanalytics.com, datapower.com, skills.yourlearning.ibm.com, bluewolf.com, carbondesignsystem.com