Skip to main content
O módulo de Chaos Engineering permite validar a resiliência de workloads Kubernetes e a eficácia das remediações da plataforma AIOps. Diferente de ferramentas de chaos standalone, os experimentos aqui são integrados ao pipeline de AIOps — permitindo validar que uma remediação realmente funciona sob condições adversas.
Cada experimento é um CRD nativo do Kubernetes. Todos os controles de segurança são declarativos e auditáveis, garantindo que chaos experiments nunca afetem workloads críticos sem aprovação explícita.

Chaos Engineering no Contexto AIOps

Validação de Remediações

Após corrigir um incidente, re-injete a falha para confirmar que a remediação automática funciona.

Testes de Resiliência

Execute experimentos recorrentes para garantir que a plataforma detecta e responde a falhas conhecidas.

Game Days Automatizados

Agende experimentos via cron para simular game days regulares sem intervenção manual.

Baseline de Recovery

Meça tempos de recuperação reais para estabelecer SLOs e identificar gargalos.

Correlação Automática (GAP-04 fix, 2026-05-23)

Issues que disparam enquanto um ChaosExperiment está em estado Running (ou nos primeiros 2 minutos após Completed/Aborted — janela de recuperação) são automaticamente correlacionados com o experimento. O AnomalyReconciler consulta FindActiveChaosExperiment(target) ao criar o Issue e, quando encontra match no mesmo namespace+kind+name, aplica os labels:
Esses labels propagam para o PostMortem gerado e alteram o comportamento da plataforma:
Recomendação: configure suas NotificationPolicy com regras separadas para chaos drills (ex: canal Slack de chaos-drills só para ops) e filtre o label source=chaos-experiment nas regras de PagerDuty/email. A plataforma já suprime escalação automaticamente; isso é uma camada extra para evitar ruído em canais primários.

ChaosExperiment CRD

Especificação Completa

7 Tipos de Experimento

1. Pod Kill

Deleta pods aleatoriamente usando o algoritmo Fisher-Yates shuffle com crypto/rand para seleção verdadeiramente aleatória.
Pod kill usa GracePeriodSeconds: 0, simulando uma falha abrupta (ex: node crash). Para terminação graceful, use pod_failure.

2. Pod Failure

Deleção graceful de pods, respeitando o terminationGracePeriodSeconds configurado no PodSpec.

3. CPU Stress

Cria um pod stress-ng no mesmo node do pod alvo para simular contenção de CPU.
Pod de stress gerado:

4. Memory Stress

Cria um pod stress-ng que aloca memória no mesmo node do alvo.
Comando stress-ng gerado:

5. Network Delay

Simula latência de rede usando annotations nos pods alvo. O sidecar ou CNI plugin interpreta a annotation para injetar delay.
Annotation aplicada:

6. Network Loss

Simula perda de pacotes de rede via annotations.

7. Disk Stress

Cria um pod stress-ng que gera I/O intenso no disco do mesmo node.
Comando stress-ng gerado:

Resumo dos Tipos

Safety Checks

Os safety checks são a camada de proteção que impede que experimentos de chaos causem danos reais.

MinHealthyPods

Garante que um número mínimo de pods permaneça saudável durante o experimento.

MaxConcurrentExperiments

Previne chaos storms limitando o número de experimentos simultâneos no namespace.

AbortOnIssueDetected

Se a AIOps detectar uma nova issue não relacionada ao experimento durante a execução, o experimento é abortado imediatamente.

RequireApproval

Integra com o sistema de ApprovalRequest para exigir aprovação humana antes de executar o experimento.
Quando habilitado, o controller cria um ApprovalRequest CR e aguarda aprovação antes de prosseguir:

AllowedNamespaces / BlockedNamespaces

Lista branca de namespaces onde experimentos podem ser executados. Se definida, apenas estes namespaces são permitidos.
blockedNamespaces tem precedência sobre allowedNamespaces. Se um namespace aparece em ambas as listas, ele é bloqueado. Os namespaces kube-system e chatcli-system são sempre bloqueados, independente da configuração.

Verificação Pós-Experimento

VerifyRecovery

Após o experimento completar, o controller verifica se o deployment voltou ao estado saudável.

RecoveryTimeout

Tempo máximo de espera para verificação de recuperação. Se o deployment não voltar ao estado saudável dentro deste período, o experimento é marcado como Failed.

RunRemediationTest

Quando habilitado em conjunto com linkedIssueRef, o controller:
1

Re-injeta a falha

Executa o mesmo experimento novamente para recriar o cenário do incidente original.
2

Aguarda detecção

Espera que a plataforma AIOps detecte a anomalia automaticamente.
3

Verifica remediação

Confirma que a remediação automática foi disparada e resolveu o problema.
4

Registra resultado

Atualiza o ChaosExperiment.Status com o resultado da validação.

Máquina de Estados

DryRun Mode

O modo DryRun executa toda a lógica do experimento (safety checks, seleção de pods, geração de comandos) sem aplicar nenhuma mudança real no cluster.
Resultado de um DryRun:
Sempre execute um DryRun antes de configurar um experimento agendado. Isso válida que os safety checks estão corretos e que os alvos são os esperados.

Schedule (Experimentos Recorrentes)

O campo schedule aceita expressões cron padrão para execução recorrente:
Cada execução agendada cria um novo ChaosExperiment CR com sufixo de timestamp.

LinkedIssueRef

O campo linkedIssueRef conecta o experimento a um incidente específico, permitindo validar que a remediação aplicada realmente funciona.
Quando linkedIssueRef é definido, o controller:
  1. Busca o Issue CR e o RemediationPlan associado
  2. Registra a conexão no status do experimento
  3. Se runRemediationTest: true, válida que a AIOps detecta e remedia automaticamente
  4. Atualiza o Issue CR com o resultado da validação

Exemplos YAML Completos

Métricas

O módulo de chaos engineering expõe métricas Prometheus para observabilidade e tracking de resiliência.

Exemplo de Alertas

Boas Práticas

1

Comece com DryRun

Sempre execute um DryRun antes de experimentos reais para validar safety checks e seleção de alvos.
2

Staging Primeiro

Execute experimentos em staging antes de habilitar em ambientes de maior tier. Use allowedNamespaces para enforcement.
3

Safety Checks Conservadores

Configure minHealthyPods com margem. Se o deployment tem 5 réplicas e precisa de 3 para operar, configure minHealthyPods: 3.
4

Agende Game Days

Use schedule para experimentos recorrentes. Resiliência não é um teste único — é uma prática contínua.
5

Valide Remediações

Após corrigir um incidente, use linkedIssueRef + runRemediationTest para confirmar que a correção funciona sob falha.

Próximos Passos

Motor de Decisão

Entenda como os resultados de chaos influenciam o Pattern Store e a confiança do motor.

Federação Multi-Cluster

Execute chaos experiments em clusters específicos com políticas por tier.

Auditoria e Compliance

Todos os experimentos geram AuditEvents imutáveis para rastreabilidade completa.

AIOps Platform

Retorne à visão geral da plataforma AIOps.