Accueil

Thèmes

qu’est-ce que l’ingénierie du chaos

Qu’est-ce que l’ingénierie du chaos ?
Découvrir IBM Instana
Graphique représentant une chaîne de 1 et de 0

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 dollars(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. 

Visite guidée

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.

Contenu connexe Abonnez-vous à la newsletter IBM
L’ingénierie du chaos : pour quelles entreprises ?

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 Netflix(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.

Types d’expériences d’ingénierie du chaos

Les équipes DevOps peuvent mener diverses expériences d’ingénierie du chaos afin de tester les différents processus du système.

  • Injection de latence : les équipes DevOps créent des scénarios pour simuler une connexion réseau lente ou défaillante. Il s’agit notamment de provoquer des retards dans le réseau ou des temps de réponse plus longs.
  • Injection d’erreurs : il s’agit d’introduire délibérément des erreurs dans le système pour déterminer leur impact sur les systèmes dépendants, ainsi que leur capacité à interrompre les services. Parmi les erreurs injectées, citons les pannes de disque, l’arrêt d’un processus ou d’un hôte, ou encore une augmentation de la puissance ou de la température. L’injection d’erreurs permet aux entreprises d’identifier les points de défaillance uniques susceptibles d’entraîner la défaillance de l’ensemble du système, s’ils venaient à tomber en panne.
  • Génération de charge : il s’agit de solliciter excessivement le système en envoyant volontairement des niveaux de trafic nettement supérieurs à la normale. Cette technique permet aux ingénieurs de fiabilité du site (SRE) de mieux appréhender les goulots d’étranglement afin de renforcer l’évolutivité du système. 
  • Test du canari : il s’agit de proposer un nouveau produit ou une nouvelle fonctionnalité à un groupe restreint d’utilisateurs. Ainsi, en cas de problème ou de bogue, seul un pourcentage des visiteurs sera affecté, pendant que les autres pourront bénéficier de l’expérience actuellement offerte par le site Web.

 

Bonnes pratiques en matière d’ingénierie du chaos 

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. 

  • Comprendre le système : connaissance approfondie du système dans son ensemble : fonctions et propriétés émergentes, topologie, architecture, dépendances, comportement en régime permanent, réponse en sortie et caractéristiques telles que la disponibilité, la latence et le débit.
  • Accepter la défaillance : au départ, il semble paradoxal pour les ingénieurs logiciels de laisser un incident se produire alors qu’ils sont armés pour empêcher que de tels incidents se produisent. Cependant, des interruptions se produiront toujours dans les services informatiques, et il est préférable d’en faire l’expérience dans un environnement contrôlé afin d’identifier la solution de manière préventive plutôt qu’en dehors des heures de bureau lorsque l’équipe est absente ou n’a jamais rencontré ce problème spécifique auparavant.
  • Déterminer le comportement en régime permanent : avant toute chose, l’équipe d’ingénierie doit définir le comportement que le système aura lorsqu’il fonctionne correctement, afin de pouvoir comparer l’impact des expériences sur cet état permanent.
  • Identifier les incidents du monde réel : au lieu d’imaginer des situations improbables, les expériences d’ingénierie du chaos doivent se rapprocher le plus possible de ce qui est susceptible de se produire lors d’une journée normale : défaillances du réseau et de l’infrastructure, erreurs de code, problèmes d’alimentation, trafic surchargé.
  • Organiser une journée d’expérimentation : l’ingénierie du chaos peut étudier l’environnement un jour particulier. Plusieurs tests sont alors réalisés au cours de la même journée afin de maximiser les ressources qui permettront d’identifier et de résoudre autant de problèmes que possible. 
  • Automatiser : les entreprises de toutes tailles ont la possibilité d’automatiser leurs expériences d’ingénierie du chaos, trop gourmandes en main-d’œuvre si elles devaient être menées manuellement. Cela permet de réduire la charge des équipes informatiques pendant le processus d’ingénierie du chaos. Conception d’expériences, injection d’erreur, provisionnement de l’infrastructure... Autant d’aspects que les entreprises peuvent automatiser.
  • Attention au rayon d’action : un ingénieur du chaos doit s’efforcer de limiter le rayon d’action de l’incident afin de minimiser autant que possible le préjudice réel causé aux clients. Voici quelques manières de procéder :
    • Ciblez un sous-ensemble de services : l’ingénierie du chaos, en particulier dans un environnement de production, ne doit pas perturber radicalement le service d’une organisation. Le ciblage d’un sous-ensemble spécifique de services peut minimiser l’impact d’un incident s’il se produit, en veillant à ce qu’il ne supprime pas l’ensemble du système.
    • Effectuez l’expérience pendant un temps déterminé : l’expérience doit avoir un début et une fin. Le but est de créer un incident et de le résoudre au lieu de le laisser s’exécuter sans contrôle pendant une longue période.
    • Effectuez l’expérience en dehors du trafic de pointe  : les organisations doivent essayer d’éviter d’exécuter des tests pendant les périodes de pointe, sauf s’il s’agit d’évaluer à quel point la capacité perturbe le système pendant un incident. 
    • Mener l’expérience dans l’environnement de développement : pour garantir qu’aucun client ne subira une interruption de service, le plus simple est de mener l’expérience dans l’environnement de préproduction. Étant donné que les conditions diffèrent de celles de l’environnement de production, vous risquez toutefois d’obtenir de faux résultats. Pour les éviter, il est important de veiller à que vos environnements de préproduction et de production se reflètent autant que possible. 
    • Tester chaque composant : l’ingénierie du chaos est un processus continu, car le système de l’entreprise ne cesse d’évoluer. Il est donc essentiel de « tout » tester, d’examiner l’ensemble des composants, des couches et des services, ainsi que leurs dépendances, tout au long du processus.
Environnements de production ou de préproduction

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é. 

Avantages de l’ingénierie du chaos

L’ingénierie du chaos apporte aux entreprises plusieurs avantages majeurs.

Meilleur service client

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.

 

Renforcer la sécurité des données

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. 

Réduire les temps d’arrêt

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 %. 

 

Améliorer l’évolutivité

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.

 

Informer le développement de nouveaux logiciels

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écouvrir les produits d’ingénierie du chaos
Observabilité IBM Instana APM

Avec la solution d’observabilité d’IBM, vous vous dotez du contexte nécessaire pour accélérer la résolution des incidents.

Découvrir IBM Instana

Observabilité Flexera One avec IBM Observability

Optimiser l’usage et le coût des logiciels

 

Découvrir Flexera One with IBM Observability

Ressources d’ingénierie du chaos L’AIOPs, c’est quoi ?

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

Qu’est-ce que la gestion de la performance des applications ?

Adoptez la gestion de la performance des applications pour anticiper et prévenir les problèmes de performance

Qu’est-ce que les opérations informatiques ?

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

Qu’est-ce que la gestion des services informatiques ?

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

Qu’est-ce que l’ingénierie de la fiabilité des sites ?

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

Qu’est-ce que l’automatisation intelligente ?

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

Passez à l’étape suivante

IBM Instana fournit une observabilité en temps réel que tout le monde peut utiliser. La solution accélère la création de valeur tout en vérifiant que votre stratégie d’observabilité peut s’adapter à la complexité dynamique des environnements actuels et futurs. Du mobile au mainframe, Instana prend en charge plus de 250 technologies, et poursuit son expansion. 

Découvrir IBM Instana Réserver une démo en direct
Notes de bas de page

1 Chaos Engineering: System Resiliency in Practice, (lien externe à ibm.com) Casey Rosenthal, Nora Jones, 2020
What is Chaos Monkey? Chaos engineering explained, (lien externe à ibm.com) InfoWorld,13 mai 2020
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