Entender a configuração imperativa versus declarativa

Concluído

Há algumas abordagens diferentes que você pode adotar para implementar a Infraestrutura como Código e Configuração como Código.

Dois dos principais métodos de abordagem são:

  • Declarativo (funcional). A abordagem declarativa afirma o que o estado final deve ser. Quando executado, o script ou definição inicializará ou configurará o computador para que o estado concluído seja declarado sem definir como esse estado final deve ser alcançado.

Uma seta aponta de um ícone de script para um ícone de duas engrenagens que representam procedimentos de codificação.

  • imperativo (procedimento). Na abordagem imperativa, o script indica o como para o estado final do computador executando as etapas para chegar ao estado concluído. Ele define o que o estado final precisa ser, mas também inclui como alcançar esse estado final. Ele também pode consistir em conceitos de codificação, como para, if-then, loopse matrizes.

Uma seta aponta de um ícone de script para um ícone de duas engrenagens que representam procedimentos de codificação, seguido por outra seta apontando para uma imagem que representa um aplicativo em seu estado final.

Práticas recomendadas

A abordagem declarativa abstrai a metodologia pela qual se atinge um estado. Dessa forma, pode ser mais fácil ler e entender o que está sendo feito.

Também facilita a escrita e a definição. As abordagens declarativas também separam o estado final desejado e a codificação necessária para atingir esse estado.

Portanto, isso não força você a usar uma abordagem específica, permitindo a otimização.

Uma abordagem declarativa geralmente seria a opção preferida onde a facilidade de uso é o objetivo principal. Os arquivos de modelo do Azure Resource Manager são um exemplo de uma abordagem de automação declarativa.

Uma abordagem imperativa pode ter algumas vantagens em cenários complexos em que as alterações no ambiente ocorrem com relativa frequência, que precisam ser contabilizados em seu código.

Não há nenhum absoluto sobre qual é a melhor abordagem a ser tomada, e ferramentas individuais podem ser usadas nas formas declarativas ou imperativas. A melhor abordagem a ser tomada dependerá de suas necessidades.