BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Principes d'Ingénierie du Chaos de Netflix

Principes d'Ingénierie du Chaos de Netflix

Favoris

Au vu de leur expérience avec l'arrêt arbitraire de serveurs ou la simulation de l'arrêt d'un centre de données complet en production, Netflix a proposé un certain nombre de principes d'Ingénierie du Chaos.

Netflix définit l'Ingénierie du Chaos comme la "discipline de l'expérimentation sur un système distribué, afin de renforcer la confiance dans la capacité du système à résister à des conditions aléatoires en production". Netflix affirme la nécessité de trouver des faiblesses dans un système de production avant qu'elles ne se manifestent de manière indésirable, en observant le comportement du système au sein d'expériences contrôlées. Ils décrivent un certain nombre de faiblesses systémiques possibles : "paramètres de secours inappropriés quand un service est indisponible ; rafales de tentatives à cause de délais d'attente mal configurés ; pannes lorsqu'une dépendance en aval reçoit trop de trafic ; cascade d'échecs quand un point de défaillance unique échoue, etc".

Les 4 principes d'Ingénierie du Chaos, selon Netflix, sont :

Construire une Hypothèse autour d'un Comportement à l'Equilibre

Mettez l'accent sur la mesure des résultats du système, plutôt que sur les caractéristiques internes de celui-ci. La mesure de ces résultats sur une courte période de temps constitue un indicateur de l'équilibre du système. Le débit global du système, les taux d'erreur, les centiles de latence, etc., pourraient toutes être des métriques intéressantes représentant le comportement à l'équilibre. En mettant l'accent sur les tendances de comportement systémique au cours des expériences, Chaos vérifie que le système fonctionne, plutôt que d'essayer de valider comment cela fonctionne.

Varier les Événements du Monde réel

Les variables de Chaos reflètent des événements du monde réel. Priorisez les événements, soit par impact potentiel ou par fréquence estimée. Considérez les événements qui correspondent à des défaillances matérielles comme la mort de serveurs, des défaillances logicielles comme des réponses malformées, et les événements qui ne sont pas des échecs comme un pic de trafic ou un événement de redimensionnement. Tout événement susceptible de perturber l'équilibre est une variable potentielle dans une expérience Chaos.

Lancer des Expériences en Production

Les systèmes se comportent différemment selon les environnements et les modèles de charge. Comme le comportement d'utilisation peut changer à tout moment, l'échantillonnage du trafic réel est la seule façon de capturer de manière fiable le chemin de la requête. Pour garantir à la fois l'authenticité de la façon dont le système est sollicité et sa pertinence par rapport au système actuel déployé, Chaos préfère vraiment expérimenter directement sur le trafic de production.

Automatiser les Expériences pour Fonctionner en Continu

Lancer les expériences manuellement est coûteux en main-d'oeuvre et finalement insoutenable. Automatisez les expériences et exécutez-les en continu. L'Ingénierie du Chaos construit l'automatisation dans le système pour gérer à la fois l'orchestration et l'analyse.

En bref, Netflix propose les mesures concrètes suivantes :

  1. Définissez ce qu'est le comportement normal d'un système, son "état d'équilibre".
  2. Construisez un système de contrôle et un système expérimental.
  3. Commencez en imposant des perturbations dans le système expérimental, simulez des événements réels tels que pannes de serveur, dysfonctionnements de disques dur, coupures réseau, etc.
  4. Comparez l'état d'équilibre du système expérimental à celui du sytème de contrôle. Au moins il diffère de la normale, au plus la confiance qu'on a dans la résilience du système est grande. Si des problèmes apparaissent au cours de ces expériences, on peut apprendre de ce qui se passe et prendre les mesures appropriées.

Les Principes d'Ingénierie du Chaos sont censées constituer un document vivant - Netflix invitant d'autres organisations à y contribuer.

Netflix a une longue expérience dans le développement et l'utilisation d'outils tels que Chaos Monkey, Gorilla et Kong, pour tester la façon dont leurs services se comportent lorsque différents systèmes, une zone ou une région entière sont mis à bas. Les pannes de zone sont très peu probables, selon Nir Alfasi - ingénieur Netflix, de telle sorte que Gorilla n'est pas vraiment utilisé. Mais ils pratiquent des interruptions de région via Kong presque tous les mois. Chaos Monkey a été livré en Open Source il y a quelque temps dans le cadre du projet Simian Army. Janitor Monkey et Conformity Monkey sont d'autres outils de Simian Army.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT