
Un kit d'expérimentation d'ingénierie du chaos facile à utiliser et puissant. (Un outil d'injection d'expériences de chaos open source d'Alibaba, simple d'utilisation et puissant.)

Version chinoise README
Wiki : DeepWiki
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
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 :
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 :
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.
Avant de commencer, assurez-vous de disposer de :
kubectl cluster-info réussit)default)blade est dans votre PATH)Installez l'operator avec Helm :
helm install chaosblade-operator chaosblade-operator-<version>.tgz --namespace chaosblade --create-namespace
Vérifiez que l'operator est en cours d'exécution :
kubectl get pods -n chaosblade
Exécutez une panne de pleine charge CPU sur un Pod du namespace default :
blade create k8s pod-cpu fullload --cpu-percent 80 --kubeconfig ~/.kube/config --names <pod-name> --namespace default
Si l'injection réussit, ChaosBlade renvoie un résultat JSON contenant un uid d'expérience. Conservez ce uid pour vérifier le statut ou détruire l'expérience plus tard :
{"code":200,"success":true,"result":"<experiment-uid>"}
blade status <experiment-uid>
Récupérez toujours après votre exercice pour restaurer la cible à la normale :
blade destroy <experiment-uid>
Et voilà ! Vous avez effectué un cycle complet injecter-vérifier-récupérer. Pour explorer plus de scénarios, exécutez blade create k8s -h ou consultez Pratique de l'ingénierie du chaos en environnement cloud natif.
Vous pouvez télécharger la dernière boîte à outils chaosblade depuis Releases, l'extraire et l'utiliser. Si vous souhaitez injecter des scénarios de pannes liés à Kubernetes, vous devez installer chaosblade-operator. Pour des documents d'utilisation détaillés en chinois, veuillez consulter chaosblade-help-zh-cn .
chaosblade prend en charge les méthodes d'appel CLI et HTTP. Les commandes prises en charge sont les suivantes :
blade p jvm --process business sur l'hôte cible. Si l'attache réussit, retournez l'uid pour la requête de statut ou la révocation de l'agent.blade revoke UIDblade create [TARGET] [ACTION] [FLAGS]. Par exemple, si vous implémentez un délai de 3 s sur l'appel de l'interface xxx.xxx.Service par un consommateur Dubbo, la commande exécutée est blade create dubbo delay --consumer --time 3000 --Service xxx.xxx.Service. Si l'injection réussit, retournez l'uid expérimental pour la requête de statut et la destruction de l'expérience.blade destroy UIDblade status UID ou blade status --type createUtilisez la commande blade help [COMMAND] ou blade [COMMAND] -h pour afficher l'aide
Téléchargez l'image de démo chaosblade et découvrez l'utilisation de la boîte à outils blade

Commande de téléchargement de l'image :
docker pull chaosbladeio/chaosblade-demo
Exécutez le conteneur de démo :
docker run -it --privileged chaosbladeio/chaosblade-demo
Après être entré dans le conteneur, vous pouvez lire le fichier README.txt pour réaliser l'expérience du chaos. Profitez-en.
Le projet chaosblade-operator est un outil d'injection d'expériences du chaos pour les plateformes cloud natives. Il suit le modèle d'expérimentation du chaos pour normaliser le scénario expérimental et définit l'expérience comme des ressources CRD Kubernetes, mappant les modèles expérimentaux sur les attributs des ressources Kubernetes, combinant ainsi de manière très conviviale les modèles d'expérimentation du chaos avec la conception déclarative de Kubernetes. Tout en s'appuyant sur les modèles d'expérimentation du chaos pour développer commodément des scénarios, il peut également bien intégrer les concepts de conception de Kubernetes : via kubectl ou en écrivant du code pour appeler directement l'API Kubernetes afin de créer, mettre à jour et supprimer des expériences du chaos. Le statut des ressources peut indiquer clairement l'état d'exécution de l'expérience et normaliser l'injection de pannes Kubernetes. En plus d'utiliser les méthodes ci-dessus pour effectuer des expériences, vous pouvez également utiliser la méthode cli chaosblade pour exécuter des scénarios expérimentaux Kubernetes et interroger très commodément le statut de l'expérience. Pour plus de détails, veuillez lire le document chinois : Pratique de l'ingénierie du chaos en environnement cloud natif
Voir BUILD.md pour plus de détails.
Pour les rapports de bugs, questions et discussions, veuillez soumettre GitHub Issues.
Vous pouvez également nous contacter via :
Nous accueillons chaque contribution, même s'il ne s'agit que d'une ponctuation. Voir les détails de CONTRIBUTING. Pour l'échelle de promotion des étudiants participant à la communauté, voir : (Contributor Ladder)
L'intention originelle de notre projet open source est d'abaisser le seuil de mise en œuvre de l'ingénierie du chaos dans les entreprises. Nous accordons donc une grande valeur à l'utilisation du projet dans les entreprises. Bienvenue à tous ici ISSUE. Après l'enregistrement, vous serez invité à rejoindre le groupe de messagerie d'entreprise pour discuter des problèmes rencontrés par l'ingénierie du chaos lors de son déploiement en entreprise et partager les expériences de déploiement.
Ce projet existe grâce à toutes les personnes qui contribuent. [Contribuer].
Chaosblade est sous licence Apache License, Version 2.0. Voir LICENSE pour le texte complet de la licence.
blade server start -p 9526curl "http://xxxx:9526/chaosblade?cmd=create%20cpu%20fullload"