Share:

Michael Hogg, ingénieur DevSecOps, explique comment l’ingénierie du chaos s’est développée dans toutes les disciplines et joue désormais un rôle important dans DevOps.

Pourquoi construire quelque chose, si c’est pour essayer de le casser ? Casser volontairement des objets n’est généralement pas une pratique courante dans le domaine de l’informatique. Mais c’est en train de changer. Les systèmes devenant de plus en plus complexes, les risques potentiels et les défaillances susceptibles de tout arrêter augmentent. En outre, la création d’expériences numériques fluides et ininterrompues pour les clients devient un facteur de différenciation essentiel pour les entreprises de tous les secteurs, du divertissement à la vente au détail, et même, de manière plus cruciale, pour le secteur public.

L’ingénierie du chaos, qui consiste à casser intentionnellement des systèmes technologiques pour en évaluer la résilience, a été développée pour la première fois par Netflix en 2008. Lisez la suite pour découvrir comment l’ingénierie du chaos s’est développée dans toutes les disciplines et joue désormais un rôle important dans DevOps.

Qu’est-ce que l’ingénierie du chaos ?

Définition de l’ingénierie du chaos : la discipline qui consiste à expérimenter sur un système afin de renforcer la confiance dans sa capacité à résister aux conditions turbulentes de la production.

Netflix, le pionnier de l’ingénierie du chaos, a d’abord développé l’outil Chaos Monkey pour « …prendre de façon pseudo-aléatoire un serveur de notre déploiement de production sur AWS et le tuer. » 1 Netflix estimait que les pannes de serveur étaient inévitables et a voulu s’assurer qu’il était possible de les réparer pendant les heures de bureau, sans que les clients s’en aperçoivent. 

Ensuite, ils ont construit Chaos Kong – comme son nom l’indique, une version plus grande et plus méchante de Chaos Monkey – conçu pour tuer une région AWS entière pour Netflix. L’entreprise a pu identifier des faiblesses systémiques, les corriger et éviter des impacts significatifs. Netflix continue à effectuer régulièrement des exercices Chaos Kong. Un ingénieur principal chargé du chaos chez Netflix l’explique plus en détail ici.

Sur la base de ces outils, Netflix a développé une nouvelle discipline à appliquer à d’autres projets et départements, inventant le terme « ingénierie du chaos ». The Principles of Chaos Engineering est un document vivant publié par Netflix afin que d’autres organisations puissent apporter leurs connaissances.

Pourquoi intégrer l’ingénierie du chaos dans la méthodologie DevOps

Il y a des tests. Et puis il y a des tests.

Plusieurs types de tests sont généralement effectués dans un environnement de développement, notamment : 

Test unitaire – Des unités individuelles, telles qu’un composant ou un petit morceau de code, sont testées pour vérifier leur exactitude et valider qu’elles fonctionnent comme prévu.

Tests d’intégration – Des modules logiciels développés indépendamment sont combinés et testés pour s’assurer qu’ils fonctionnent ensemble comme prévu – ou exposer les défauts dans l’interaction entre les unités intégrées.

L’ingénierie du chaos n’est pas destinée à remplacer ces types de tests, mais à travailler en harmonie avec eux pour fournir un système avec une disponibilité maximale. Un élément clé de différenciation : l’ingénierie du chaos est réalisée dans un environnement de production – les enjeux sont donc élevés. 


Dans une récente enquête Gartner2, les 3 principales priorités des DSI étaient les initiatives numériques, la croissance des revenus / de l’entreprise et l’excellence opérationnelle. Ces priorités sont autrement impossibles à atteindre si les systèmes d’infrastructure ne sont pas suffisamment fiables. En outre, Gartner prévoit que 40 % des entreprises mettront en œuvre des pratiques d’ingénierie du chaos dans le cadre des initiatives DevOps d’ici 2023, réduisant ainsi les temps d’arrêt imprévus de 20 %.


Intégrer l’ingénierie du chaos dans la méthodologie DevOps

Lorsque le chaos est introduit dans un environnement quelconque dans une tentative délibérée de casser les choses, il est destiné à fournir la tranquillité d’esprit que le service que vous offrez est résilient. En l’intégrant dans DevOps, vous pouvez créer des applications plus robustes pour soutenir l’entreprise.

 Voici comment intégrer l’ingénierie du chaos dans une pratique DevOps :

  • Établir une base de référence – Définissez l’état d’équilibre « normal », à l’aide de mesures techniques et commerciales.
  • Développer une hypothèse – Énoncez ce que vous vous attendez à ce qu’il se passe dans l’expérience du chaos ; idéalement, un système à l’état d’équilibre continuera de fonctionner à la fois dans les groupes de contrôle et de défi. 
  • Introduire des incidents du monde réel dans un groupe de défi – Tuez un processus critique, mettez fin à un serveur aléatoire, coupez une connexion.
  • Résoudre les problèmes – Développez des correctifs automatisés et auto-réparateurs au fur et à mesure que les problèmes surviennent. 
  • Continuer les tentatives d’invalidation de l’hypothèse – Identifiez les différences entre les groupes témoins et les groupes de défi et élargissez progressivement les limites de votre hypothèse.

L’ingénierie du chaos dans le cadre de DevOps est précieuse pour aider votre entreprise à atténuer les risques de sécurité, améliorer l’efficacité de votre équipe informatique en fournissant une vision plus approfondie du fonctionnement des applications, réduire les coûts de maintenance et offrir une expérience client positive et plus cohérente.

Découvrez comment DevOps et l’offre DevOps as a Service de Cloudreach peuvent aider votre organisation dans sa transformation du Cloud.

 

 1 https://netflixtechblog.com/chaos-engineering-upgraded-878d341f15fa

2 https://www.gartner.com/smarterwithgartner/the-io-leaders-guide-to-chaos-engineering