IA para DevOps e SRE
Infraestrutura é onde um erro de IA custa mais caro: um apply errado apaga um banco, um
rollback errado derruba o checkout. Este módulo aplica tudo o que veio antes (saídas estruturadas,
agentes, aprovação humana, auditoria) ao trabalho de plataforma, sempre com o mesmo princípio:
a IA investiga e propõe; código e pessoas validam e autorizam.
Ao final do módulo você vai
- Usar IA para gerar infraestrutura com portões de validação e políticas como código.
- Construir um agente que investiga incidentes em Kubernetes com método.
- Detectar anomalias de forma robusta e montar linhas do tempo de incidentes.
- Operar ChatOps com RBAC, aprovação e auditoria.
- Desenhar auto-remediação que não piora o incidente.
cd o-arco/curso-ia/codigo/modulo-10
python python/01_politicas_iac.py
python python/02_anomalias_e_timeline.py
cd projeto && npm install && npm test # instala também o agente do Módulo 6
10.1 IA na infraestrutura: o que muda
- Raio de impacto: uma resposta errada num chat é um incômodo; um comando errado em produção é um incidente. Classifique cada ação por risco (Módulo 6) e trate ações de escrita como deploys.
- Leitura é menos arriscada que escrita, mas não é isenta de risco: a maior parte do valor está em investigar (ler logs, métricas, eventos, histórico), e por isso comece só com leitura. Mas ler também tem riscos: logs e variáveis de ambiente podem conter segredos, que entram no contexto do modelo e podem sair numa resposta; e um log, um ticket ou uma página pode trazer instruções maliciosas (injeção indireta, Módulo 12). Leitura com credenciais restritas, segredos mascarados na origem e o conteúdo lido tratado como dado, não como ordem.
- Validação determinística depois da IA:
terraform validateeplan, dry-run do Kubernetes, políticas, testes. O modelo propõe; as ferramentas da sua plataforma verificam. - Credenciais mínimas: a conta de serviço do agente só lê, salvo exceções aprovadas e auditadas.
- Alucinação de flags e APIs: modelos inventam opções de linha de comando e campos de manifest com confiança. Validação de schema e dry-run pegam isso.
10.2 Copilot de IaC com validação e policy-as-code
validate + plan→Políticas (OPA, Sentinel, Checkov)→PR com revisão humana→apply pelo CILAB 10.2 — O portão de políticas
python python/01_politicas_iac.py
✓ create aws_s3_bucket.relatorios
[alerta] tags obrigatórias ausentes: centro_de_custo
✗ create aws_s3_bucket_public_access_block.relatorios
[bloqueia] bucket com acesso público liberado
✗ create aws_instance.job_noturno
[bloqueia] tipo de instância p4d.24xlarge fora da lista aprovada (custo)
✗ create aws_security_group.job
[bloqueia] porta 22 aberta para a internet inteira
✗ delete aws_db_instance.legado
[bloqueia] remove um recurso de DADOS (pedidos-legado): exige aprovação explícita e backup verificado
4 violações bloqueantes.
O "copilot" recebeu um pedido inocente ("um bucket para relatórios e uma VM para o job noturno") e devolveu um bucket público, uma instância de GPU caríssima, SSH aberto para o mundo e, de quebra, a remoção de um banco. Nenhum desses problemas passa pelo portão. As mensagens das políticas podem voltar ao LLM para ele corrigir o plano, num ciclo de validar e corrigir (Módulo 2).
plan e das políticas. A detecção de drift (diferença entre código e realidade) vira um PR também.Quiz rápido
Um copilot gera um plano Terraform que remove um banco de dados. O que deve acontecer?
Políticas determinísticas no pipeline barram ações destrutivas, independentemente de quem ou o quê gerou o plano.
10.3 Agentes para Kubernetes e GitOps
- Gerar e revisar manifests: LLMs escrevem YAML razoável; valide com
kubectl apply --dry-run=server, schemas e políticas (requests e limits obrigatórios, semlatest, sem privilégios). - Autoscaling: a IA pode sugerir parâmetros de HPA/VPA a partir do histórico de uso, mas a mudança passa pelo mesmo fluxo de PR.
- Rollouts progressivos (canário, blue-green): a IA ajuda a ler as métricas da análise de canário e a explicar por que um rollout foi abortado.
- GitOps (Argo CD, Flux): o estado desejado vive no Git. Um agente bem projetado propõe commits, não altera o cluster por fora, o que mantém auditoria e rollback pelo próprio Git.
10.4 Troubleshooting com ReAct
O agente do projeto segue o método de um SRE experiente, escrito no prompt de sistema:
- Estado dos pods e eventos; depois logs e métricas.
- Procurar a mudança mais recente: a maioria dos incidentes começa com um deploy, uma configuração ou um pico de tráfego.
- Registrar o diagnóstico estruturado com evidências antes de agir (o código recusa ação sem diagnóstico).
- Preferir a correção mais segura e reversível.
| Cenário | Sintoma | Evidência-chave | Ação correta |
|---|---|---|---|
crashloop-config | CrashLoopBackOff, 99% de erro | Log "DATABASE_URL não definida" logo após o deploy da revisão 42 | Rollback para a 41 |
oom | OOMKilled, latência alta | Memória em 100% com tráfego 4× maior; cache em memória crescendo | Aumentar limite de memória (e revisar o cache) |
imagem-inexistente | ImagePullBackOff | "manifest unknown" para a tag 1.8.3-rc | Rollback para a 8 (e corrigir a tag no CI) |
npm run investigar -- crashloop-config
10.5 AIOps: métricas, logs e anomalias
- Linguagem natural → consulta: "erro 5xx do checkout na última hora por versão" → PromQL ou LogQL. Útil para quem não domina a linguagem; mostre sempre a consulta gerada e rode em modo só leitura.
- Resumo de logs: agrupar milhares de linhas em padrões e mandar ao LLM só os padrões e exemplos, não o log inteiro (custo e contexto).
- Detecção de anomalias: estatística simples (z-score, sazonalidade) e modelos de série temporal resolvem a maioria dos casos; o LLM entra para explicar e correlacionar, não para detectar.
LAB 10.5 — Anomalias e linha do tempo
python python/02_anomalias_e_timeline.py
Detector INGÊNUO (janela inclui os próprios pontos anômalos):
2 minutos anômalos: 10:34, 10:35
Detector ROBUSTO (anomalias ficam fora da referência):
10 minutos anômalos: 10:34, 10:35, 10:36, ... 10:43
LINHA DO TEMPO
10:33 deploy checkout revisão 42 (migração de ConfigMap) iniciada
10:34 anomalia latencia_p95_ms começou a subir: 983 ms (z = 56)
10:34 anomalia taxa_erro_pct começou a subir: 11.17% (z = 63)
10:35 alerta taxa de erro 5xx > 5% em checkout
10:40 deploy rollback de checkout para a revisão 41
10:44 alerta alerta resolvido
O detector ingênuo "se acostuma" com o incidente: depois que os primeiros pontos anômalos entram na janela de referência, o desvio-padrão cresce e o resto do incidente parece normal. Um detalhe de implementação que muda a resposta, e que só aparece quando você testa com um incidente de verdade.
Quiz rápido
Por que um detector de anomalias com média móvel simples pode falhar num incidente longo?
Foi o que o lab mostrou: a versão robusta usa uma linha de base que não absorve o período anômalo.
10.6 ChatOps com RBAC, aprovação e auditoria
- Comandos explícitos (
/investigar,/rollback), não "faça o que achar melhor". - Aprovação por quem tem o papel certo (RBAC): no projeto, só
ana.sreebruno.oncallaprovam ações em produção; qualquer outro nome é recusado. - Mostrar o impacto antes de aprovar: o diff da mudança, a revisão de destino, quantos pods serão reiniciados.
- Auditoria completa: cada passo do agente e cada aprovação (quem, quando, o quê) vão para
auditoria-chatops.jsonl. - Disjuntores (circuit breakers): limite de ações automáticas por hora; se o agente propõe três rollbacks seguidos, algo está errado, então pare e chame uma pessoa.
10.7 RAG de runbooks e post-mortem automático
- Runbooks como fonte do agente: indexe runbooks, READMEs e post-mortems antigos com o RAG do Módulo 4 e exponha como ferramenta (ou servidor MCP, Módulo 5). O agente passa a seguir o procedimento da sua empresa.
- Linha do tempo automática: junte deploys, alertas, anomalias e mensagens do canal (lab 10.5).
- Rascunho de post-mortem sem culpados: o LLM escreve o rascunho a partir da linha do tempo e da trajetória do agente; as pessoas revisam, especialmente as causas contribuintes e as ações.
- Lições viram prevenção: cada post-mortem gera itens concretos (teste no CI, alerta mais cedo, política nova) e, de preferência, um caso novo no eval do agente.
10.8 Auto-remediação segura e FinOps
Auto-remediação
- Automatize primeiro ações reversíveis e bem compreendidas (reiniciar um pod, escalar réplicas dentro de limites), com dry-run e validação depois.
- Ações de alto impacto (rollback em produção, failover de banco) continuam com uma pessoa no circuito.
- Limites e disjuntores: o remediador nunca pode ser a causa do próximo incidente.
FinOps com IA
- Estimativa de custo no PR (ferramentas como Infracost) e explicação em linguagem natural do que encarece.
- Rightsizing a partir do histórico de uso; detecção de recursos ociosos ("zumbis").
- Previsão de gasto e alerta de desvio. O mesmo raciocínio vale para o custo dos próprios LLMs (Módulo 9).
Projeto do módulo: bot de ChatOps para incidentes
cd projeto && npm install && npm test # 7 testes, offline
npm run investigar -- oom # precisa de ANTHROPIC_API_KEY
| Arquivo | Responsabilidade |
|---|---|
cenarios/*.json | Três incidentes realistas: pods, eventos, logs, métricas, histórico de deploys e a ação correta |
src/cluster.ts | Cluster simulado com erros úteis para o agente se corrigir |
src/sre.ts | Agente (do Módulo 6) com 4 ferramentas de leitura, diagnóstico estruturado obrigatório e 2 ações com aprovação |
src/chatops.ts | Simulação de canal com RBAC de aprovadores e auditoria |
Entregáveis
- Rode os três cenários com a API. O agente chegou à causa certa? Quantos passos e quanto custou?
- Crie dois cenários novos (por exemplo, certificado TLS expirado; dependência externa lenta) com testes.
- Transforme os cenários num eval de trajetória (Módulo 6): a ação correta foi proposta? Alguma ação foi executada sem diagnóstico?
- Adicione uma ferramenta de busca em runbooks usando o RAG do Módulo 4.
- Gere o rascunho de post-mortem a partir da trajetória e do diagnóstico.
Critérios de avaliação
| Critério | Peso |
|---|---|
| Resultados dos três cenários, analisados | 20% |
| Cenários novos com testes | 20% |
| Eval de trajetória | 25% |
| Runbooks via RAG | 20% |
| Post-mortem gerado e revisado | 15% |
Recursos para aprofundar
- Open Policy Agent e Conftest · políticas como código
- Checkov · varredura de IaC
- Postmortem culture (Google SRE) · post-mortems sem culpados
- Argo CD · GitOps
- Infracost · custo de infraestrutura no PR