Chaos Engineering

Experimentos práticos

Tutorial executável de chaos: kill de containers e observação de recuperação.

Avançado 45 min 40 pontos Leitura 0%

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.