Problema
As verificações de infraestrutura e compliance consumiam cerca de duas horas de trabalho manual todos os dias.
Arquitetura
Dependências (texto)
- functions -> registry [runs daily]
- functions -> renewal [runs daily]
- registry -> backups
- registry -> azure
- registry -> virt
- registry -> identity
- registry -> servers
- registry -> confluence [publishes evidence]
- registry -> jira [exceptions]
- renewal -> azure [finds expiring secrets]
- renewal -> jira [review ticket]
- renewal -> teams [summary]
- copilot -> registry [reads results]
Python em Azure Functions, com execuções por timer e rotas HTTP para preview e debug.
O que faz
- Executa mais de 17 controles entre ambientes: backups, anomalias de custo e certificados do Azure, virtualização, identidade e acesso, manutenção de banco de dados e saúde dos servidores.
- Cada verificação tem a sua própria janela de tempo e uma regra explícita para saber se "sem dados" significa OK ou alerta.
- Publica o relatório de evidências do dia no Confluence toda manhã.
- Uma segunda execução diária encontra secrets de aplicações que expiram em até 14 dias, abre um ticket de revisão no Jira e envia um resumo para o Teams. Duplicatas são ignoradas, e o alerta se repete até o ticket fechar.
- Os dados também alimentam um agente Microsoft Copilot que eu construí, que resume os resultados e aponta o trabalho que o time precisa fazer.
Decisões
- Dry-run por padrão. Nada executa sem uma confirmação explícita.
- Idempotente e deduplicado em todo lugar, então reexecutar é seguro.
- Modular. Um registro central de verificações e um cliente separado por integração.
Resultado
- Cerca de 2 horas diárias de verificações manuais substituídas.
- Cerca de 10.000 linhas de Python, desenhadas e construídas sozinho.