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 pouso à 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 a implantação de suas zonas de aterrissagem do Azure com o IaC. Requer planejamento para alinhar os recursos existentes que não são do IaC com os recursos do IaC que são apoiados pela 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 para a infraestrutura é escrita, 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 está 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 imperativos. 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 se desvia da configuração para redefinir a configuração para a 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.

Nota

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. Este comando só funciona em âmbitos 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 do domínio que é 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 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 de 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 atualizações da zona de destino.

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 será configurado por esta atualização?
  • Que alterações serão feitas para o alinhar com esta atualização?

Quando uma infraestrutura como conjunto de ferramentas de código é executada, ela pode produzir uma comparação ou leitura "diferencial" das alterações. Revise esta leitura antes de confirmar 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. Altera apenas o que está definido e tem opções de pré-visualização, pelo que reduz as interrupções causadas por alterações falhadas ou incompletas. Também melhorou as opções de teste.

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 do código-fonte, ele cria uma nova ramificação do seu 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é estar 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 estes 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 filial.

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. Este método é valioso para testar alterações.

Por exemplo, se você quiser substituir o Firewall do Azure usando a SKU Premium, poderá implantar um ambiente de teste e validar as alterações sem alterar a produção.

Captura de desvios de configuração

O IaC fornece uma opção exclusiva para detetar desvios de configuração durante as atualizações. A implantação deteta 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 nos 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 que implantou, 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 detetam 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 Detetando 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, o 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ê usa o IaC para gerenciar sua zona de pouso ou outros recursos, 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 Privileged Identity Management.

Analise as práticas gerais de automação e segurança nos seguintes artigos:

Próximos passos

Explore uma introdução às ferramentas do IaC nos seguintes artigos: