Comprendre les différences entre une configuration impérative et une configuration déclarative

Effectué

Vous pouvez adopter plusieurs approches pour implémenter l’infrastructure en tant que code et la configuration en tant que code.

Les deux principales sont les suivantes :

  • Déclarative (fonctionnelle). L’approche déclarative indique ce que doit être l’état final. Lors de son exécution, le script ou la définition initialise ou configure la machine pour qu’elle ait l’état final déclaré sans définir comment cet état final doit être atteint.

Une flèche pointe d’une icône de script vers une icône de deux engrenages représentant des procédures de programmation.

  • Impérative (procédurale). Dans l’approche impérative, le script indique comment l’état final de la machine est atteint en exécutant les étapes pour atteindre l’état final. Il définit ce que l’état final doit être, mais il indique également comment atteindre cet état final. Il peut également se composer de concepts de programmation tels que for, if-then, des boucles et des matrices.

Une flèche pointe d’une icône de script vers une icône de deux engrenages représentant des procédures de programmation, suivie d’une autre flèche pointant vers une image représentant une application dans son état final.

Meilleures pratiques

L’approche déclarative isole la méthodologie de la façon dont un état est atteint. Ainsi, il peut être plus facile de lire et de comprendre ce qui est fait.

Cela facilite également l’écriture et la définition. Les approches déclaratives séparent également l’état final souhaité et la programmation requise pour atteindre cet état.

Ainsi, cela ne vous contraint pas à adopter une approche particulière, et autorise donc l’optimisation.

Une approche déclarative est généralement l’option préférée lorsque la simplicité d’utilisation est l’objectif principal. Les fichiers de modèle Azure Resource Manager sont un exemple d’approche d’automatisation déclarative.

Une approche impérative peut présenter certains avantages dans les scénarios complexes où des modifications de l’environnement se produisent relativement souvent et doivent être prises en compte dans votre code.

Il n’existe pas de principe absolu dictant quelle est la meilleure approche à adopter, et chaque outil peut être utilisé sous une forme déclarative ou impérative. La meilleure approche à adopter dépendra de vos besoins.