
Un toolkit di chaos engineering facile da usare e potente. (Uno strumento open source di Alibaba per l'iniezione di esperimenti di chaos, semplice e potente.)

Versione cinese README
Wiki: DeepWiki
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
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:
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:
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.
Prima di iniziare, assicurati di avere:
kubectl cluster-info restituisce esito positivo)default)blade è nel tuo PATH)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
Esegui un guasto da carico completo della CPU su un Pod nel namespace default:
blade create k8s pod-cpu fullload --cpu-percent 80 --kubeconfig ~/.kube/config --names <pod-name> --namespace default
Se l'iniezione riesce, ChaosBlade restituisce un risultato JSON contenente un uid dell'esperimento. Salva questo uid per verificare lo stato o distruggere l'esperimento in seguito:
{"code":200,"success":true,"result":"<experiment-uid>"}
blade status <experiment-uid>
Recupera sempre dopo l'esercitazione per riportare il target alla normalità:
blade destroy <experiment-uid>
Tutto qui! Hai completato un ciclo completo di iniezione-verifica-recupero. Per esplorare altri scenari, esegui blade create k8s -h oppure consulta Pratica di Chaos Engineering in ambiente Cloud Native.
Puoi scaricare l'ultimo toolkit chaosblade da Releases, estrarlo e usarlo. Se vuoi iniettare scenari di guasto correlati a Kubernetes, devi installare chaosblade-operator. Per la documentazione d'uso dettagliata in cinese, consulta chaosblade-help-zh-cn .
chaosblade supporta metodi di invocazione CLI e HTTP. I comandi supportati sono i seguenti:
blade p jvm --process business sull'host di destinazione. Se l'aggancio riesce, viene restituito l'uid per la query di stato o per la revoca dell'agente.blade revoke UIDblade create [TARGET] [ACTION] [FLAGS]. Ad esempio, se si implementa una chiamata del consumer Dubbo all'interfaccia xxx.xxx.Service con un ritardo di 3s, il comando eseguito è blade create dubbo delay --consumer --time 3000 --Service xxx.xxx.Service; se l'iniezione riesce, viene restituito l'uid sperimentale per la query di stato e la distruzione dell'esperimento.blade destroy UIDblade status UID oppure blade status --type createUsa il comando blade help [COMMAND] oppure blade [COMMAND] -h per visualizzare la guida.
Scarica l'immagine demo di chaosblade e prova l'utilizzo del toolkit blade

Comando per scaricare l'immagine:
docker pull chaosbladeio/chaosblade-demo
Esegui il container demo:
docker run -it --privileged chaosbladeio/chaosblade-demo
Dopo essere entrati nel container, puoi leggere il file README.txt per eseguire l'esperimento di chaos. Buon divertimento!
Il progetto chaosblade-operator è uno strumento di iniezione di esperimenti di chaos per piattaforme cloud native. Segue il modello di esperimento di chaos per standardizzare lo scenario sperimentale e definisce l'esperimento come risorse CRD di Kubernetes, mappando i modelli sperimentali sugli attributi delle risorse Kubernetes e combinando in modo molto efficace i modelli di esperimento di chaos con il design dichiarativo di Kubernetes. Pur basandosi sui modelli di esperimento di chaos per sviluppare comodamente gli scenari, integra anche bene i concetti di design di Kubernetes: tramite kubectl o scrivendo codice è possibile chiamare direttamente le API Kubernetes per creare, aggiornare ed eliminare esperimenti di chaos, e lo stato delle risorse può indicare chiaramente lo stato di esecuzione dell'esperimento, standardizzando l'iniezione di guasti in Kubernetes. Oltre a utilizzare i metodi sopra indicati per eseguire esperimenti, puoi anche usare il metodo CLI chaosblade per eseguire scenari sperimentali Kubernetes e interrogare lo stato dell'esperimento in modo molto comodo. Per i dettagli, leggi il documento in cinese: Pratica di Chaos Engineering in ambiente Cloud Native
Vedi BUILD.md per i dettagli.
Per segnalare bug, domande e discussioni, invia GitHub Issues.
Puoi anche contattarci tramite:
Accogliamo con piacere ogni contributo, anche se si tratta solo di punteggiatura. Vedi i dettagli in CONTRIBUTING. Per la scala di avanzamento dei partecipanti alla community, consulta: (Contributor Ladder)
L'intenzione originale del nostro progetto open source è abbassare la soglia per l'implementazione del chaos engineering nelle aziende, quindi diamo grande valore all'utilizzo del progetto nelle imprese. Tutti sono i benvenuti qui ISSUE. Dopo la registrazione, sarai invitato a unirti alla mailing list aziendale per discutere i problemi incontrati dal Chaos Engineering nell'implementazione in azienda e condividere l'esperienza di implementazione.
Questo progetto esiste grazie a tutte le persone che contribuiscono. [Contribuisci].
Chaosblade è concesso in licenza secondo i termini della Apache License, Version 2.0. Vedi LICENSE per il testo completo della licenza.
blade server start -p 9526