Avec l'essor des microservices et des architectures cloud distribuées, le web est devenu de plus en plus complexe. Nous dépendons tous plus que jamais de ces systèmes, et pourtant les défaillances sont devenues beaucoup plus difficiles à prévoir.
Ces défaillances entraînent des pannes coûteuses pour les entreprises. Même de brèves pannes peuvent avoir un impact sur le résultat net d'une entreprise, de sorte que le coût des temps d'arrêt devient un indicateur clé de performance pour de nombreuses équipes d'ingénierie.
Les entreprises ont besoin d'une solution pour relever ce défi, attendre la prochaine panne coûteuse n'est pas une option. Pour relever le défi de front, de plus en plus d'entreprises se tournent vers l'ingénierie du chaos (chaos engineering).
L'ingénierie du chaos est la discipline qui consiste à expérimenter une défaillances sur un système afin de renforcer la certitude de sa capacité à résister aux conditions turbulentes de la production. Elle vise à identifier les défaillances avant qu'elles ne deviennent des pannes. En testant de manière proactive la façon dont un système réagit au stress, vous pouvez identifier et réparer les défaillances avant qu'elles ne fassent la une des journaux.
L'ingénierie du chaos vous permet de comparer ce que vous pensez qu'il va se passer avec ce qui se passe réellement dans vos systèmes. Vous "cassez littéralement les choses exprès" pour apprendre à construire des systèmes plus résistants.
Les ingénieurs du chaos adoptent une approche consistant à trouver les problèmes, généralement, de manière progressive :
L'ingénierie du chaos consiste à effectuer des tests, des recherches et à rendre un environnement de production aussi stable que possible afin que personne ne reçoive d'appels à 2 heures du matin, qu'aucune application ne tombe en panne et que les utilisateurs restent satisfaits.
Les outils d'ingénierie du chaos permettent d'automatiser le processus de désactivation ou de perturbation temporaire de composants spécifiques de l'infrastructure afin d'évaluer leur effet sur les applications en production. Grâce aux expériences de chaos, les équipes peuvent simplement désactiver un service ou un composant d'infrastructure donné, surveiller les applications à l'aide de divers outils d'observabilité et résoudre les problèmes connus.
Liste non exhaustive des outils de chaos engineering: