Aller au contenu principal

Chaos Mesh 2.0 : Vers une écologie du chaos engineering

· 6 minutes de lecture
Chaos Mesh Authors
All maintainers of Chaos Mesh
Traduction Bêta Non Officielle

Cette page a été traduite par PageTurner AI (bêta). Non approuvée officiellement par le projet. Vous avez trouvé une erreur ? Signaler un problème →

Chaos Mesh 2.0 : Vers une écologie du chaos engineering
Chaos Mesh 2.0 : Vers une écologie du chaos engineering

Le 23 juillet 2021, Chaos Mesh 2.0 est sorti en version stable ! C'est une version passionnante qui marque une étape importante vers l'écologie du chaos engineering que nous souhaitons construire.

Simplifier le chaos engineering a toujours été l'objectif constant de Chaos Mesh, et cette version en est une étape clé. Après près d'un an d'efforts continus, nous avons apporté des améliorations majeures dans trois domaines principaux : la facilité d'utilisation, l'orchestration et la planification natives des expériences, ainsi que la richesse des types d'injection de fautes.

Facilité d'utilisation

Nous nous engageons à améliorer l'utilisabilité de Chaos Mesh, et l'une des voies principales est Chaos Dashboard, une interface web permettant aux utilisateurs d'orchestrer des expériences de chaos. Pour Chaos Mesh 2.0, nous avons amélioré Chaos Dashboard de la manière suivante, simplifiant davantage la complexité des expériences de chaos :

  • Il prend désormais en charge la création, la visualisation et la mise à jour des AWSChaos et GCPChaos, afin que la réalisation d'expériences de chaos dans un environnement cloud offre une expérience cohérente avec celle de Kubernetes ;

  • Il peut afficher des enregistrements plus détaillés pour chaque expérience, améliorant ainsi sa visibilité.

Planification d'expérience Chaos Mesh 2.0
Planification d'expérience Chaos Mesh 2.0

Orchestration et planification natives des expériences

Lors de la réalisation d'expériences de chaos, une seule expérience ne suffit souvent pas à simuler un scénario de test complet, et le démarrage ou l'arrêt manuel de l'expérience serait fastidieux et risqué. Précédemment, nous avions combiné Argo avec Chaos Mesh pour injecter automatiquement des fautes via un workflow. Cependant, nous avons ensuite réalisé qu'Argo n'était pas le meilleur moyen de décrire des expériences de chaos déclaratives, et avons décidé de développer un autre moteur de workflow. Chaos Mesh 2.0 intègre un Workflow natif pour supporter l'orchestration d'expériences, ce qui vous permet d'exécuter plusieurs expériences en série ou en parallèle. Vous pouvez même intégrer des notifications et des vérifications d'intégrité pour simuler des scénarios expérimentaux plus complexes.

Workflow Chaos Mesh 2.0
Workflow Chaos Mesh 2.0

Dans les versions précédentes, nous utilisions les champs cron et duration pour définir des expériences de chaos exécutées périodiquement. Nous avons rapidement réalisé que cette manière de décrire le comportement n'était pas adaptée. Par exemple, une seule exécution dépasse souvent la durée d'un cycle. Cette définition fonctionne, mais manque d'une description adéquate pour l'étude du comportement attendu. Nous nous sommes inspirés de CronJob et avons introduit Schedule, un nouvel objet personnalisé, dans Chaos Mesh. Il ajoute des propriétés plus explicites aux tâches exécutées périodiquement, comme la possibilité d'exécuter plusieurs expériences simultanément, restreignant ainsi les comportements.

Planification Chaos Mesh 2.0
Planification Chaos Mesh 2.0

Types d'injection de fautes plus riches

Chaos Mesh supporte déjà les injections de fautes au niveau système ainsi que dans les environnements cloud comme AWSChaos et GCPChaos. À partir de la version 2.0, l'injection de chaos dans la couche applicative est rendue possible avec l'introduction de JVMChaos et HTTPChaos.

JVMChaos

Les langages JVM comme Java et Kotlin sont largement utilisés dans l'industrie. On peut facilement simuler un JVMChaos via des méthodes comme l'amélioration du bytecode JVM ou Java Agent. Actuellement, JVMChaos utilise chaosblade-exec-jvm et permet d'injecter divers types de fautes applicatives incluant : délai de méthode, valeur de retour spécifiée, OOM et lancement d'exceptions personnalisées. Pour plus d'informations, consultez le document : Simuler des fautes applicatives JVM.

HTTPChaos

HTTPChaos est un nouveau type de Chaos introduit dans la version 2.0. Il peut intercepter les requêtes et réponses HTTP côté serveur, interrompre des connexions, injecter des délais ou modifier les en-têtes/corps. Il convient à tous les scénarios utilisant HTTP comme protocole de communication. Pour plus de détails, référez-vous à Simuler des fautes HTTP.

Chaosd : un outil d'injection de fautes pour nœuds physiques

Chaos Mesh est conçu pour Kubernetes. Pour les environnements de machines physiques, nous proposons Chaosd. Évoluant à partir de chaos-daemon (composant clé de Chaos Mesh), nous y avons ajouté des expériences de chaos spécifiques aux caractéristiques des machines physiques. Actuellement, Chaosd prend en charge l'injection de fautes sur machines physiques pour : arrêt de processus, réseau, JVM, pression système, disque et autres types.

Perspectives d'avenir

Chaos Mesh est toujours en développement actif, avec de nouvelles fonctionnalités puissantes en préparation :

  • Injection de JVMChaos à l'exécution, réduisant son coût et améliorant son ergonomie

  • Mécanisme de plugins pour créer des expériences de chaos personnalisées, sans altérer la fonction de Scheduling

De plus, nous avons constaté que les expériences de chaos sont réutilisables dans de nombreux scénarios. Nous prévoyons donc une plateforme où les expériences personnalisées deviendront des modèles, permettant aux utilisateurs de partager et réutiliser non seulement des expériences spécifiques, mais aussi des Workflows adaptés à différents contextes.

Essayez-le !

note

2022-10-24: Suite à la suspension de la technologie Katacoda (https://www.oreilly.com/online-learning/leveraging-katacoda-technology.html) et comme indiqué dans #356, le tutoriel interactif est temporairement indisponible.

Testez les Chaos Mesh 2.0 interactive scenarios directement depuis votre navigateur ! Aucune installation ni configuration nécessaire : l'environnement complet est préconfiguré. Vous pouvez aussi consulter la documentation Chaos Mesh pour plus d'informations.

Un grand merci

Merci à tous les contributeurs de Chaos Mesh : sans vos efforts, le passage de la 1.0 à la 2.0 n'aurait pas été possible !

Si Chaos Mesh vous intéresse et que vous souhaitez nous aider à l'améliorer, rejoignez notre canal Slack ou soumettez vos PR/issues sur notre dépôt GitHub. Nous attendons vos contributions et retours avec impatience !