AutoChaos es una poderosa herramienta diseñada para inyectar caos en varios sistemas (clústeres de Kubernetes por ahora).
El propósito de AutoChaos es analizar y simular el caos en los sistemas, ayudando a las organizaciones a identificar posibles vulnerabilidades, cuellos de botella y puntos de falla. Al someter los sistemas a escenarios de caos controlado, las empresas pueden obtener información valiosa sobre su resiliencia y tomar decisiones informadas para mejorar.
AutoChaos utiliza LLM para inyectar caos controlado en los sistemas. Puede simular varios eventos caóticos, como picos repentinos de uso, fallas de hardware, interrupciones de la red y más. La herramienta mide la respuesta del sistema a estos eventos caóticos y proporciona análisis detallados y visualizaciones del comportamiento del sistema bajo estrés.
sudo apt update
sudo apt install python3.xx python3.xx-dev python3.xx-venv
1 - Clonar este repositorio
git clone https://github.com/nervousapps/AutoChaos.git
2 - Vaya al directorio del repositorio
cd AutoChaos
3 - Se recomienda un venv de Python, para crear uno, en tu terminal:
python3.xx -m venv autochaos
Y habilitarlo
source ./autochaos/bin/activate
4 - Instale el paquete AutoChaos y sus dependencias ejecutando:
pip install -r ./python/requirements.txt
pip install ./python --no-deps
nano ./openai_key.txt
if local_ai_url :
# Change api url to LLM local tool one
openai . base_url = local_ai_url
openai . api_key = "sx-xxx"
else :
# Initialize openai api_key
with open ( "./openai_key.txt" , "r" ) as file :
openai . api_key = ( file . read ()). strip ()
# Systems
k8s_system = K8sSystem ( namespace )
locust_system = LocustSystem ()
# Load system description
initial_state = {
"system_resources" : k8s_system . describe (),
"api_routes" : api_routes ,
"availability_route" : availability_route ,
}
# It is time to do chaos !
chaos = Chaos ([ k8s_system , locust_system ], initial_state )
chaos . chaos ( objective = 10 )
chaos . report ()
# Write the result file
with open (
os . path . join ( f"autochaos.json" ), "w"
) as file :
file . write ( json . dumps ( chaos . messages , indent = 4 ))
nombre del entorno | descripción | valor predeterminado |
---|---|---|
K8S_CTX | contexto K8 | por defecto |
ARCHIVO CLAVE | Ruta a openai keyfile.txt | ./openai_key.txt |
ESPACIO DE NOMBRES | Espacio de nombres en el que se aplicará el caos. | todo |
DISPONIBILIDAD_RUTA | Ruta para comprobar la disponibilidad del sistema. | Ninguno |
API_RUTAS | Las rutas en las que el sistema Locust realizará la prueba de carga deben tener el formato "/foo/hostname /bar/hostname" | "" |
LOCAL_AI_URL | URL de una instancia local de una API compatible con el paquete OpenAi Python | "" |
MODELO_NOMBRE | Nombre del modelo a utilizar | gpt-3.5-turbo-16k |
NB_ITERACIÓN | Número de iteraciones del caos | 5 |
Al principio, las acciones se definen en el indicador del sistema (chaos_engineer.txt) como en el siguiente ejemplo:
- DESCRIBE : this action must be used to see the system state during chaos, no arguments required, use it after chaos has begun
- KILL : this action must be used to kill a process, a task, a pod, a node of anything in the system, you have to indicate in this order: the type, the name and the namespace of resource to kill (for example KILL pod kop-123 namespace_1), no talking, no comments
LLM (actuando como ingeniero del caos) elegirá una de las acciones definidas y pedirá hacerlo con los argumentos correspondientes, una respuesta puede ser, por ejemplo:
KILL pod kop-123 namespace_1
Los controladores para acciones definidas deben implementarse en clases de sistemas que heredan de auto_chaos.chaos.BaseSystem. Esta clase BaseSytem define un método do_action que analizará la respuesta del ingeniero del caos y llamará al controlador correspondiente, si lo hay; de lo contrario, llamará a un controlador predeterminado.
La herramienta AutoChaos proporciona resultados precisos y detallados sobre el comportamiento del sistema durante eventos de caos. El análisis incluye métricas como el tiempo de respuesta, tasas de error, utilización de recursos y estabilidad del sistema. También se generan visualizaciones, como cuadros y gráficos, para ayudar a visualizar los datos e identificar patrones o anomalías. Al analizar los resultados, las empresas pueden identificar posibles debilidades y tomar medidas proactivas para mejorar la resiliencia y el rendimiento del sistema.
AutoChaos es una poderosa herramienta para analizar el caos en los sistemas, brindando a las empresas información valiosa sobre su resiliencia y vulnerabilidades. Al simular eventos de caos y analizar la respuesta del sistema, las organizaciones pueden tomar decisiones informadas y tomar medidas proactivas para mejorar la solidez de sus sistemas. Instale AutoChaos hoy y obtenga una comprensión más profunda del comportamiento de sus sistemas bajo estrés.
Este no es un producto oficial de OpenAI. Este es un proyecto personal y no está afiliado a OpenAI de ninguna manera.
NEGRO
Licencia MIT