Introduction

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).

C’est quoi le “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.

L’approche Chaos Engineering

Les ingénieurs du chaos adoptent une approche consistant à trouver les problèmes, généralement, de manière progressive :

  1. Commencez par définir l'état prêt. Ce à quoi l'environnement est censé ressembler et comment vous vous attendez à ce qu'il fonctionne.
  2. Créez une hypothèse et effectuez des recherches à la fois pour l'environnement expérimental et l'environnement de production.
  3. Effectuez des tests et des expériences qui mettent en œuvre des problèmes du monde réel. Des exemples :
  4. Prenez ce que vous avez appris de l'hypothèse, comparez-le à l'état prêt de l'étape 1, et voyez si tout s'est passé comme prévu. Si ce n'est pas le cas, vous savez que vous devez itérer. Par exemple, si vous avez démantelé un cluster Kubernetes et qu'il n'a pas basculé vers un autre cluster, vous savez que cela doit être mis en œuvre.

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 pour le Chaos Engineering

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: