Chaos Engineering
Experimentos práticos
Tutorial executável de chaos: kill de containers e observação de recuperação.
Nesta aula você vai
- Executar experimentos de caos reproduzíveis em Docker Compose
- Medir efeito de falha no fluxo transacional
- Coletar evidência com métricas, logs e traces
Experimentos práticos
Nesta aula você vai executar experimentos de caos reais no ambiente local, incluindo kill de containers.
Cenário base
Suba o ambiente:
make up
curl -X POST http://localhost:8080/customers -H "Content-Type: application/json" -d '{"name":"Ana","email":"ana@acme.com"}'
Experimento 1 - Kill do payment-service
Hipótese
O fluxo de criação de cliente continua; pagamentos acumulam e são processados após restart.
Execução
docker compose kill payment-service
sleep 30
docker compose up -d payment-service
Validação
docker compose logs payment-service | rg "order.created|payment.created"
Experimento 2 - Kill do kafka
Hipótese
Publicadores devem falhar com retry controlado e não perder rastreabilidade.
Execução
docker compose kill kafka
sleep 20
docker compose up -d kafka
Validação
docker compose logs order-service | rg "retry|broker unavailable"
docker compose logs payment-service | rg "reconnected|consumer resumed"
Experimento 3 - Kill do redis
Hipótese
Serviços devem degradar para caminho sem cache e manter operação principal.
Execução
docker compose kill redis
sleep 20
docker compose up -d redis
Evidências mínimas
- Screenshot do dashboard de erro/latência.
- Trace no Jaeger mostrando retentativas.
- Log com timestamps de queda e recuperação.
Resumo
Você executou caos na prática com kill de containers (payment-service, kafka, redis) e validou recuperação observável do sistema.