Compreender a configuração imperativa versus declarativa
Há algumas abordagens diferentes que você pode adotar para implementar a infraestrutura como código e a configuração como código.
Dois dos principais métodos de abordagem são:
- Declarativa (funcional). A abordagem declarativa indica qual deve ser o estado final. Quando executado, o script ou a definição inicializará ou configurará a máquina para que o estado concluído seja declarado sem definir como esse estado final deve ser alcançado.
- Imperativo (processual). Na abordagem imperativa, o script indica como para o estado final da máquina, executando as etapas para chegar ao estado final. Ele define o que o estado final precisa ser, mas também inclui como alcançar esse estado final. Também pode consistir em conceitos de codificação como for, if-then, loops e matrizes.
Melhores práticas
A abordagem declarativa abstrai a metodologia de como um estado é alcançado. Como tal, pode ser mais fácil ler e compreender o que está a ser 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.
Assim, ele não força você a usar uma abordagem específica, permitindo a otimização.
Uma abordagem declarativa seria geralmente a opção preferida em que a facilidade de utilização é 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 onde as alterações no ambiente ocorrem com relativa frequência, que precisam ser contabilizadas em seu código.
Não há um absoluto sobre qual é a melhor abordagem a ser adotada, e ferramentas individuais podem ser usadas em formas declarativas ou imperativas . A melhor abordagem a ser adotada dependerá das suas necessidades.