

Versione cinese README
Wiki: DeepWiki
🔥🔥🔥 Aggiornamento importante: Chaosblade Agent rilasciato - Blade AI

Blade AI funge da livello di agente intelligente nell'ecosistema ChaosBlade: a livello fondamentale, richiama ChaosBlade per eseguire l'iniezione di guasti; a livello superiore, incorpora capacità di orchestrazione come comprensione dell'intento, audit di sicurezza, verifica degli effetti, ripristino sicuro e reportistica strutturata, trasformando così le esercitazioni sui guasti da un processo di "scrittura manuale di comandi" a uno completato tramite "interazione conversazionale".
Per informazioni dettagliate, fare riferimento a: Blade AI README
Introduzione
ChaosBlade è uno strumento open source di Alibaba per l'iniezione di esperimenti che segue i principi del chaos engineering e i modelli di esperimento del caos per aiutare le aziende a migliorare la tolleranza ai guasti dei sistemi distribuiti e garantire la continuità operativa durante il processo di migrazione verso il cloud o verso sistemi cloud native.
Chaosblade è un progetto open source interno di MonkeyKing. Si basa su quasi dieci anni di pratica di test ed esercitazioni sui guasti di Alibaba e combina le migliori idee e pratiche delle attività del Gruppo.
ChaosBlade non è solo facile da usare, ma supporta anche ricchi scenari sperimentali. Gli scenari includono:
- Risorse di base: come CPU, memoria, rete, disco, processi e altri scenari sperimentali;
- Applicazioni Java: come database, cache, messaggi, la JVM stessa, microservizi, ecc. Puoi anche specificare un qualsiasi metodo di classe per iniettare vari scenari sperimentali complessi;
- Applicazioni C ++: come specificare metodi arbitrari o linee di codice sperimentali per l'iniezione di ritardi, l'alterazione di variabili e valori di ritorno;
- contenitore: come l'uccisione del contenitore, scenari sperimentali come CPU, memoria, rete, disco, processi all'interno del contenitore;
- piattaforme cloud native: ad esempio, scenari sperimentali su CPU, memoria, rete, disco e processi sui nodi della piattaforma Kubernetes, scenari sperimentali sulla rete Pod e sul Pod stesso come l'uccisione dei Pod, e scenari sperimentali sui contenitori come il suddetto scenario per contenitori Docker;
Incapsulare gli scenari per dominio in progetti separati non solo consente di standardizzare gli scenari del dominio, ma facilita anche l'espansione orizzontale e verticale degli scenari. Seguendo il modello di esperimento del caos, la CLI di chaosblade può essere richiamata in modo uniforme. Gli elementi attualmente inclusi sono:
- chaosblade: strumento di gestione degli esperimenti di chaos, include comandi per creare esperimenti, distruggere esperimenti, interrogare esperimenti, preparare ambienti sperimentali e annullare ambienti sperimentali. È lo strumento per l'esecuzione di esperimenti di chaos. I metodi di esecuzione includono CLI e HTTP. Fornisce comandi completi, scenari sperimentali e descrizioni dei parametri degli scenari, con un funzionamento semplice e chiaro.
- chaosblade-spec-go: definizione in linguaggio Golang del modello di esperimento di chaos; gli scenari implementati con il linguaggio Golang sono facili da realizzare sulla base di questa specifica.
- chaosblade-exec-os: implementazione degli scenari sperimentali delle risorse di base.
- chaosblade-exec-docker: implementazione degli scenari sperimentali per contenitori Docker, standardizzata tramite chiamate all'API Docker.
- chaosblade-exec-cri: implementazione degli scenari sperimentali per contenitori, standardizzata tramite chiamate al CRI.
- chaosblade-operator: implementa gli scenari sperimentali della piattaforma Kubernetes; gli esperimenti di chaos sono definiti tramite il metodo standard CRD di Kubernetes. È molto comodo usare il metodo di operazione sulle risorse Kubernetes per creare, aggiornare ed eliminare scenari sperimentali, anche tramite kubectl, client-go, ecc., e anche usando lo strumento CLI chaosblade descritto sopra.
- chaosblade-exec-jvm: implementazione degli scenari sperimentali per applicazioni Java; utilizza la tecnologia Java Agent per l'aggancio dinamico, senza alcuna integrazione e con un utilizzo a costo zero. Supporta inoltre la disinstallazione e ricicla completamente le varie risorse create dall'Agent.
- chaosblade-exec-cplus: implementazione degli scenari sperimentali per applicazioni C++; utilizza la tecnologia GDB per implementare l'iniezione di scenari sperimentali a livello di metodo e di riga di codice.
- chaosblade-box: dispone delle funzionalità di piattaforma di chaos engineering e di piattaforma di test della resilienza. Per maggiori informazioni sulle funzionalità della piattaforma di test della resilienza, vedere il branch main2.
Avvio rapido
Questa guida ti aiuta a eseguire la tua prima iniezione di guasto su Kubernetes in meno di 5 minuti usando ChaosBlade. Inietteremo un guasto da stress della CPU in un Pod come esempio minimale.
Prerequisiti
Prima di iniziare, assicurati di avere:
Installa l'operatore con Helm:
helm install chaosblade-operator chaosblade-operator-<version>.tgz --namespace chaosblade --create-namespace
Verifica che l'operatore sia in esecuzione:
kubectl get pods -n chaosblade