Infraestrutura como código

Concluído

A IaC (infraestrutura como código) é o processo de gerenciamento e provisionamento de recursos de infraestrutura de nuvem por meio de código legível por computador armazenado no controle do código-fonte. A capacidade de tratar a infraestrutura como você trata qualquer outro código-fonte é o motivo pelo qual essa prática é chamada infraestrutura como código.

A IaC é um componente fundamental de DevOps, pois permite a automação da configuração e da implantação da infraestrutura. Essa automação reduz o tempo e o esforço necessários para gerenciar e provisionar a infraestrutura e ainda garante que a infraestrutura seja configurada de modo consistente e confiável. A IaC também ajuda a garantir que a infraestrutura esteja segura e em conformidade com as políticas organizacionais.

Ferramentas nativas do Azure versus ferramentas independentes de nuvem

Um dos fatores mais importantes na escolha de uma ferramenta de IaC é o ambiente de nuvem:

  • Ferramentas nativas do Azure: as ferramentas de IaC, como a CLI do Azure, o Azure PowerShell e o Bicep, estão disponíveis somente no Azure. Como a mesma empresa fornece a infraestrutura de nuvem e as ferramentas de IaC, o benefício é o tempo reduzido entre a versão de recurso de nuvem e o suporte nas ferramentas.

  • Ferramentas independentes de nuvem: ferramentas de IaC, como o Terraform, permitem que você gerencie a infraestrutura como código em ambientes de nuvem híbrida. Dependendo da ferramenta de IaC, os recursos do Azure recém-lançados podem não ter suporte imediato.

Ferramentas de IaC imperativas versus declarativas

Existem dois tipos de ferramentas de configuração de IaC:

  • Ferramentas de IaC imperativas: uma ferramenta, ou linguagem, imperativa é aquela em que o código especifica explicitamente o que deve ser feito e como. O código que você escreve executa ações em uma ordem específica, uma etapa de cada vez, para configurar a infraestrutura. A maioria das ferramentas de IaC imperativas não é idempotente porque a configuração é executada passo a passo.

    As ferramentas de IaC imperativas para gerenciar e provisionar recursos no Azure incluem:

    • A CLI do Azure
    • Azure PowerShell
  • Ferramentas de IaC declarativas: uma ferramenta, ou linguagem, declarativa permite que você especifique o resultado desejado e não como cada etapa deve ser realizada. As ferramentas de IaC mais declarativas seguem um padrão comum. Depois de criar a definição da infraestrutura, execute um comando para provisionar o que você definiu. As ferramentas de IaC declarativas são idempotentes, pois a configuração pode ser aplicada várias vezes, independentemente do estado da configuração da infraestrutura. Essa capacidade permite evitar o descompasso de configuração fazendo com que uma infraestrutura sem conformidade volte a estar em conformidade.

    As ferramentas de IaC declarativas para gerenciar e provisionar recursos no Azure incluem:

    • Bicep
    • Terraform

Recomendações

  • Adoção de uma abordagem de IaC para implantar, gerenciar, governar e dar suporte a implantações do Azure.
  • Use as ferramentas de IaC nativas do Azure nos seguintes cenários:
    • Você deseja usar apenas as ferramentas nativas do Azure. A organização já tem experiência com a implantação de modelos do ARM (modelos do Azure Resource Manager).
    • A organização quer ter suporte imediato a todas as versões prévias e versões em GA (disponibilidade geral) dos serviços do Azure.
  • Use as ferramentas não nativas para IaC nos seguintes cenários:
    • Sua organização gerencia a infraestrutura em ambientes de nuvem híbrida.
    • A organização não precisar ter suporte imediato a todas as versões prévias e versões de GA dos serviços do Azure.