Skip to main content
BlogOutils du développeurDéclaratif et impératif dans l'IaC

Déclaratif vs. impératif dans IaC

Déclaratif vs. impératif dans IaC

L'infrastructure en tant que code (IaC) est un paradigme puissant pour envisager, configurer et déployer un environnement informatique. Dans le modèle IaC, un système informatique n'est pas construit manuellement mais est décrit dans un fichier à l'aide d'un langage spécialisé. Un outil d'automatisation lit alors le fichier et construit le système selon les spécifications de l'utilisateur. L'efficacité et la polyvalence de l'IaC en ont fait un complément populaire du DevOps et de la révolution de l'informatique en nuage.

Plusieurs plateformes d'automatisation prennent en charge l'IaC, chacune offrant de nombreuses fonctionnalités et avantages différents. Lorsque vous commencerez à envisager une solution IaC, vous devrez déterminer lesquelles de ces fonctionnalités répondront le mieux à vos besoins. Une considération importante à garder à l'esprit lors de la comparaison des plateformes d'automatisation IaC est de savoir si l'outil prend en charge les opérations impératives ou déclaratives.

Les termes " impératif " et " déclaratif " reviennent souvent dans les discussions de l'IAC. Ces deux termes font référence à la manière dont l'utilisateur donne des instructions à la plateforme d'automatisation. Avec un outil impératif, vous définissez les étapes à exécuter pour atteindre la solution souhaitée. Avec un outil déclaratif, vous définissez l'état souhaité de la solution finale et la plateforme d'automatisation détermine comment atteindre cet état.

Les systèmes impératifs sont souvent plus faciles au départ. On pourrait dire qu'un système impératif est organisé de manière plus proche du mode de pensée humain. Les systèmes impératifs vous permettent de continuer à envisager la configuration comme une série d'actions ou d'étapes, chacune vous rapprochant de l'objectif. Un autre avantage du langage impératif est qu'il permet d'automatiser des configurations très détaillées et complexes en construisant plusieurs couches de commandes. De plus, comme un système impératif donne à l'utilisateur plus de contrôle sur la manière d'accomplir une tâche, il est souvent plus efficace et plus facile à optimiser pour un objectif spécifique qu'un système déclaratif.

Avec tous les avantages des langages impératifs, vous vous demandez peut-être pourquoi les langages déclaratifs sont si en vogue. Les outils déclaratifs gagnent en popularité depuis plusieurs années et constituent sans doute le format dominant pour l'automatisation des IaC. L'une des raisons de la popularité des outils déclaratifs est qu'ils requièrent moins de connaissances de la part de l'utilisateur, du moins une fois que l'on a compris comment ils fonctionnent.

Avec un outil impératif, l'utilisateur doit avoir suffisamment de connaissances pour dire à la plateforme d'automatisation ce qu'elle doit faire. Avec un système déclaratif, l'utilisateur n'a qu'à définir l'état de la configuration finale, et la plateforme détermine comment y parvenir. La complexité de l'exécution étape par étape est cachée à l'utilisateur.

Un autre avantage d'un langage déclaratif est qu'il est plus idempotent. Le concept d'idempotence fait référence à un processus qui peut être exécuté plusieurs fois avec le même résultat. Étant donné qu'un langage déclaratif se contente de définir l'état final, vous finissez toujours au même endroit, quel que soit votre point de départ. En revanche, un langage impératif envisage une tâche comme une série d'étapes prédéfinies qui peuvent vous amener à un point final différent en fonction du point de départ.

Les principales plateformes d'automatisation de l'IaC se situent à différents endroits du spectre entre l'impératif et le déclaratif, bien que de nombreux outils aient au moins une certaine capacité à prendre en charge les deux approches. Chef est généralement considéré comme un outil impératif. Terraform et Puppet sont considérés comme des outils déclaratifs. Ansible et Salt sont principalement déclaratifs mais offrent un certain support pour les commandes impératives.

Vous devrez prendre en compte de nombreux facteurs lorsque vous chercherez une plateforme d'automatisation IaC. Le choix entre impératif et déclaratif n'est qu'un critère dans une matrice d'options plus large. Cependant, lorsque vous commencez à concevoir votre futur environnement IaC, il est important de prendre le temps de visualiser si une solution impérative ou déclarative conviendrait mieux à votre organisation.


Commentaires

Laissez un commentaire

Votre adresse électronique ne sera pas publiée. Les champs obligatoires sont marqués d'un *.