Il me semble que les deux outils sont utilisés pour installer et configurer facilement des applications.
Cependant, j'ai utilisé Docker de manière limitée et je n'ai pas utilisé Ansible du tout. Je suis donc un peu confus.
Chaque fois que je recherche une comparaison entre ces deux technologies, je trouve des détails sur la façon d'utiliser ces technologies en combinaison.
Il y a plusieurs raisons pour lesquelles la plupart des articles parlent de les utiliser ensemble.
Considérez Ansible comme un moyen d'installer et de configurer une machine sur laquelle vous pouvez revenir en arrière et modifier n'importe quelle étape individuelle de cette installation et configuration à l'avenir. Vous pouvez ensuite adapter ce concept à de nombreuses machines que vous pouvez gérer.
Une différence clé où Ansible a un avantage est qu'il peut non seulement gérer les composants internes de la machine, mais également gérer les autres systèmes tels que la mise en réseau, le DNS, la surveillance, etc. qui entourent la machine.
Construire de nombreuses machines via Ansible prend autant de temps pour faire 50 machines que pour en faire 1, car toutes les 50 seront créées étape par étape. Si vous exécutez un déploiement continu sur plusieurs environnements, sa création étape par étape prend du temps.
Considérez maintenant Docker comme ayant construit une de ces machines individuelles - installée et configurée et prête à être déployée partout où un système docker est disponible (ce qui est à peu près partout ces jours-ci). L'inconvénient ici est que vous ne parvenez pas à gérer tous les autres aspects nécessaires pour que les conteneurs de docker fonctionnent réellement, et les ajuster à long terme n'est pas aussi amusant que cela puisse paraître si vous n'avez pas automatisé la configuration (d'où Ansible aide ici ).
La mise à l'échelle de 1 à 50 machines Docker une fois que vous avez déjà créé l'image initiale est incroyablement rapide par rapport à l'approche pas à pas qu'Ansible adopte, et cela est plus évident lors d'un déploiement continu de nombreuses machines en petits groupes.
Chacun a ses inconvénients en termes de capacité ou de vitesse. Combinez-les cependant et cela peut être assez génial. Comme sans aucun doute avec la plupart des articles que vous avez déjà lus, je recommanderais d'utiliser Ansible pour créer (et mettre à jour) vos conteneurs Docker de base, puis d'utiliser Ansible pour gérer le déploiement de l'échelle des conteneurs que vous devez satisfaire l'utilisation de vos applications.