web-dev-qa-db-fra.com

Quelle est la difference entre vagrant et juju?

Sont-ils tous les deux en train de résoudre le même problème? Ou sont-ils pour deux types de problèmes différents? Si oui, pour quoi est-il préférable d'utiliser vagabond et quoi de mieux d'utiliser juju?

10
txwikinger

version rapide:

vagrant est un outil permettant de travailler avec des instances de virtualbox. Ceci est généralement utilisé pendant le développement (sur un Mac) pour tester et déployer votre application sur des machines virtuelles qui ressemblent davantage à votre environnement de production éventuel (c'est-à-dire, Linux). Il dispose d'une pile personnalisable (Ruby) de gestionnaires pour créer un tel environnement virtuel comme vous le souhaitez. Vagrant est un outil puissant pour la gestion par programme des environnements virtuels. Il fournit toutes sortes de variantes "locales" de techniques de développement de style intégration continue. Il est le plus souvent utilisé pour exécuter des ordinateurs virtuels Ubuntu sur un Mac, mais il s'exécutera sur diverses plates-formes et déploiera divers systèmes d'exploitation cibles. En fait, cela ne fonctionne qu'avec virtualbox en tant que "fournisseur" sous-jacent.

juju est un outil permettant d'orchestrer des services en utilisant différents fournisseurs sous-jacents: nuages ​​ec2, nuages ​​à ciel ouvert, serveurs virtuels lxc et serveurs MaaS. Il partage une histoire de "développement local" (utilisant des conteneurs lxc au lieu de machines virtuelles virtualbox) avec vagrant, mais c'est vraiment le seul chevauchement. En fait, j'aimerais voir un fournisseur vagabond écrit pour juju afin que juju puisse piloter des conteneurs de virtualbox sur un environnement local avec la même facilité que pour la gestion des images en nuage et lxc. Ce serait un bon ajustement! En outre, juju tire une grande partie de sa valeur de l'ensemble des charmes/services qui peuvent être générés directement, alors que vagrant est essentiellement un fournisseur de conteneurs local de niveau inférieur.

En fait, nous fournissons une boîte Vagrant avec Juju afin que les utilisateurs puissent tester le fournisseur local depuis une machine virtuelle:

Notez que des efforts ont été déployés pour "unifier" les scripts de déploiement autour de vagant afin que les mêmes scripts puissent être utilisés pour le déploiement sur des instances de cloud ainsi que des boîtes vagabondes . Ceux-ci semblent être la plupart du temps isolés du vagabond proprement dit et ne font franchement que souligner la nécessité d'un outil comme le juju.

19
m_3

Regroupant "les scripts de déploiement autour de vagrant", Vagrant présente une excellente intégration avec Puppet et Chef, qui peut être utilisé pour la configuration de systèmes d'automatisation dans des environnements allant des boîtiers Vagrant au matériel local en passant par les nuages. En fait, beaucoup de gens utilisent Vagrant pour tester leurs scripts Puppet/Chef avant de les utiliser en production.

Il serait certainement bien d'ajouter Juju à la liste des outils d'automatisation qui fonctionnent avec Vagrant.

1
Jeff