Azure Deployment Stacks em GA: O Fim dos Recursos Órfãos na Nuvem
No gerenciamento de infraestrutura como código (IaC), um dos maiores desafios operacionais é lidar com "recursos órfãos" — recursos que foram provisionados em deploys passados, mas que acabaram removidos dos arquivos de configuração locais. A Microsoft resolveu esse problema promovendo oficialmente os Azure Deployment Stacks para Disponibilidade Geral (GA). A nova ferramenta de governança atua diretamente no plano de controle do Azure Resource Manager (ARM), oferecendo controle completo do ciclo de vida e exclusão coordenada de recursos de nuvem de forma declarativa.
Até hoje, quando você removia um recurso de um arquivo Bicep ou modelo ARM e executava o deploy padrão, o Azure simplesmente ignorava a ausência do recurso no modelo, mantendo-o rodando e gerando custos na assinatura (a menos que usasse o arriscado modo Complete). Com os Deployment Stacks, o ciclo de vida do recurso é atrelado diretamente ao stack de deploy correspondente, permitindo rastrear e excluir recursos de forma limpa.
⚡ Destaques Rápidos
- Limpeza Automática: Opção de deletar ou desvincular recursos que foram retirados do modelo Bicep.
- Proteção contra Deleção: Bloqueie qualquer alteração ou exclusão manual em recursos gerenciados por stacks.
- Escopo Amplo: Funciona a nível de Resource Group, Subscription ou Management Group.
⟩_ Ciclos de Vida e Proteção contra Desvios
Diferente de uma implantação ARM tradicional que executa de forma transiente, o Deployment Stack persiste no Azure como um recurso de gerenciamento contínuo. Ao criar um stack, você pode passar o parâmetro --action-on-unmanage para definir o que o Azure deve fazer com recursos órfãos:
Delete: Exclui permanentemente o recurso órfão do Azure.Detach: Desvincula o recurso do ciclo de vida do stack, mas o mantém ativo e intocado no Azure.
Além disso, os Deployment Stacks introduzem o controle de "Deny Settings" (travas de negação). Ao ativar a opção denySettings.mode = denyWriteAndDelete, nenhum desenvolvedor ou administrador (mesmo com cargo de Owner na assinatura) poderá excluir ou editar manualmente os recursos associados ao stack por fora do pipeline IaC, mitigando severamente riscos de desvios de configuração (configuration drift) e falhas humanas em produção.
⟩_ Implantando um Stack via CLI
Abaixo está um exemplo real de comando CLI para criar um Deployment Stack a nível de grupo de recursos a partir de um arquivo Bicep local:
# Criando o Deployment Stack com ação de deleção em recursos não gerenciados
az stack group create \
--name "prod-network-stack" \
--resource-group "rg-production" \
--template-file "./network.bicep" \
--action-on-unmanage delete \
--deny-settings-mode denyWriteAndDelete \
--yes
⟩_ Governança de Nuvem sem Recursos Fantasmas
Com a General Availability dos Deployment Stacks, arquitetos de nuvem têm uma ferramenta poderosa de governança nativa. Ela elimina a necessidade de scripts de limpeza complexos no final de pipelines CI/CD e provê conformidade regulatória estrita, garantindo que tudo o que roda na nuvem corresponda exatamente ao que está declarado no Git da empresa.
- Site Oficial: Microsoft Learn — Azure Deployment Stacks Documentation
- Código Fonte / Docs: Microsoft Learn — Bicep Official Guide
⚠️ Conteúdo especulativo: nomes de produtos, versões, datas, especificações técnicas e identificadores (incluindo CVEs) citados neste artigo compõem um cenário prospectivo elaborado para fins de análise e formação técnica, e não representam confirmação oficial do fabricante, desenvolvedor ou órgão de segurança mencionado.