Chaos Engineering : à la découverte du concept et des tendances

Mi-décembre 2020, plusieurs services du géant américain Google subirent une panne de près d’une heure. Les principaux services (Gmail, Youtube, Google Maps…) furent impactés, et la nouvelle se répandit aussitôt sur les réseaux sociaux.

Cet incident fortement médiatisé met en exergue la nécessité pour les entreprises d’assurer la disponibilité de leurs services, en particulier lorsque leurs revenus en dépendent (ex : site de e-commerce, plateformes de streaming vidéo et audio…).

C’est dans cette optique qu’émerge depuis quelques années la notion de « Chaos Engineering ».

« Chaos Engineering », de quoi parlons-nous ?

Le Chaos Engineering désigne la discipline consistant à conduire des expérimentations sur un système afin d’éprouver sa capacité à faire face à d’importantes perturbation en production.

L’objectif avec le Chaos Engineering n’est plus d’espérer qu’aucune perturbation (pannes de serveurs, latence, etc.) ne se produira, mais de partir du principe que celles-ci auront lieu (volontairement ou non), afin de limiter leur impact via la conception de systèmes robustes « by design », une capacité de réaction et de diagnostic performante.

De plus, dans un monde où les systèmes sont de plus en plus distribués, interconnectés et complexes, le fait d’effectuer des tests sur des environnements dédiés (tests / pré-production) montre ses limites : en effet, la réplication exacte de l’environnement de production, avec le même nombre de machines, de clients, de fichiers, etc. devient extrêmement complexe voire impossible. Les tests réalisés sur ces environnements sont nécessaires mais restent incomplets. C’est dans ce contexte qu’a émergé le Chaos Engineering, consistant à tester directement en production.

Perturber la production ? Quelle entreprise prendrait un tel risque ?

Netflix & la Simian Army

En 2011, 2 ingénieurs Netflix eurent une idée simple : créer volontairement et aléatoirement des perturbations en production, afin que les systèmes ne soient plus conçus en espérant qu’il n’y ait pas de pannes, mais en sachant qu’il y en aurait dans tous les cas !

C’est ainsi que le logiciel Chaos Monkey, puis, au fur et à mesure, la suite d’outils « Simian Army » sont nés, afin de tester la fiabilité, la résilience et la sécurité des infrastructures Amazon Web Services supportant les services Netflix.

Concrètement, Chaos Monkey permet de choisir au hasard des instances dans l’environnement de production pour les mettre délibérément hors service. Son grand frère, Chaos Gorilla, simule la chute d’une zone complète AWS, et le pire de tous, Chaos Kong, une région complète !

Latency Monkey permet quant à lui de simuler une dégradation de service, allant de quelques instants à un temps prolongé. En allongeant le délai de latence, Latency Monkey permet de tester les dépendances entre services sans réellement les interrompre.

https://netflixtechblog.com/the-netflix-simian-army-16e57fbab116 pour en savoir plus sur les autres membres de la Simian Army

OUI.sncf & The Days of Chaos

La démarche Chaos Engineering est maintenant bien connue des géants américains du Web, mais elle l’est moins en France.

Avec plus de 16 millions de visiteurs uniques par mois, et jusqu’à 40 billets réservés par seconde en forte affluence sur son site internet, OUI.sncf est l’une des premières sociétés françaises à s’être lancée dans cette démarche.

L’aventure Chaos Engineering chez OUI.sncf commence en 2015, par les premiers tests, puis s’intensifie chaque année, pour aboutir quelques années plus tard à la simulation grandeur nature de la perte d’un data center !

En plus de la constitution de sa propre «Simian Army », OUI.sncf opte pour le côté ludique et la gamification, via l’organisation des Days of Chaos : une demi journée de tests pour les équipes techniques, sous forme de jeu (récompenses, campagne marketing, etc.).

Lire la suite de l’article : 

Si ce sujet vous intéresse, participez au groupe de travail sur le sujet.

Retrouvez plus d’information sur les différentes prestations d’accompagnement proposées en gestion de crise et continuité d’activité.