Au dos de ma réponse à la question: Comment DevOps peut-il aider à améliorer les procédures d'engagement de logiciels? Tensibai avait la question:
Qu'est-ce qui nécessiterait Capistrano sur une marionnette ou un chef?
Ma réponse a été de publier un lien vers l'article de Noah Gibbs "Avons-nous besoin à la fois de Capistrano et de Chef?" . Personnellement, je partage toujours l'opinion de Noah selon laquelle il est le plus approprié de:
- utiliser un outil de déploiement spécialisé tel que Capistrano pour les déploiements.
- utilisez un outil de gestion de configuration spécialisé tel que Chef pour la gestion de la configuration.
L'approche fondamentale que chaque type d'outil utilise pour accomplir sa tâche est très différente:
Les outils de gestion de la configuration - concernent la création et le maintien de l'état souhaité d'un système, ils sont intrinsèquement idempotents par nature. Des exemples d'outils de gestion de configuration sont Chef , Puppet , Ansible , PowerShell DSC , Salt Stack .
Les outils de déploiement - concernent la livraison de versions de logiciel dans un environnement d'hébergement, ils fournissent des fonctionnalités pour maintenir plusieurs versions du logiciel sur plusieurs machines et gérer la version "actuelle", ils sont par nature impératifs. Des exemples d'outils de déploiement sont Capistrano , Octopus Deploy , Deployer et Command.io .
Je crois que les outils de gestion de la configuration peuvent faire le travail des outils de déploiement et dans le cas de l' infrastructure immuable, ils sont l'outil le plus approprié pour le travail, car les versions logicielles sur la cible n'ont pas besoin d'être maintenues.
Question: Les outils de gestion de la configuration tels que Chef, Ansible et Puppet sont-ils arrivés à maturité au point de pouvoir remplir à la fois les modèles idempotents et impératifs?