Usar a infraestrutura como código para atualizar as zonas de aterrissagem do Azure
Este artigo descreve os benefícios de usar a infraestrutura como código (IaC) para atualizar as zonas de aterrissagem do Azure. As organizações precisam atualizar suas zonas de aterrissagem à medida que operam para garantir que as configurações estejam corretas e respondam à necessidade de alterações.
O IaC pode gerenciar todo o ciclo de vida e se destaca no gerenciamento dos recursos que implanta. As organizações devem planejar implantar suas zonas de aterrissagem do Azure com o IaC. Requer planejamento para alinhar os recursos não-IaC existentes com os recursos IaC que são apoiados com a gestão estatal. Você precisa mapear os recursos existentes para o estado desejado.
Para obter mais informações, consulte Manter sua zona de aterrissagem do Azure atualizada.
Como funciona a infraestrutura como código
IaC refere-se à prática e às ferramentas para gerenciar o ciclo de vida dos recursos de infraestrutura usando arquivos de definição legíveis por máquina. A definição da infraestrutura é gravada, versionada, implantada por meio de pipelines e, em seguida, torna-se parte da implantação para cargas de trabalho.
As tecnologias IaC são declarativas, o que significa que, quando o IaC é executado, ele define a configuração para o que é descrito no código, independentemente de seu estado atual. Quando você configura a infraestrutura por meio de scripts, como a CLI do Azure ou o Azure PowerShell, eles são imprescindíveis. Os scripts imperativos executam um conjunto de ações, e o resultado depende do estado atual mais o estado após as ações.
Portanto, se você tiver uma infraestrutura como definição de código para um recurso do Azure, poderá executar essa definição quantas vezes quiser e ela só criará uma alteração se:
- A definição é alterada para adicionar novos recursos, remover recursos implantados anteriormente ou modificar recursos que foram implantados anteriormente.
- O recurso implantado deriva da configuração para redefinir a configuração para a configuração definida.
Você pode usar o IaC para restaurar o estado removendo recursos que não são mais necessários e gerenciando o ciclo de vida dos recursos por meio de muitas alterações.
Observação
A mecânica específica para remover recursos com IaC varia. Por exemplo, o Azure Bicep requer o uso de um complete
tipo de implantação para corrigir recursos fora do escopo. Esse comando só funciona em escopos específicos. Para o Terraform, os recursos têm um lifecycle
meta-argumento que fornece instruções sobre como o Terraform deve lidar com os recursos.
Para zonas de aterrissagem do Azure, há duas opções principais para infraestrutura como código:
- Azure Bicep, que é uma linguagem específica de domínio usada para implantar recursos do Azure desenvolvidos pela Microsoft. Para obter mais informações, consulte Zonas de aterrissagem do Azure - considerações de design de módulos do Bicep.
- Terraform, um produto produzido pela Hashicorp, para implantar infraestrutura na nuvem e no local. O Terraform tem provedores de recursos específicos produzidos pela Microsoft para a implantação de recursos do Azure. Para obter mais informações, consulte Zonas de aterrissagem do Azure - considerações sobre o design do módulo Terraform.
Os benefícios de atualizar ALZ com infraestrutura como código
Os benefícios a seguir descrevem por que você deve usar a infraestrutura como código para fazer suas atualizações de zona de aterrissagem.
Reduzir o esforço
É necessário menos esforço para usar a infraestrutura como código para executar atualizações em comparação com fazer alterações manuais. A implantação do IaC ajuda a responder às seguintes perguntas:
- Como os recursos são configurados hoje?
- Como ele será configurado por esta atualização?
- Que alterações serão feitas para alinhá-lo com esta atualização?
Quando uma infraestrutura como conjunto de ferramentas de código é executada, ela pode produzir uma comparação ou uma leitura "diferencial" das alterações. Revise essa leitura antes de confirmar as alterações no ambiente.
O conjunto de ferramentas pode compilar as informações para a alteração em vez de um operador ou um engenheiro.
Reduzir erros
Devido à natureza programática das implantações, a infraestrutura como código reduz o erro humano enquanto faz alterações. Ele só altera o que está definido e tem opções de visualização, portanto, reduz as interrupções causadas por alterações com falha ou incompletas. Ele também tem opções de teste melhoradas.
Controle de versão e histórico
A infraestrutura como implantações de código é apoiada por um arquivo de definição, para que você possa usar o controle do código-fonte para gerenciar as versões de suas definições. Dependendo do método de IaC que você usa, você pode fazer referência às implantações no Azure para Bicep ou seu arquivo de estado para Terraform para revisar o histórico de implantações anteriores.
Quando você usa práticas de controle de origem, ele cria uma nova ramificação do IaC para adicionar alterações e revisões. O histórico da ramificação em seu sistema de controle de origem captura as iterações e alterações. Você pode usá-lo para implantar alterações em um ambiente de teste até que esteja pronto para mesclar e implantar as alterações na produção. Para obter mais informações, consulte Abordagem de teste para zonas de aterrissagem do Azure. Ao longo desse ciclo, os registros de implantação capturam a versão usada e os recursos implantados, o que fornece um histórico altamente visível.
Use esses métodos de teste com Bicep para fins de teste geral. Com esses métodos, você pode executar testes antes de implantar o código e pode testar em ambientes que não sejam de produção de sua ramificação.
Ambientes de teste
As implantações de IaC são repetíveis, portanto, você pode usar a mesma definição para implantar um segundo (ou mais) ambiente com base na implantação. Esse método é valioso para testar alterações.
Por exemplo, se você quiser substituir seu Firewall do Azure usando a SKU Premium, poderá implantar um ambiente de teste e validar as alterações sem alterar a produção.
Capturar derivas de configuração
O IaC fornece uma opção exclusiva para capturar desvios de configuração durante as atualizações. A implantação captura alterações no arquivo de definição e apresenta instâncias em que a configuração do recurso difere da definição.
As atualizações da zona de aterrissagem com o IaC podem ajudá-lo a capturar esse desvio de configuração e permitir que você atualize o código adequadamente, resolva essas configurações incorretas por meio da atualização ou resolva-as de outra maneira.
Quando você faz uma alteração em recursos por meio do portal, CLI ou um método não-IaC, a alteração é implementada. Na próxima vez que você executar uma implantação por meio do IaC, ele sinalizará a comparação entre o estado definido pelo código e o estado real no portal usando funções hipotéticas ou de plano. Use esse método para identificar se um ambiente é modificado fora do arquivo de código.
Depois que o desalinhamento for identificado, você poderá executar o IaC para tentar alinhar a implantação com a definição. Use esse método para identificar problemas e corrigir cenários, dependendo da natureza dos problemas, da natureza da execução e de como as alterações foram feitas. Por exemplo, o Terraform tenta restaurar a linha de base para os recursos implantados e uma Complete
implantação de modo no Bicep remove recursos em um grupo de recursos que não fazem parte da definição. Essas ferramentas detectam e reparam desvios de configuração, mas podem não resolver todos os problemas.
Para obter mais informações, consulte Alterações fora de banda e Detectando e gerenciando desvios com o Terraform.
As alterações definidas no portal são complicadas de implementar novamente no IaC. Você deve atualizar o código para corresponder ao estado atual, que geralmente envolve a revisão de cada alteração de recurso e a atualização de seus parâmetros para corresponder à configuração "como está".
Se você usar o IaC para gerenciar sua zona de pouso ou outros recursos, você só deve fazer alterações fora do IaC como parte de uma emergência. Tome precauções com contas que têm acesso para fazer alterações diretamente, como o Gerenciamento de Identidades Privilegiadas.
Analise as práticas gerais de automação e segurança nos seguintes artigos:
- Visão geral da disciplina Linha de Base de Segurança
- Visão geral da disciplina Linha de Base de Identidade
- Recomendações de conformidade operacional
- Recomendações de projeto de automação de plataforma
Próximas etapas
Explore uma introdução às ferramentas IaC nos seguintes artigos: