Voyages-sncf mise sur l'ingénierie du chaos pour éprouver son infra

Voyages-sncf mise sur l'ingénierie du chaos pour éprouver son infra Conceptualisée à l'origine par Netflix, la méthode consiste à introduire régulièrement des pannes volontaires dans les systèmes informatiques pour tester et valider leur robustesse.

Dans l'optique de renforcer la résilience de ses infrastructures informatiques, Voyages-sncf.com s'est lancé dans la mise en œuvre d'une technique pour le moins osée : le chaos engineering. Elle consiste à injecter volontairement des éléments perturbateurs au cœur des environnements de production en vue d'en éprouver la robustesse. Le chantier est orchestré par Voyages-sncf Technologies, l'entité en charge de l'informatique du site marchand.

A l'origine, l'ingénierie du chaos naît chez Netflix en 2008. En pleine migration vers le cloud d'Amazon, le site californien entend alors s'assurer du niveau de fiabilité de sa nouvelle infrastructure. Pour ce faire, il prend une décision radicale : mettre régulièrement hors service des instances virtuelles choisies au hasard. La méthode est baptisée "chaos monkey". Pourquoi chaos Monkey ? "Imaginez un singe s'introduisant dans un data center […]. Il arrache des câbles au hasard, détruit des boîtiers et déplace tout ce qui lui passe sous la main. Le challenge est de créer un système d'information qui fonctionne malgré ce singe, dont on ne sait jamais quand il surgira et ce qu'il fera", explique Antonio Garcia Martinez dans l'ouvrage "chaos monkeys".

Crash-tests et gamedays

Depuis juin dernier, deux scénarios de "chaos monkeys" ont été déployés par Voyages-sncf. Le premier consiste à arrêter toutes les deux semaines, aléatoirement et en heure ouvrée, des instances de certains systèmes de back office (encapsulant des serveurs Tomcat, Apache et des bases MongoDB). Le second, lui, injecte une latence dans les échanges avec des services externes auxquels le site web fait appel. "Cela permet de tester la tolérance à la perte temporaire d'un composant extérieur jusqu'à la simulation d'une coupure complète", explique Christophe Rochefolle, directeur de l'excellence opérationnelle chez Voyages-sncf Technologies. "C'est un point important car nous agrégeons beaucoup de données d'inventaire de sources externes."

"Les développeurs doivent s'approprier le principe et concevoir des applications résilientes"

En amont de sa mise en œuvre, l'ingénierie du chaos implique bien évidemment de peaufiner la redondance des infrastructures IT. "Les développeurs doivent s'approprier le principe et concevoir des applications tolérantes aux pannes, dimensionnables en ressources machines, et éventuellement capables de gérer des latences. En déployant l'ingénierie du chaos, on fait donc monter en puissance la capacité de résilience des systèmes au fur et à mesure. Et en continuant à réaliser des tests réguliers, on s'assure que la robustesse ne fléchit pas", poursuit Christophe Rochefolle.

Pour accompagner l'évolution culturelle de ses développeurs vers ce nouveau fonctionnement, Voyages-sncf Technologies organise des gamedays. Mis en place à l'origine par Amazon, ces sessions visent à confronter les développeurs à des scénarios de panne pour les sensibiliser à la problématique de résilience. Le premier gameday de Voyages-sncf se tient en janvier 2017. Il mobilise alors 110 personnes, soit un tiers de l'effectif de la direction technique. 6 pannes sont simulées dans des domaines variés (erreur de routage de DSN, ligne de vie mal interprétée dans un cluster...). Les 18 équipes en lice avaient pour objectif de les détecter, les diagnostiquer et les résoudre en moins de 30 minutes.

"Ce jeu que nous avons baptisé chaos gameday a renforcé la cohésion inter-équipes en plus de la cohésion intra-équipe, et donc la démarche DevOps. Il a aussi permis de diviser par 6 le temps de résolution d'un cas de panne survenu dans la foulée. On est passé d'1 heure à 10 minutes !", se félicite Christophe Rochefolle.

Les problèmes de paiement divisés par 40

En juillet 2017, rebelote avec un nouveau chaos gameday. Mais cette fois, l'exercice est étendu à tout le dispositif de crise, de l'informatique au comité de direction en passant par la relation client. Au total, 130 personnes y prennent part. Le scénario simulé : un bug de mise à zéro du prix des billets en vente sur Voyages-sncf engendrant un afflux de visiteurs et une explosion des réservations et du trafic. De faux tweets de réactions de clients et un faux article dans Le Parisien sont même intégrés à la simulation. "Cela a permis de développer un nouveau plan d'action pour accélérer le délai de résolution avec l'activation des astreintes par email et SMS y compris en heures ouvrées, le rappel des pratiques du book de crise et la revue des équipements des war room", explique Christophe Rochefolle.

Le premier bilan de cette démarche de "chaos monkeys" ? "Elle s'est traduite par une réduction de l'impact des pannes et donc une meilleure qualité de service. Nous avons par exemple pu diviser par 40 les problèmes techniques liés aux paiements, notamment en introduisant une meilleure gestion de la latence", confie Christophe Rochefolle. Fort de ces résultats, Voyages-sncf entend étendre la mise en œuvre des processus de "chaos monkeys" à cinq autres composants d'ici la fin de l'année, avec en ligne de mire la volonté d'évoluer vers des briques plus proches du front-end client.