Quel rôle jouent les outils de gestion de la configuration dans une infrastructure immuable?

12

Si j'utilise des serveurs / conteneurs immuables , ai-je besoin d'outils comme Chef, Puppet, Ansible ou Salt? Ces outils de gestion de configuration sont conçus pour établir une configuration puis la maintenir.

Si je déploie des serveurs immuables, dois-je utiliser les outils de gestion de configuration uniquement pour le provisionnement initial?

Dave Swersky
la source

Réponses:

12

Il y a quelques réponses à cela:

  1. Quelque chose doit construire ces images immuables. Il est certainement plus facile d'utiliser des scripts procéduraux de style old-school pour construire quelque chose en partant d'un état de départ connu, mais cela peut toujours devenir très compliqué au fil du temps (par exemple Dockerfiles), surtout lorsque vous finissez par vouloir une grande matrice d'images différentes pour des choses comme différentes versions de logiciels, différents environnements, etc. Packer et d'autres outils de création d'images s'intègrent bien avec Chef, Ansible, Puppet, Salt, etc.

  2. L'immuabilité est un spectre, pas un binaire. Même dans un déploiement "très immuable", il n'est pas rare d'avoir des fichiers de configuration qui nécessitent une gestion du runtime. C'est également un endroit où vous pouvez utiliser les outils CAPS, bien que des options plus légères comme les modèles Consul ou etcd puissent avoir plus de sens en fonction des informations générales. Si vous utilisez des serveurs d'applications immuables mais que vos serveurs de bases de données sont gérés de manière plus traditionnelle à l'aide de Chef, il peut être judicieux d'utiliser Chef même sur le côté immuable pour des tâches de gestion mineures.

  3. Gestion zéro jour. L'immuabilité est agréable, mais qu'allez-vous faire lorsque le prochain OpenSSL 0day tombera? Si vous avez votre pipeline de génération en mesure de créer des images de correctif immédiat et de les déployer, c'est parfait. Mais beaucoup de gens n'auront probablement pas ce genre de capacité de virage rapide.

  4. Des choses qui ne peuvent pas être immuables. La non-réponse, mais un infra entier est rarement 100% immuable. Des choses comme les serveurs de bases de données et les postes de travail des développeurs (oui, ceux-ci font partie de votre infra) sont quelque part entre difficiles et impossibles à rendre immuables.

coderanger
la source
Vous faites beaucoup d'hypothèses sur "beaucoup de gens". Ceux qui ne peuvent pas générer d'images pour leur infrastructure immuable, n'ont probablement pas l'infrastructure immuable pour commencer.
Evgeny
Il existe un grand écart entre «peut se déployer à l'aide de conteneurs immuables» et «peut reconstruire et redéployer chaque conteneur dans les 6 heures, même avec d'autres déploiements en cours».
coderanger
Et d'après mon expérience, lorsque vous avez cet écart (de 6 heures), vous ne pouvez pas avoir une infrastructure immuable. Avoir des serveurs immuables et construire rapidement des serveurs immuables ne sont pas des capacités identiques, mais elles sont étroitement liées.
Evgeny
Beaucoup de gens qui disent "nous gérons des conteneurs immuables" n'appartiennent pas à cette catégorie. Par conséquent, en soulignant que c'est un problème à résoudre, ce qui était tout l'objet de la question.
coderanger
Vous pouvez définir «immuable» pour signifier «personne SSH ne fait de changements manuels», car cela ne peut pas signifier qu'il ne change pas complètement, car ils se changent eux-mêmes pendant les opérations normales. Même écrire un pidfile est une mutation.
Gaius
0

Un environnement absolument immuable est une mauvaise idée, je pense.

Les outils CM comme Ansible, Chef, Puppet peuvent être utiles dans de nombreux cas, y compris le vôtre.

J'utilise ansible pour le provisionnement initial des instances de VM dans GCP.

Quarind
la source