Le « Chaos Engineering » est une nouvelle approche des tests, adaptées aux systèmes informatiques complexes et aux applications d’aujourd’hui qui multiplient les micro-services… AWS veut populariser la pratique en lançant une offre de « Chaos Engineering as a Service ».
Distribués avec des dépendances de plus en plus complexes, systèmes d’information et workloads sont soumis à des trafics intenses et peuvent s’écrouler pour des raisons inattendues, n’ayant pas de rapport direct avec un manque de ressources prévisibles et anticipables.
Les tester à 100% pour tous les cas imaginables est en réalité mission impossible. L’ingénierie du chaos est une nouvelle approche pour tester la résilience des systèmes d’information ou des workloads complexes hébergés dans les clouds.
Une technique d’expérimentation qui se concrétise en production
L’ingénierie du chaos consiste à tester une situation de désordre et de confusion sur un système informatique de production. Le but est d’identifier les failles et de renforcer les systèmes. La méthode est expérimentée depuis plusieurs années par des pare-players du cloud comme Netflix ou Amazon. Progressivement le chaos engineering s’est structuré autour de process et d’outils dédiés qui ne sont pas forcément très connus ni même très maîtrisés.
Le nom de la méthode fait bien entendu référence à la théorie du chaos qui a pour objectif d’étudier les comportements aléatoires et imprévisibles avec un objectif précis et mesurable. Ce qui impose monitoring intensif et collecte d’une grande volumétrie de données. Car le but du « Chaos Engineering » n’est pas de semer le chaos dans les plateformes, mais à l’inverse d’éviter le chaos quand les choses tournent à l’imprévu.
L’objectif du « Chaos Engineering » est d’analyser et comprendre comment un système ou un workload complexe réagit aux problèmes en injectant des anomalies ou des pannes.
Dans un premier temps, les testeurs déterminent le comportement souhaité du système/workload et établissent le seuil en dessous duquel l’état de fonctionnement est jugé insuffisant. Dans la mesure où les tests sont souvent pratiqués en production, ce type d’approche présente l’avantage de mesurer le fonctionnement en conditions réelles. Mais l’opération demande non seulement de la préparation, des outils, et une communication étendue à tous les collaborateurs susceptibles d’être impactés afin de limiter les effets de bord et autres réactions en chaine liés aux conséquences de l’expérience. Mais ces expérimentations peuvent révéler des erreurs critiques ou une relation de cause à effet inattendue provoquant des pannes pouvant paralyser l’activité.
AWS annonce une offre « Chaos Engineering as a Service »
Après l’avoir expérimenté depuis des années sur ses propres systèmes et développements, Amazon a décidé de populariser la pratique en proposant un service qui définit des méthodes et un cadre général tout en proposant les outils d’observabilité et d’analyses de logs qu’impose une telle démarche.
AWS Fault Injection Simulator est le premier service CEaaS (Chaos Engineering as a Service) d’AWS mais n’est pas la première offre du marché. En effet Gremlin propose déjà un tel service pour AWS et pour toute infrastructure Kubernetes. InfoStretch propose également des services à incorporer dans une chaîne DevOps.
« Nous pensons que l’ingénierie du chaos peut aujourd’hui être utile à tout le monde, pas uniquement à des services de l’ampleur d’Amazon ou Netflix. C’est pourquoi nous lançons un nouveau service conçu pour simplifier le processus d’expérimentations du chaos dans le cloud » explique Werner Vogals, CTO d’Amazon. Il ajoute qu’ « AWS FIS facilite l’exécution d’expériences sûres. Nous l’avons construit pour suivre le workflow type d’expérimentations du chaos où vous comprenez votre état stable, définissez une hypothèse et injectez les anomalies au cœur de votre application. Une fois l’expérience terminée, AWS FIS vous dira si votre hypothèse a été confirmée, et vous pouvez utiliser les données recueillies par CloudWatch pour décider où vous devez apporter des améliorations ».
Le service est actuellement en bêta fermé, mais devrait officiellement voir le jour dans les premiers mois de 2021.