
Un kit de experimentos de ingeniería del caos fácil de usar y potente. (Una herramienta de inyección de experimentos de caos sencilla, fácil de usar y potente, de código abierto de Alibaba)

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
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:
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:
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.
Antes de comenzar, asegúrate de tener:
kubectl cluster-info se ejecuta correctamente)default)blade está en tu PATH)Instala el operador con Helm:
helm install chaosblade-operator chaosblade-operator-<version>.tgz --namespace chaosblade --create-namespace
Verifica que el operador esté en ejecución:
kubectl get pods -n chaosblade
Ejecuta un fallo de carga completa de CPU contra un Pod en el namespace default:
blade create k8s pod-cpu fullload --cpu-percent 80 --kubeconfig ~/.kube/config --names <pod-name> --namespace default
Si la inyección tiene éxito, ChaosBlade devuelve un resultado JSON que contiene un uid de experimento. Guarda este uid para verificar el estado o destruir el experimento más tarde:
{"code":200,"success":true,"result":"<experiment-uid>"}
blade status <experiment-uid>
Recupera siempre después de tu simulacro para restaurar el objetivo a la normalidad:
blade destroy <experiment-uid>
¡Eso es todo! Has completado un ciclo completo de inyección-verificación-recuperación. Para explorar más escenarios, ejecuta blade create k8s -h o consulta Práctica de ingeniería del caos en entornos nativos de la nube.
Puedes descargar el último kit de herramientas chaosblade desde Releases, extraerlo y usarlo. Si deseas inyectar escenarios de fallos relacionados con Kubernetes, necesitas instalar chaosblade-operator. Para los documentos de uso detallados en chino, consulta chaosblade-help-zh-cn .
chaosblade admite métodos de invocación CLI y HTTP. Los comandos admitidos son los siguientes:
blade p jvm --process business en el host de destino. Si el attach se realiza correctamente, devuelve el uid para la consulta de estado o la revocación del agente.blade revoke UIDblade create [TARGET] [ACTION] [FLAGS]. Por ejemplo, si implementas un consumidor Dubbo que llama a la interfaz xxx.xxx.Service con un retraso de 3s, el comando ejecutado es blade create dubbo delay --consumer --time 3000 --Service xxx.xxx.Service; si la inyección es exitosa, devuelve el uid del experimento para la consulta de estado y la destrucción del experimento.blade destroy UIDblade status UID o blade status --type createUsa el comando blade help [COMMAND] o blade [COMMAND] -h para ver la ayuda
Descarga la imagen demo de chaosblade y experimenta el uso del kit de herramientas blade

Comando para descargar la imagen:
docker pull chaosbladeio/chaosblade-demo
Ejecuta el contenedor demo:
docker run -it --privileged chaosbladeio/chaosblade-demo
Después de entrar en el contenedor, puedes leer el archivo README.txt para implementar el experimento del caos. Disfrútalo.
El proyecto chaosblade-operator es una herramienta de inyección de experimentos del caos para plataformas nativas de la nube. Sigue el modelo de experimentos del caos para estandarizar el escenario experimental y define el experimento como recursos CRD de Kubernetes, mapeando los modelos experimentales a atributos de recursos de Kubernetes y combinando de manera muy amigable los modelos de experimentos del caos con el diseño declarativo de Kubernetes. Si bien se apoya en los modelos de experimentos del caos para desarrollar escenarios de manera conveniente, también puede integrar bien los conceptos de diseño de Kubernetes, ya sea a través de kubectl o escribiendo código para llamar directamente a la API de Kubernetes y crear, actualizar y eliminar experimentos del caos. El estado del recurso puede indicar claramente el estado de ejecución del experimento y estandarizar la inyección de fallos de Kubernetes. Además de usar los métodos anteriores para realizar experimentos, también puedes usar el método CLI de chaosblade para ejecutar escenarios experimentales de Kubernetes y consultar el estado del experimento de manera muy conveniente. Para obtener más detalles, lee el documento en chino: Práctica de ingeniería del caos en entornos nativos de la nube
Consulta BUILD.md para obtener los detalles.
Para informes de errores, preguntas y discusiones, envía GitHub Issues.
También puedes contactarnos a través de:
Damos la bienvenida a todas las contribuciones, incluso si es solo puntuación. Consulta los detalles de CONTRIBUTING. Para la escalera de promoción de los estudiantes que participan específicamente en la comunidad, consulta: (Contributor Ladder)
La intención original de nuestro proyecto de código abierto es reducir el umbral para que la ingeniería del caos se implemente en las empresas, por lo que valoramos mucho el uso del proyecto en las empresas. Damos la bienvenida a todos aquí: ISSUE. Después del registro, serás invitado a unirte al grupo de correo corporativo para discutir los problemas que encuentra la ingeniería del caos en la implementación en la empresa y compartir la experiencia de implementación.
Este proyecto existe gracias a todas las personas que contribuyen. [Contribuir].
Chaosblade está licenciado bajo la Licencia Apache, Versión 2.0. Consulta LICENSE para obtener el texto completo de la licencia.
blade server start -p 9526curl "http://xxxx:9526/chaosblade?cmd=create%20cpu%20fullload"