
Um kit de ferramentas de experimentos de engenharia do caos fácil de usar e poderoso.(Uma ferramenta de injeção de experimentos de caos simples, fácil de usar e poderosa, de código aberto da Alibaba)

Versão em chinês README
Wiki: DeepWiki
O Blade AI atua como a camada de agente inteligente dentro do ecossistema ChaosBlade: no nível fundamental, ele invoca o ChaosBlade para executar injeção de falhas; no nível superior, incorpora capacidades de orquestração, como entendimento de intenção, auditoria de segurança, verificação de efeitos, recuperação segura e relatórios estruturados—transformando assim as simulações de falhas de um processo de "escrever comandos manualmente" para um concluído por "interação conversacional".
Para informações detalhadas, consulte: Blade AI README
ChaosBlade é uma ferramenta de injeção experimental de código aberto da Alibaba que segue os princípios da engenharia do caos e os modelos de experimentos do caos para ajudar empresas a melhorar a tolerância a falhas de sistemas distribuídos e garantir a continuidade dos negócios durante o processo de migração das empresas para a nuvem ou para sistemas nativos da nuvem.
Chaosblade é um projeto de código aberto interno do MonkeyKing. Ele é baseado em quase dez anos de testes de falhas e práticas de simulação da Alibaba e combina as melhores ideias e práticas dos negócios do Grupo.
ChaosBlade não é apenas fácil de usar, mas também suporta ricos cenários experimentais. Os cenários incluem:
Encapsular os cenários por domínio em projetos individuais não apenas padroniza os cenários do domínio, mas também facilita a expansão horizontal e vertical dos cenários. Seguindo o modelo de experimento do caos, o cli chaosblade pode ser chamado de forma uniforme. Os itens atualmente incluídos são:
Este guia ajuda você a executar sua primeira injeção de falha no Kubernetes em menos de 5 minutos usando o ChaosBlade. Vamos injetar uma falha de estresse de CPU em um Pod como um exemplo mínimo.
Antes de começar, certifique-se de ter:
kubectl cluster-info retorna com sucesso)default)blade está no seu PATH)Instale o operador com Helm:
helm install chaosblade-operator chaosblade-operator-<version>.tgz --namespace chaosblade --create-namespace
Verifique se o operador está em execução:
kubectl get pods -n chaosblade
Execute uma falha de CPU em plena carga contra um Pod no namespace default:
blade create k8s pod-cpu fullload --cpu-percent 80 --kubeconfig ~/.kube/config --names <pod-name> --namespace default
Se a injeção for bem-sucedida, o ChaosBlade retorna um resultado JSON contendo um uid de experimento. Salve esse uid para verificar o status ou destruir o experimento posteriormente:
{"code":200,"success":true,"result":"<experiment-uid>"}
blade status <experiment-uid>
Sempre recupere após sua simulação para restaurar o alvo ao normal:
blade destroy <experiment-uid>
É isso! Você concluiu um ciclo completo de injetar-verificar-recuperar. Para explorar mais cenários, execute blade create k8s -h ou veja Prática de Engenharia do Caos em Nuvem Nativa.
Você pode baixar o kit de ferramentas chaosblade mais recente em Releases, extraí-lo e usá-lo. Se quiser injetar cenários de falha relacionados ao Kubernetes, você precisa instalar o chaosblade-operator. Para documentos de uso detalhados em chinês, consulte chaosblade-help-zh-cn .
O chaosblade suporta métodos de invocação via CLI e HTTP. Os comandos suportados são os seguintes:
blade p jvm --process business no host de destino. Se a anexação for bem-sucedida, retorne o uid para consulta de status ou revogação do agent.blade revoke UIDblade create [TARGET] [ACTION] [FLAGS]. Por exemplo, se você implementar um consumidor Dubbo chamando a interface xxx.xxx.Service com atraso de 3s, o comando executado é blade create dubbo delay --consumer --time 3000 --Service xxx.xxx.Service; se a injeção for bem-sucedida, retorne o uid experimental para consulta de status e destruição do experimento.blade destroy UIDblade status UID ou blade status --type createUse o comando blade help [COMMAND] ou blade [COMMAND] -h para ver a ajuda
Baixe a imagem de demonstração do chaosblade e experimente o uso do kit de ferramentas blade

Comando para baixar a imagem:
docker pull chaosbladeio/chaosblade-demo
Execute o contêiner de demonstração:
docker run -it --privileged chaosbladeio/chaosblade-demo
Após entrar no contêiner, você pode ler o arquivo README.txt para realizar o experimento do caos. Aproveite!
chaosblade-operator O projeto é uma ferramenta de injeção de experimentos do caos para plataformas nativas da nuvem. Ele segue o modelo de experimento do caos para padronizar o cenário experimental e define o experimento como recursos CRD do Kubernetes, mapeando modelos experimentais para atributos de recursos do Kubernetes, e combina de forma muito amigável os modelos de experimento do caos com o design declarativo do Kubernetes. Ao mesmo tempo em que depende de modelos de experimento do caos para desenvolver cenários convenientemente, também integra bem os conceitos de design do Kubernetes. Por meio de kubectl ou escrevendo código para chamar diretamente a API do Kubernetes, é possível criar, atualizar e excluir experimentos do caos, e o status do recurso pode indicar claramente o status de execução do experimento, padronizando a injeção de falhas no Kubernetes. Além de usar os métodos acima para realizar experimentos, você também pode usar o método cli do chaosblade para executar cenários experimentais do Kubernetes e consultar o status do experimento de forma muito conveniente. Para detalhes, leia o documento em chinês: Prática de Engenharia do Caos em Nuvem Nativa
Consulte BUILD.md para obter os detalhes.
Para relatar bugs, tirar dúvidas e discutir, envie GitHub Issues.
Você também pode entrar em contato conosco por:
Aceitamos todas as contribuições, mesmo que seja apenas pontuação. Veja os detalhes em CONTRIBUTING. Para a trilha de promoção de estudantes que participam da comunidade, veja: (Contributor Ladder)
A intenção original do nosso projeto de código aberto é reduzir a barreira para a implementação da engenharia do caos nas empresas, por isso valorizamos muito o uso do projeto nas empresas. Recebemos a todos aqui ISSUE. Após o registro, você será convidado a participar do grupo de e-mail corporativo para discutir os problemas encontrados pela engenharia do caos na implantação nas empresas e compartilhar experiências de implantação.
Este projeto existe graças a todas as pessoas que contribuem. [Contribua].
O Chaosblade é licenciado sob a Apache License, Versão 2.0. Consulte LICENSE para obter o texto completo da licença.
blade server start -p 9526curl "http://xxxx:9526/chaosblade?cmd=create%20cpu%20fullload"