AutoChaos é uma ferramenta poderosa projetada para injetar caos em vários sistemas (clusters Kubernetes por enquanto).
O objetivo do AutoChaos é analisar e simular o caos nos sistemas, ajudando as organizações a identificar potenciais vulnerabilidades, gargalos e pontos de falha. Ao submeter os sistemas a cenários de caos controlado, as empresas podem obter informações valiosas sobre a sua resiliência e tomar decisões informadas para melhorias.
AutoChaos utiliza LLM para injetar caos controlado nos sistemas. Ele pode simular vários eventos caóticos, como picos repentinos de uso, falhas de hardware, interrupções de rede e muito mais. A ferramenta mede a resposta do sistema a esses eventos caóticos e fornece análises detalhadas e visualizações do comportamento do sistema sob estresse.
sudo apt update
sudo apt install python3.xx python3.xx-dev python3.xx-venv
1 - Clone este repositório
git clone https://github.com/nervousapps/AutoChaos.git
2 - Vá no diretório repo
cd AutoChaos
3 - Recomenda-se um python venv, para criar um, em seu terminal:
python3.xx -m venv autochaos
E habilite-o
source ./autochaos/bin/activate
4 - Instale o pacote AutoChaos e dependências executando:
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 ))
nome do ambiente | descrição | valor padrão |
---|---|---|
K8S_CTX | Contexto K8s | padrão |
ARQUIVO-CHAVE | Caminho para openai keyfile.txt | ./openai_key.txt |
NAMESPACE | Namespace no qual o caos será aplicado | todos |
AVAILABILITY_ROUTE | Rota para verificar a disponibilidade do sistema | Nenhum |
API_ROUTES | As rotas nas quais o sistema locust fará o teste de carga devem ter o formato "/foo/hostname /bar/hostname" | "" |
LOCAL_AI_URL | URL de uma instância local de uma API compatível com o pacote openAi python | "" |
MODEL_NAME | Nome do modelo a ser usado | gpt-3.5-turbo-16k |
NB_ITERATION | Número de iteração do caos | 5 |
A princípio, as ações são definidas no prompt do sistema (chaos_engineer.txt) como no exemplo a seguir:
- 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
O LLM (atuando como engenheiro do caos) escolherá uma das ações definidas e pedirá para realizá-la com os argumentos correspondentes, uma resposta pode ser, por exemplo:
KILL pod kop-123 namespace_1
Os manipuladores para ações definidas devem ser implementados na classe de sistemas que herda de auto_chaos.chaos.BaseSystem. Esta classe BaseSytem define um método do_action que analisará a resposta do engenheiro de caos e chamará o manipulador correspondente, se houver, caso contrário, chamará um manipulador padrão.
A ferramenta AutoChaos fornece resultados precisos e detalhados sobre o comportamento do sistema durante eventos de caos. A análise inclui métricas como tempo de resposta, taxas de erro, utilização de recursos e estabilidade do sistema. Visualizações, como tabelas e gráficos, também são geradas para ajudar a visualizar os dados e identificar padrões ou anomalias. Ao analisar os resultados, as empresas podem identificar potenciais fraquezas e tomar medidas proativas para melhorar a resiliência e o desempenho do sistema.
AutoChaos é uma ferramenta poderosa para analisar o caos em sistemas, fornecendo às empresas informações valiosas sobre sua resiliência e vulnerabilidades. Ao simular eventos de caos e analisar a resposta do sistema, as organizações podem tomar decisões informadas e tomar medidas proativas para melhorar a robustez dos seus sistemas. Instale o AutoChaos hoje e obtenha uma compreensão mais profunda do comportamento dos seus sistemas sob estresse.
Este não é um produto oficial da OpenAI. Este é um projeto pessoal e não é afiliado de forma alguma à OpenAI.
PRETO
Licença MIT