Configuration : Modélisation ou Scripting ?
Quel est la différence entre un langage descriptif et un langage déclaratif ? Prenons un exemple… Si vous cherchez une voiture, vous allez dire, je veux 5 place, un grand coffre, le gps, l’iphone etc… vous n’allez pas demander si la roue est installé par une machine XYZ et un tournevis cruciforme ?
Et bien, c’est cela la différence ! Dans un cas, le langage déclaratif, vous indiquer dans quel état vous souhaitez que le système soit tandis que dans l’autre vous explicitez quels sont les étapes pour y arriver.
Dans le cas de la gestion de configuration, cette différence est important. En effet, dans un cas vous dite juste, je veux un serveur apache/tomcat, dans l’autre vous dite, il faut récupérer le rpm apache, puis l’installer, puis activer mod_http puis … etc !
Dans le premier cas on modélise l’état que l’on veux avoir, alors que dans le second il faut faire attention a toutes les variantes que l’on pourrait trouver, genre, zut, il y a déjà un apache, je doit vérifier la version etc …
Conclusion
On peut lister ainsi les bénéfices d’une gestion de configuration déclarative :
* c’est
répétable
: chaque exécution donnera le même résultat quelque soit l’état de départ.
* c’est
consistent
:encore une fois , quelques soit l’état de départ, l’état d’arrivé sera celui désiré.
* c’est
auto-documenté
: en général les langages déclaratif sont très simple et facilement compréhensible contrairement à des scripts et en général beaucoup plus concis/compact. Et de fait, devient un atout pour
l’auditabilité
.
exemple d’outils déclaratif :
* puppet, salt, confsolve, lcfg, bcfg2
exemple d’outils non déclaratif :
* fabric, chef,
Voir en ligne : http://vald70.free.fr/?p=208