
Chaosblade: Um kit de engenharia do caos fácil de usar e poderoso

Versão em chinês README
Wiki: DeepWiki
🔥🔥🔥 Grande atualização: Chaosblade Agent lançado - Blade AI

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
Introdução
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:
- Recursos básicos: como CPU, memória, rede, disco, processo e outros cenários experimentais;
- Aplicações Java: como bancos de dados, caches, mensagens, a própria JVM, microsserviços, etc. Você também pode especificar qualquer método de classe para injetar vários cenários experimentais complexos;
- Aplicações C++: como especificar métodos arbitrários ou linhas de código experimentais para injeção de atraso, adulteração de variáveis e valores de retorno;
- Contêiner: como matar o contêiner, CPU no contêiner, memória, rede, disco, processo e outros cenários experimentais;
- Plataformas nativas da nuvem: por exemplo, cenários experimentais de CPU, memória, rede, disco e processo em nós da plataforma Kubernetes, cenários experimentais de rede do Pod e do próprio Pod, como matar Pods, e cenários experimentais de contêiner, como o cenário experimental de contêiner Docker mencionado anteriormente;
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:
- chaosblade: ferramenta de gerenciamento de experimentos do caos, incluindo comandos para criar experimentos, destruir experimentos, consultar experimentos, preparar ambientes experimentais e cancelar ambientes experimentais. É a execução de experimentos do caos. Os métodos de execução incluem CLI e HTTP. Fornece comandos completos, cenários experimentais e descrições de parâmetros de cenário, com operação simples e clara.
- chaosblade-spec-go: definição do modelo de experimento do caos em linguagem Golang; cenários implementados com Golang são fáceis de implementar com base nesta especificação.
- chaosblade-exec-os: implementação de cenários experimentais de recursos básicos.
- chaosblade-exec-docker: implementação de cenários experimentais de contêiner Docker, padronizada por chamadas à API Docker.
- chaosblade-exec-cri: implementação de cenários experimentais de contêiner, padronizada por chamadas à CRI.
- chaosblade-operator: o cenário experimental da plataforma Kubernetes é implementado; experimentos do caos são definidos pelo método CRD padrão do Kubernetes, sendo muito conveniente usar o método de operação de recursos do Kubernetes para criar, atualizar e excluir cenários experimentais, incluindo o uso de kubectl, client-go, etc., e também a ferramenta cli chaosblade descrita acima.
- chaosblade-exec-jvm: implementação de cenários experimentais de aplicações Java, usando a tecnologia Java Agent para montagem dinâmica, sem qualquer acesso, uso de custo zero. Também suporta desinstalação e recicla completamente os diversos recursos criados pelo Agent.
- chaosblade-exec-cplus: implementação de cenários experimentais de aplicações C++, usando tecnologia GDB para injetar cenários experimentais em nível de método e linha de código.
- chaosblade-box: possui capacidades de plataforma de engenharia do caos e de plataforma de teste de resiliência. Para mais informações sobre as capacidades da plataforma de teste de resiliência, consulte o branch main2.
Início Rápido
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.
Pré-requisitos
Antes de começar, certifique-se de ter:
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
Injetar Sua Primeira Falha (Estresse de CPU)
Execute uma falha de CPU em plena carga contra um Pod no namespace default: