Compartilhar via


Usar a infraestrutura como código para atualizar as zonas de destino do Azure

Este artigo descreve os benefícios de usar IaC (Infraestrutura como Código) para atualizar as zonas de aterrissagem do Azure. As organizações precisam atualizar suas zonas de destino enquanto operam para garantir que as configurações estejam corretas e respondam à necessidade de alterações.

A 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 landing zones do Azure com IaC. Isso requer planejamento para alinhar recursos não IaC existentes com recursos IaC que contam com gerenciamento de estado. Você precisa mapear os recursos existentes para o estado desejado.

Para obter mais informações, consulte Manter sua zona de destino 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 pelo computador. A definição da infraestrutura é escrita, versionada, implantada através de pipelines e, em seguida, torna-se parte da implantação de workloads.

As tecnologias de IaC são declarativas, o que significa que, quando a IaC é executada, ela 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 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 muda para adicionar novos recursos, remover recursos implantados anteriormente ou modificar recursos que foram implantados anteriormente.
  • O recurso implantado se desvia da configuração para que a configuração seja redefinida para a originalmente definida.

Você pode usar 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

As mecânicas específicas para remover recursos com IaC variam. 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 destino do Azure, há duas opções principais para infraestrutura como código:

Os benefícios de atualizar o ALZ com a infraestrutura como código

Os benefícios a seguir descrevem por que você deve usar a infraestrutura como código para fazer atualizações de zona de destino.

Reduzir o esforço

É preciso menos esforço para usar a infraestrutura como código para executar atualizações em comparação com as alterações manuais. A implantação de IaC ajuda a responder às seguintes perguntas:

  • Como os recursos estão configurados hoje?
  • Como ele será configurado por esta atualização?
  • Quais alterações serão feitas para colocá-la em linha com essa 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 este relatório antes de efetuar 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 erro

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 interrupções causadas por alterações com falha ou incompletas. Ele também aprimorou as opções de teste.

Controle de versão e histórico

As implantações de infraestrutura como código são apoiadas por um arquivo de definição, permitindo que você utilize o controle de versão para gerenciar as versões de suas definições. Dependendo do método de IaC usado, você pode referenciar as implantações no Azure para Bicep ou no arquivo de estado do Terraform para examinar o histórico de implantações anteriores.

Quando você usa as práticas de controle do código-fonte, ele cria um novo branch de sua IaC para adicionar alterações e revisões. O histórico do branch em seu sistema de controle do código-fonte captura as iterações e as 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 a abordagem de teste para zonas de destino 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 o Bicep para testes gerais. Com esses métodos, você pode executar testes antes de implantar o código e pode testar em ambientes não produtivos a partir do seu branch.

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 o Firewall do Azure usando o SKU Premium, poderá implantar um ambiente de teste e validar as alterações sem alterar a produção.

Detectar desvios de configuração

O IaC fornece uma opção exclusiva para detectar 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 destino com IaC podem ajudá-lo a capturar esse descompasso 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, da CLI ou de um método não IaC, a alteração é implementada. Na próxima vez que você executar uma implantação por meio de IaC, ela sinaliza a comparação entre o estado definido pelo código e o estado real no portal usando as funções what-if ou plan. 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 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 um modo de implantação no Bicep remove recursos em um grupo de recursos que não fazem parte da definição. Essas ferramentas detectam e reparam o descompasso 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 o desvio com o Terraform.

As alterações definidas no portal são complicadas para implementar novamente na IaC. Você deve atualizar o código para corresponder ao estado atual, que geralmente envolve revisar cada alteração de recurso e atualizar seus parâmetros para corresponder à configuração "como está".

Se você usar IaC para gerenciar sua zona de destino ou outros recursos, só deverá fazer alterações fora da 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.

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

Próximas etapas

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