◈ TRIADIC.LIFE / Engenharia de IA / Módulo 10 0/10 aulas
Módulo 10 · 32h estimadas

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.

8 aulas2 labs + bot de ChatOpsCluster simulado, roda offlinePré-requisito: Módulo 6

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

Leitura · 1h
  • 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 validate e plan, 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

Leitura + lab · 4h
Pedido em linguagem natural→LLM gera Terraform/Helm→validate + plan→Políticas (OPA, Sentinel, Checkov)→PR com revisão humana→apply pelo CI

LAB 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).

Fluxo PR-firstA IA nunca aplica: ela abre um pull request com o código e o resultado do 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

Leitura · 3h
  • 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, sem latest, 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

Leitura + prática · 5h

O agente do projeto segue o método de um SRE experiente, escrito no prompt de sistema:

  1. Estado dos pods e eventos; depois logs e métricas.
  2. Procurar a mudança mais recente: a maioria dos incidentes começa com um deploy, uma configuração ou um pico de tráfego.
  3. Registrar o diagnóstico estruturado com evidências antes de agir (o código recusa ação sem diagnóstico).
  4. Preferir a correção mais segura e reversível.
CenárioSintomaEvidência-chaveAção correta
crashloop-configCrashLoopBackOff, 99% de erroLog "DATABASE_URL não definida" logo após o deploy da revisão 42Rollback para a 41
oomOOMKilled, latência altaMemória em 100% com tráfego 4× maior; cache em memória crescendoAumentar limite de memória (e revisar o cache)
imagem-inexistenteImagePullBackOff"manifest unknown" para a tag 1.8.3-rcRollback para a 8 (e corrigir a tag no CI)
npm run investigar -- crashloop-config

10.5 AIOps: métricas, logs e anomalias

Leitura + lab · 4h
  • 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

Leitura + prática · 3h
  • 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.sre e bruno.oncall aprovam 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

Leitura · 2h
  • 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

Leitura · 3h

Auto-remediação

Alerta→Verificação (é real?)→Mitigação (playbook conhecido, dry-run)→Validação (métricas voltaram?)→Notificaçã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

Projeto · 10h · TypeScript
cd projeto && npm install && npm test       # 7 testes, offline
npm run investigar -- oom                     # precisa de ANTHROPIC_API_KEY
ArquivoResponsabilidade
cenarios/*.jsonTrês incidentes realistas: pods, eventos, logs, métricas, histórico de deploys e a ação correta
src/cluster.tsCluster simulado com erros úteis para o agente se corrigir
src/sre.tsAgente (do Módulo 6) com 4 ferramentas de leitura, diagnóstico estruturado obrigatório e 2 ações com aprovação
src/chatops.tsSimulação de canal com RBAC de aprovadores e auditoria

Entregáveis

  1. Rode os três cenários com a API. O agente chegou à causa certa? Quantos passos e quanto custou?
  2. Crie dois cenários novos (por exemplo, certificado TLS expirado; dependência externa lenta) com testes.
  3. 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?
  4. Adicione uma ferramenta de busca em runbooks usando o RAG do Módulo 4.
  5. Gere o rascunho de post-mortem a partir da trajetória e do diagnóstico.

Critérios de avaliação

CritérioPeso
Resultados dos três cenários, analisados20%
Cenários novos com testes20%
Eval de trajetória25%
Runbooks via RAG20%
Post-mortem gerado e revisado15%

Recursos para aprofundar

Todos gratuitos