
Chaosblade : une boîte à outils d'ingénierie du chaos puissante et facile à utiliser

Version chinoise README
Wiki : DeepWiki
🔥🔥🔥 MISE À JOUR MAJEURE:Chaosblade Agent publié - Blade AI

Blade AI constitue la couche d'agent intelligent de l'écosystème ChaosBlade : au niveau fondamental, il invoque ChaosBlade pour exécuter l'injection de pannes ; au niveau supérieur, il intègre des capacités d'orchestration telles que la compréhension de l'intention, l'audit de sécurité, la vérification des effets, la récupération sécurisée et le reporting structuré — transformant ainsi les exercices de panne d'un processus « d'écriture manuelle de commandes » en un processus accompli par « interaction conversationnelle ».
Pour des informations détaillées, veuillez consulter : Blade AI README
Introduction
ChaosBlade est un outil open source d'injection d'expériences développé par Alibaba qui suit les principes de l'ingénierie du chaos et les modèles d'expériences du chaos pour aider les entreprises à améliorer la tolérance aux pannes de leurs systèmes distribués et à assurer la continuité des activités lors de leur migration vers le cloud ou vers des systèmes cloud natifs.
Chaosblade est un projet open source interne de MonkeyKing. Il s'appuie sur près de dix ans de tests de pannes et de pratiques d'exercices d'Alibaba, et combine les meilleures idées et pratiques des activités du Groupe.
ChaosBlade est non seulement facile à utiliser, mais prend également en charge de riches scénarios d'expérimentation. Les scénarios comprennent :
- Ressources de base : comme les scénarios d'expérimentation sur le CPU, la mémoire, le réseau, le disque, les processus, etc. ;
- Applications Java : comme les bases de données, les caches, les messages, la JVM elle-même, les microservices, etc. Vous pouvez également spécifier n'importe quelle méthode de classe pour injecter divers scénarios d'expérimentation complexes ;
- Applications C++ : comme la spécification de méthodes arbitraires ou de lignes de code expérimentales pour l'injection de délais, la falsification de variables et de valeurs de retour ;
- Conteneurs : comme tuer le conteneur, ou les scénarios d'expérimentation CPU, mémoire, réseau, disque, processus dans le conteneur, etc. ;
- Plateformes cloud natives : par exemple, les scénarios d'expérimentation CPU, mémoire, réseau, disque et processus sur les nœuds de la plateforme Kubernetes, les scénarios d'expérimentation sur le réseau Pod et le Pod lui-même comme le kill de Pods, ainsi que les scénarios d'expérimentation de conteneurs comme le scénario Docker mentionné précédemment ;
Encapsuler les scénarios par domaine dans des projets individuels permet non seulement de normaliser les scénarios du domaine, mais aussi de faciliter l'expansion horizontale et verticale des scénarios. En suivant le modèle d'expérimentation du chaos, le cli chaosblade peut être appelé de manière uniforme. Les projets actuellement inclus sont :
- chaosblade : outil de gestion des expériences du chaos, comprenant des commandes pour créer des expériences, détruire des expériences, interroger des expériences, préparer des environnements expérimentaux et annuler des environnements expérimentaux. C'est l'outil d'exécution des expériences du chaos. Les méthodes d'exécution comprennent CLI et HTTP. Il fournit des commandes complètes, des scénarios d'expérimentation et des descriptions de paramètres de scénarios, et son fonctionnement est simple et clair.
- chaosblade-spec-go : définition en langage Golang du modèle d'expérimentation du chaos ; les scénarios implémentés en langage Golang sont faciles à réaliser sur la base de cette spécification.
- chaosblade-exec-os : implémentation des scénarios d'expérimentation sur les ressources de base.
- chaosblade-exec-docker : implémentation des scénarios d'expérimentation des conteneurs Docker, normalisée par l'appel de l'API Docker.
- chaosblade-exec-cri : implémentation des scénarios d'expérimentation des conteneurs, normalisée par l'appel du CRI.
- chaosblade-operator : implémentation des scénarios d'expérimentation de la plateforme Kubernetes ; les expériences du chaos sont définies par la méthode standard CRD de Kubernetes. Il est très pratique d'utiliser les opérations de ressources Kubernetes pour créer, mettre à jour et supprimer des scénarios d'expérimentation, notamment avec kubectl, client-go, etc., ainsi qu'avec l'outil cli chaosblade décrit ci-dessus.
- chaosblade-exec-jvm : implémentation des scénarios d'expérimentation des applications Java, utilisant la technologie Java Agent pour un montage dynamique, sans aucune intrusion, avec une utilisation à coût zéro. Il prend également en charge la désinstallation et recycle complètement les diverses ressources créées par l'Agent.
- chaosblade-exec-cplus : implémentation des scénarios d'expérimentation des applications C++, utilisant la technologie GDB pour réaliser l'injection de scénarios d'expérimentation au niveau des méthodes et des lignes de code.
- chaosblade-box : possède les capacités d'une plateforme d'ingénierie du chaos et d'une plateforme de tests de résilience. Pour plus d'informations sur les capacités de la plateforme de tests de résilience, voir la branche main2.
Démarrage rapide
Ce guide vous aide à exécuter votre première injection de panne sur Kubernetes en moins de 5 minutes avec ChaosBlade. Nous allons injecter une panne de stress CPU dans un Pod comme exemple minimal.
Prérequis
Avant de commencer, assurez-vous de disposer de :