
Kit de Chaos Engineering e Orquestração para Desenvolvedores

Comunidade • Instalação • Tutoriais • Referência • ChangeLog
O Chaos Toolkit, ou como amamos chamá-lo “ctk”, é uma ferramenta simples orientada a CLI que ajuda você a escrever e executar experimentos de engenharia do caos. Ele suporta qualquer plataforma de destino que você possa imaginar por meio de extensões existentes ou daquelas que você escreve conforme a necessidade.
O Chaos Toolkit é versátil e funciona muito bem em cenários onde outras ferramentas de engenharia do caos podem não se encaixar: ambientes de nuvem, datacenters, CI/CD, etc.
Desde que você tenha Python 3.12+ instalado, a instalação recomendada usa
uv:
$ uv tool install chaostoolkit
Você também pode instalá-lo com pip, como antes:
$ pip install -U chaostoolkit
Depois de instalar o Chaos Toolkit, você pode usá-lo por meio de sua simples ferramenta de linha de comando.
Executar um experimento é tão simples quanto:
$ chaos run experiment.json
Um experimento pode declarar os pacotes Python de que precisa. Por exemplo:
runtime:
python:
version: "3.14"
dependencies:
- chaostoolkit-kubernetes>=0.38
Quando chaos run ou chaos validate vê essa declaração, ele pede ao uv
para preparar as dependências e executa o comando nesse ambiente Python. A
instalação atual do Chaos Toolkit e seu ambiente não são modificados.
Definir isolated como true cria um ambiente de execução isolado; o padrão
é false. Definir version seleciona a versão do Python usada pelo uv e
ativa automaticamente o isolamento.
Esse recurso exige que o executável uv esteja disponível no PATH. Sem uma
declaração de runtime.python.dependencies, o Chaos Toolkit se comporta
exatamente como antes e espera que as extensões já estejam instaladas.
Para fontes remotas, os controles necessários para buscar ou carregar o experimento já devem estar instalados com o Chaos Toolkit. Um experimento remoto pode ser buscado uma vez para descobrir suas dependências e novamente dentro do ambiente de execução preparado; portanto, documentos de experimento remoto devem ser imutáveis ou versionados.
A missão do Chaos Toolkit é fornecer uma API aberta para engenharia do caos em todas as suas formas. Como tal, incentivamos e convidamos você a participar do nosso time aberto da comunidade no Slack para discutir e compartilhar seus experimentos e necessidades com a comunidade. Você também pode usar o StackOverflow para fazer qualquer pergunta sobre o uso do Chaos Toolkit ou da engenharia do caos.
Se você preferir não usar o Slack, também aceitamos a abertura de issues no GitHub neste repositório para quaisquer perguntas, solicitações ou discussões sobre o Chaos Toolkit.
Por fim, você sempre pode enviar um e-mail para [email protected] com qualquer dúvida.
Contribuidores são bem-vindos a este projeto, pois este é um esforço de código aberto que busca discussões e melhoria contínua.
Do ponto de vista do código, se você deseja contribuir, precisará usar um ambiente Python 3.12+. Por favor, faça um fork deste projeto, escreva testes unitários para cobrir as mudanças propostas, implemente as mudanças, garanta que elas atendam aos padrões de formatação definidos pelo ruff, adicione uma entrada em CHANGELOG.md e, em seguida, abra um PR no repositório para revisão.
O projeto é gerenciado pelo PDM, então instale-o e você poderá executar os seguintes comandos:
$ pdm install
$ pdm run test
$ pdm run format
$ pdm run lint
Os projetos do Chaos Toolkit exigem que todos os contribuidores assinem um Developer Certificate of Origin em cada commit que desejam mesclar no branch master do repositório. Por favor, certifique-se de que você pode cumprir as regras do DCO antes de enviar um PR.