
Chaosblade: un kit de ingeniería del caos fácil de usar y potente

中文版 README
Wiki: DeepWiki
🔥🔥🔥 ACTUALIZACIÓN IMPORTANTE: Lanzamiento de Chaosblade Agent - Blade AI

Blade AI actúa como la capa de agente inteligente dentro del ecosistema ChaosBlade: en el nivel fundamental, invoca a ChaosBlade para ejecutar la inyección de fallos; en el nivel superior, incorpora capacidades de orquestación como comprensión de intenciones, auditoría de seguridad, verificación de efectos, recuperación segura y generación de informes estructurados, transformando así los simulacros de fallos de un proceso de "escribir comandos manualmente" a uno completado mediante "interacción conversacional".
Para obtener información detallada, consulta: Blade AI README
Introducción
ChaosBlade es una herramienta de inyección de experimentos de código abierto de Alibaba que sigue los principios de la ingeniería del caos y los modelos de experimentos del caos para ayudar a las empresas a mejorar la tolerancia a fallos de los sistemas distribuidos y garantizar la continuidad del negocio durante el proceso de migración de las empresas a la nube o a los sistemas nativos de la nube.
Chaosblade es un proyecto de código abierto interno de MonkeyKing. Se basa en casi diez años de pruebas de fallos y prácticas de simulacros de Alibaba, y combina las mejores ideas y prácticas de los negocios del Grupo.
ChaosBlade no solo es fácil de usar, sino que también admite ricos escenarios experimentales. Los escenarios incluyen:
- Recursos básicos: como CPU, memoria, red, disco, procesos y otros escenarios experimentales;
- Aplicaciones Java: como bases de datos, cachés, mensajes, la propia JVM, microservicios, etc. También puedes especificar cualquier método de clase para inyectar diversos escenarios experimentales complejos;
- Aplicaciones C ++: como especificar métodos arbitrarios o líneas de código experimentales para inyectar retrasos, alterar variables y valores de retorno;
- Contenedores: como matar el contenedor, la CPU en el contenedor, memoria, red, disco, procesos y otros escenarios experimentales;
- Plataformas nativas de la nube: por ejemplo, escenarios experimentales de CPU, memoria, red, disco y procesos en nodos de la plataforma Kubernetes, escenarios experimentales de red de Pod y del propio Pod, como matar Pods, y escenarios experimentales de contenedores, como el escenario experimental de contenedor Docker mencionado anteriormente;
Encapsular los escenarios por dominio en proyectos individuales no solo estandariza los escenarios del dominio, sino que también facilita la expansión horizontal y vertical de los escenarios. Siguiendo el modelo de experimentos del caos, se puede llamar a la CLI de chaosblade de manera uniforme. Los elementos incluidos actualmente son:
- chaosblade: herramienta de gestión de experimentos del caos, que incluye comandos para crear experimentos, destruir experimentos, consultar experimentos, preparar entornos experimentales y cancelar entornos experimentales. Es la herramienta de ejecución de experimentos del caos. Los métodos de ejecución incluyen CLI y HTTP. Proporciona comandos completos, escenarios experimentales y descripciones de los parámetros de los escenarios, y la operación es simple y clara.
- chaosblade-spec-go: definición en lenguaje Golang del modelo de experimentos del caos. Los escenarios implementados con el lenguaje Golang son fáciles de implementar basándose en esta especificación.
- chaosblade-exec-os: implementación de escenarios experimentales de recursos básicos.
- chaosblade-exec-docker: implementación de escenarios experimentales de contenedores Docker, estandarizada mediante la llamada a la API de Docker.
- chaosblade-exec-cri: implementación de escenarios experimentales de contenedores, estandarizada mediante la llamada a la CRI.
- chaosblade-operator: implementación de escenarios experimentales de la plataforma Kubernetes. Los experimentos del caos se definen mediante el método estándar CRD de Kubernetes; es muy conveniente utilizar el método de operación de recursos de Kubernetes para crear, actualizar y eliminar escenarios experimentales, incluido el uso de kubectl, client-go, etc., y también el uso de la herramienta CLI chaosblade descrita anteriormente.
- chaosblade-exec-jvm: implementación de escenarios experimentales de aplicaciones Java. Utiliza la tecnología Java Agent para montarse dinámicamente, sin ninguna intrusión y con un uso de costo cero. También admite la desinstalación y recicla por completo los diversos recursos creados por el Agent.
- chaosblade-exec-cplus: implementación de escenarios experimentales de aplicaciones C ++. Utiliza la tecnología GDB para implementar la inyección de escenarios experimentales a nivel de método y de línea de código.
- chaosblade-box: posee capacidades de plataforma de ingeniería del caos y de plataforma de pruebas de resiliencia. Para obtener más información sobre las capacidades de la plataforma de pruebas de resiliencia, consulta la rama main2.
Inicio rápido
Esta guía te ayuda a ejecutar tu primera inyección de fallos en Kubernetes en menos de 5 minutos usando ChaosBlade. Inyectaremos un fallo de estrés de CPU en un Pod como ejemplo mínimo.
Prerrequisitos
Antes de comenzar, asegúrate de tener:
Instala el operador con Helm: