Entender 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:
- Declarativo (funcional). A abordagem declarativa informa qual deve ser o estado final. Quando executado, o script ou a definição inicializa ou configura o computador para ter o estado concluído declarado sem definir como esse estado final deve ser obtido.
- Imperativo (procedimento). Na abordagem imperativa, o script informa o como para o estado final do computador executando as etapas para chegar ao estado concluído. Ele define qual deve ser o estado final, mas também inclui como atingir esse estado final. Ele também pode consistir em conceitos de codificação, como for, if-then, loops e matrizes.
Práticas recomendadas
A abordagem declarativa abstrai a metodologia de como um estado é obtido. Assim, pode ser mais fácil ler e entender o que está sendo feito.
Também facilita a gravação e a definição. Abordagens declarativas também separam o estado desejado final 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 preferencial em que a facilidade de uso é a meta principal. Os arquivos do 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 consideradas em seu código.
Não há uma a melhor abordagem absoluta a ser usada, e ferramentas individuais podem ser usadas em formas declarativas ou imperativas. A melhor abordagem que você deve seguir dependerá de suas necessidades.