Quelle est la différence entre Juju et Puppet / Chef?

80

J'ai essayé de demander à une tierce partie quelles étaient les différences clés entre Juju et Puppet / Chef. Les tiers ne connaissent pas trop Juju et ne sauraient le dire. Ils ont simplement déclaré que les autres avaient beaucoup d'élan et qu'il serait difficile de dépasser leur avance.

Les personnes les plus proches de Juju seraient-elles disposées à mettre en évidence les avantages de ce logiciel et pourquoi il devancerait Puppet / Chef dans le domaine de la gestion de la configuration?

marque
la source

Réponses:

48

Mark, c'est une excellente question. C'est la première fois que j'ai posé la question lorsque quelqu'un m'a parlé de Juju. Voici quelques unes des grandes différences.

  • Juju encapsule des services - un charme définit toutes les manières dont le service doit exposer ou utiliser les données de configuration vers / depuis d'autres services. Comment un charme est-ce l'affaire du charme. Pour ce faire, il peut utiliser n'importe quel outil, des scripts shell à Chef en mode solo.

  • Juju orchestre le provisioning - juju garde une trace des ressources à sa disposition et peut les ajouter ou les supprimer si nécessaire. Actuellement, ces ressources sont des machines AWS EC2, des clouds OpenStack (tels que HP Cloud), Microsoft Azure, Joyent, des machines nues via MAAS et un fournisseur local LXC / KVM.

  • Juju facilite le partage - tout le monde peut apporter un charme au Juju Charm Store ; ces charmes sont examinés et évalués par les pairs de la communauté Juju.

Voici quelques autres comparaisons faites par les internautes:

SpamapS
la source
1
Puppet traite de la description des ressources, de la mise en service des machines virtuelles et du partage de modules . Pouvez-vous expliquer comment Juju le fait différemment ou mieux, ou résout un problème différent?
poolie
Ne connaissait pas le fournisseur de nuage de marionnettes au moment de cette réponse. Les modules de marionnettes n’étaient pas des noms espacés la dernière fois que j’avais vérifié, et présentaient donc des problèmes de partage pouvant obliger un utilisateur à modifier le code d’un module de marionnettes pour pouvoir l’utiliser.
SpamapS
Il y a des espaces de noms dans la marionnette . Je n’ai pas beaucoup utilisé Puppet, mais j’ai bien compris que les problèmes surviennent principalement lorsque deux modules tentent réellement de gérer la même chose logique. Juju a-t-il un moyen systématique d'empêcher cela?
poolie
Les espaces de noms de la marionnette ont subi des modifications récentes facilitant le partage d'un module de marionnettes autonome. Dans le passé, il fallait l'équivalent de variables globales pour communiquer entre deux modules. Juju ne traite en aucune façon de la configuration de l'instance, il s'agit simplement d'un facilitateur d'orchestration, donc non, cela n'empêchera pas deux sorts de s'affronter sur un seul fichier.
SpamapS
1
Bonjour @SpamapS, Ceci concerne votre deuxième point (alias Juju orchestre le provisioning). Dans puppet, nous pouvons définir des relations en utilisant "require", "notify", etc. Nous ne pouvons pas simplement utiliser ces constructions pour le provisionnement d'orchestration? Ou Juju fournit-il un niveau différent de sémantique d’orchestration?
Denis Weerasiri
33

(Disclaimer - Je suis le fondateur de Puppet et le PDG de Puppet Labs)

Je ne connais pas très bien les juju , mais d'après ce que je peux en dire, ils sont assis à différents niveaux. Puppet est doué pour la gestion des comportements et des capacités des machines elles-mêmes, tandis que juju semble principalement dédié aux ensembles de machines et explique en grande partie comment faire en sorte que les machines se comportent de manière spécifique aux outils externes tels que Puppet ou des scripts shell.

Notre stratégie avec Puppet est de construire la meilleure pile en partant de zéro, tandis que juju semble être une couche spécifique de la pile et laisser les autres couches à d’autres outils. Ainsi, bien que vous puissiez résoudre tout le problème de Puppet (même si cela nécessite parfois un peu plus de travail que vous ne le souhaiteriez), vous devrez intégrer juju à d’autres outils pour obtenir beaucoup de travail.

Vraiment, Juju semble être une version sur site de CloudFormation d'Amazon, mais sans le graphique et autres. Donc, utilisable avec Puppet, etc., mais pas pour le remplacer.

Luke Kanies
la source
6
Je ne sais pas si punting est le mot qui convient. C’est comme dire que les paquets construisent le logiciel pour autotools / scons / setup.py. Si les paquets essayaient de faire chaque étape de chaque construction, nous n'aurions aucun paquet!
SpamapS
9

Voici une autre interprétation de la manière dont Juju s’accorde avec d’autres outils d’automatisation:

Je suis responsable de la stratégie en matière de cloud chez Canonical, la société derrière Ubuntu et Juju. Juju n'est pas un concurrent de Puppet ou de Chef. Juju peut installer Puppet ou Chef et, à partir d'un charme, l'encapsulation d'un service par Juju, vous pouvez appeler vos modules Puppet existants ou vos reçus Chef.

Alors, qu'est-ce que Juju? Juju vous permet de déployer, d'intégrer et de redimensionner instantanément votre pile, vos services et vos applications informatiques. Instant IT gagne sans douleur. Soit via la ligne de commande ou l'interface graphique.

Juju est donc plus proche de PaaS que de Devops puisque vous pouvez créer votre nuage (Juju est le programme d'installation OpenStack par défaut de Canonical), l'infrastructure qui y est intégrée (serveurs web / app / db, Hadoop, MongoDB, etc.), mais la plupart Remarquablement, Juju permet de déployer et d’intégrer immédiatement les applications (la relation d’addition entre Wordpress et MySQL configurera automatiquement les tables et les données Wordpress dans MySQL).

Les serveurs d'applications (java, php, node.js, scala, etc.) peuvent également fonctionner avec le contrôle de version, ce qui permet un déploiement et une mise à l'échelle automatiques de vos applications. Ainsi, contrairement à PaaS, vous n'êtes pas limité à une pile de logiciels spécifique, mais bénéficiez néanmoins des avantages d'un déploiement instantané, de l'intégration et de la mise à l'échelle. Considérez-le comme un PaaS ou FlexiPaaS flexible qui déploie, intègre et fait évoluer instantanément vos services logiciels sans être limité ni bloqué.

Source - Attention: login requis.

Jorge Castro
la source
3

En termes simples, juju encapsule la découverte de service, un magasin de valeurs de clé et la gestion de la configuration. Les marionnettes / chefs, etc. sont de la gestion de configuration pure.

Juju est basé sur les événements et utilise un "nœud d'amorçage" central pour suivre et orchestrer les événements. On peut faire en sorte que les marionnettes et les chefs apparaissent en fonction des événements. Toutefois, il s’agit généralement d’exécuter le travail correspondant selon un calendrier.

En résumé, vous ne pouvez pas exécuter juju dans un état distribué ou sans agent, ce qui est possible avec la plupart des systèmes de gestion de la configuration.

La plupart des marionnettes, etc., sont des langues spécifiques à un domaine, alors que juju est un système, pas une langue.

J0hnG4lt
la source