

Chinesische Version README
Wiki: DeepWiki
🔥🔥🔥 Großes Update:Chaosblade Agent veröffentlicht - Blade AI

Blade AI dient als intelligente Agentenschicht innerhalb des ChaosBlade-Ökosystems: Auf der Basisebene ruft es ChaosBlade auf, um Fehlerinjektionen auszuführen; auf der oberen Ebene integriert es Orchestrierungsfähigkeiten wie Absichtserkennung, Sicherheitsaudit, Wirkungsüberprüfung, sichere Wiederherstellung und strukturierte Berichterstattung – und verwandelt so Fehlerübungen von einem Prozess des „manuellen Schreibens von Befehlen" in einen, der durch „konversationelle Interaktion" abgeschlossen wird.
Ausführliche Informationen finden Sie unter: Blade AI README
Einführung
ChaosBlade ist ein von Alibaba entwickeltes Open-Source-Werkzeug zur Experimentinjektion, das den Prinzipien des Chaos Engineerings und chaotischer Experimentalmodelle folgt, um Unternehmen dabei zu helfen, die Fehlertoleranz verteilter Systeme zu verbessern und die Geschäftskontinuität während des Umstiegs auf die Cloud oder auf Cloud-native Systeme sicherzustellen.
Chaosblade ist ein internes Open-Source-Projekt von MonkeyKing. Es basiert auf fast zehn Jahren Fehlertests und Übungspraxis bei Alibaba und vereint die besten Ideen und Praktiken der Geschäftsbereiche der Gruppe.
ChaosBlade ist nicht nur einfach zu bedienen, sondern unterstützt auch zahlreiche experimentelle Szenarien. Zu den Szenarien gehören:
- Grundlegende Ressourcen: wie CPU, Speicher, Netzwerk, Festplatte, Prozess und andere experimentelle Szenarien;
- Java-Anwendungen: wie Datenbanken, Caches, Nachrichten, die JVM selbst, Mikroservices usw. Sie können auch beliebige Klassenmethoden angeben, um verschiedene komplexe experimentelle Szenarien zu injizieren;
- C++-Anwendungen: wie das Festlegen beliebiger Methoden oder experimenteller Codezeilen zur Injektionsverzögerung, das Manipulieren von Variablen und Rückgabewerten;
- Container: wie das Beenden des Containers, CPU-, Speicher-, Netzwerk-, Festplatten-, Prozess- und andere experimentelle Szenarien im Container;
- Cloud-native Plattformen: Zum Beispiel CPU-, Speicher-, Netzwerk-, Festplatten- und Prozess-Experimentalszenarien auf Kubernetes-Plattformknoten, Pod-Netzwerk- und Pod-selbst-Experimentalszenarien wie das Beenden von Pods sowie Container-Experimentalszenarien wie das zuvor genannte Docker-Container-Experimentalszenario;
Die Kapselung von Szenarien nach Domänen in einzelne Projekte kann nicht nur die Szenarien in der Domäne standardisieren, sondern auch die horizontale und vertikale Erweiterung der Szenarien erleichtern. Durch die Befolgung des Chaos-Experimentmodells kann die chaosblade CLI einheitlich aufgerufen werden. Die derzeit enthaltenen Projekte sind:
- chaosblade: Chaos-Experimentverwaltungswerkzeug, einschließlich Befehlen zum Erstellen von Experimenten, Zerstören von Experimenten, Abfragen von Experimenten, Vorbereiten von Experimentierumgebungen und Aufheben von Experimentierumgebungen. Es ist das Werkzeug zur Ausführung von Chaosexperimenten. Die Ausführungsmethoden umfassen CLI und HTTP. Es bietet vollständige Befehle, experimentelle Szenarien und Szenarioparameterbeschreibungen und die Bedienung ist einfach und klar.
- chaosblade-spec-go: Definition des Chaos-Experimentmodells in der Programmiersprache Golang; mit Golang implementierte Szenarien lassen sich auf der Grundlage dieser Spezifikation einfach umsetzen.
- chaosblade-exec-os: Implementierung von Experimentalszenarien für grundlegende Ressourcen.
- chaosblade-exec-docker: Implementierung von Docker-Container-Experimentalszenarien, standardisiert durch Aufrufe der Docker-API.
- chaosblade-exec-cri: Implementierung von Container-Experimentalszenarien, standardisiert durch Aufrufe des CRI.
- chaosblade-operator: Das Kubernetes-Plattform-Experimentalszenario wird implementiert; Chaosexperimente werden mit der standardmäßigen Kubernetes-CRD-Methode definiert. Es ist sehr bequem, mit der Kubernetes-Ressourcenbetriebsmethode Experimentalszenarien zu erstellen, zu aktualisieren und zu löschen, einschließlich der Verwendung von kubectl, client-go usw. sowie des oben beschriebenen chaosblade-CLI-Tools.
- chaosblade-exec-jvm: Implementierung von Experimentalszenarien für Java-Anwendungen, die mithilfe der Java-Agent-Technologie dynamisch angehängt wird, ohne jeglichen Zugriff und mit null Kosten. Sie unterstützt auch die Deinstallation und recycelt vollständig verschiedene vom Agenten erstellte Ressourcen.
- chaosblade-exec-cplus: Implementierung von Experimentalszenarien für C++-Anwendungen, die mithilfe der GDB-Technologie Methoden- und Codezeilenebenen-Injektion von Experimentalszenarien ermöglicht.
- chaosblade-box: Verfügt über Fähigkeiten einer Chaos-Engineering-Plattform und einer Resilienz-Testplattform. Weitere Informationen zu den Fähigkeiten der Resilienz-Testplattform finden Sie im main2-Zweig.
Schnellstart
Diese Anleitung hilft Ihnen, Ihre erste Fehlerinjektion auf Kubernetes in weniger als 5 Minuten mit ChaosBlade durchzuführen. Als minimales Beispiel injizieren wir einen CPU-Stressfehler in einen Pod.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
Installieren Sie den Operator mit Helm: