Qual è la differenza tra Juju e Puppet / Chef?


80

Ho provato a chiedere a terze parti le differenze chiave tra Juju e Puppet / Chef. Le terze parti non hanno familiarità con Juju e non possono dirlo. Hanno semplicemente affermato che gli altri hanno molto slancio e che sarebbe difficile superare il loro vantaggio.

Quelli più vicini a Juju sarebbero disposti a mettere in evidenza i vantaggi di questo software e perché supererà Puppet / Chef nell'arena di gestione della configurazione?

Risposte:


48

Mark, questa è un'ottima domanda, ed è stata la prima che ho fatto quando qualcuno mi ha parlato di Juju. Ecco alcune delle grandi differenze.

  • Juju incapsula i servizi - un fascino definisce tutti i modi in cui il servizio ha bisogno per esporre o consumare dati di configurazione da / verso altri servizi. Come un incantesimo fa questo è affar suo. Può usare qualsiasi strumento dagli script della shell allo Chef in modalità Solo, per farlo.

  • Juju orchestra il provisioning: juju tiene traccia delle risorse disponibili e può aggiungerle o rimuoverle secondo necessità. Attualmente queste risorse sono macchine AWS EC2, cloud OpenStack (come HP Cloud), Microsoft Azure, Joyent, macchine bare metal tramite MAAS e un provider locale LXC / KVM.

  • Juju semplifica la condivisione: chiunque può contribuire con un fascino al Juju Charm Store ; questi ciondoli sono controllati e sottoposti a revisione paritaria dalla comunità Juju.

Ecco alcuni altri confronti che le persone hanno fatto da tutto il Web:


1
Puppet si occupa della descrizione delle risorse, del provisioning delle macchine virtuali e della condivisione dei moduli . Puoi spiegare come Juju fa diversamente o meglio, o risolve un problema diverso?
poolie,

All'epoca di quella risposta non era a conoscenza del provisioner del cloud delle marionette. L'ultima volta che ho controllato i moduli fantoccio non è stato distanziato per nome e quindi presentano problemi di condivisione che potrebbero richiedere all'utente di modificare il codice di un modulo fantoccio per utilizzarlo.
SpamapS

Ci sono spazi dei nomi nel pupazzo . Non ho usato molto Puppet, ma la mia comprensione è che i problemi si verificano principalmente quando due moduli stanno effettivamente cercando di gestire la stessa cosa logica. Juju ha un modo sistematico per impedirlo?
poolie

Gli spazi dei nomi nelle marionette hanno subito recenti modifiche per rendere più semplice la condivisione di un modulo fantoccio autonomo funzionante. In passato era necessario l'equivalente delle variabili globali per comunicare tra due moduli. Juju non si occupa in alcun modo della configurazione dell'istanza, è solo un facilitatore per l'orchestrazione, quindi no, non impedirà a due ciondoli di lottare su un singolo file.
SpamapS

1
Ciao @SpamapS, riguarda il tuo secondo punto (noto anche come provisioning degli orchestrati Juju). Nel pupazzo possiamo definire le relazioni usando "richiedi", "notifica" ecc. Non possiamo semplicemente usare questi costrutti per il provisioning dell'orchestrazione? O Juju fornisce un diverso livello di semantica dell'orchestrazione?
Denis Weerasiri,

33

(Disclaimer - Sono il fondatore di Puppet e CEO di Puppet Labs)

Non conosco il juju terribilmente bene, ma da quello che posso dire, siedono in qualche modo a livelli diversi. Puppet è bravissimo a gestire i comportamenti e le capacità delle macchine stesse, mentre juju sembra principalmente dedicato a parlare di set di macchine e in gran parte scommette su come far sì che le macchine si comportino in modo specifico su strumenti esterni come Puppet o script di shell.

La nostra strategia con Puppet è quella di costruire la pila migliore da zero, mentre juju sembra essere uno strato specifico della pila e lasciare altri strati ad altri strumenti. Pertanto, mentre puoi risolvere l'intero problema con Puppet (anche se a volte con un po 'più di lavoro di quanto potresti desiderare), dovrai integrare juju con altri strumenti per fare molto.

Davvero, juju sembra una versione on-premise di CloudFormation da Amazon, anche se senza il grafico e così via. Quindi, utilizzabile con Puppet ecc., Ma non in sostituzione.


6
Non sono sicuro che punting sia la parola giusta qui ... è come dire pacchetti punt che costruiscono il software su autotools / scons / setup.py. Se i pacchetti provassero a fare ogni passo di ogni build, non avremmo pacchetti!
SpamapS

9

Ecco un'altra interpretazione di come Juju si adatta ad altri strumenti di automazione:

Sono responsabile di Cloud Strategy presso Canonical, la società dietro Ubuntu e Juju. Juju non è un concorrente di Puppet o Chef. Juju può installare Puppet o Chef e dall'interno di un Charm, l'incapsulamento di Juju di un servizio, puoi chiamare i tuoi moduli Puppet o ricevute Chef.

Allora, cos'è Juju? Juju ti consente di distribuire, integrare e ridimensionare istantaneamente il tuo stack IT / servizi / applicazioni. L'IT istantaneo guadagna senza problemi. O dalla riga di comando o dalla GUI.

Quindi Juju è più vicino a PaaS che a Devops poiché puoi costruire il tuo cloud (Juju è il programma di installazione OpenStack predefinito di Canonical), l'infrastruttura che lo sovrasta (server web / app / db, Hadoop, MongoDB, ecc.) Ma la maggior parte straordinariamente Juju consente di distribuire e integrare immediatamente le applicazioni (la relazione aggiuntiva tra Wordpress e MySQL imposterà automaticamente tabelle e dati Wordpress all'interno di MySQL).

Anche i server delle app (java, php, node.js, scala, ecc.) Possono lavorare insieme al controllo della versione, quindi è possibile distribuire e ridimensionare automaticamente le app. Quindi, diversamente da PaaS, non si è limitati a uno stack software specifico, ma si ottengono comunque vantaggi immediati di distribuzione, integrazione e ridimensionamento. Pensalo come un PaaS flessibile o FlexiPaaS che implementa, integra e ridimensiona istantaneamente i tuoi servizi software senza essere limitato o bloccato.

Fonte - Avviso: accesso richiesto.


3

In parole povere, juju incapsula il rilevamento del servizio, un archivio valori chiave e la gestione della configurazione. Puppet / chef ecc. Sono pura gestione della configurazione.

Juju è basato sugli eventi e utilizza un "nodo bootstrap" centrale per tenere traccia e orchestrare gli eventi. Puppet e chef possono essere fatti apparire in base agli eventi, tuttavia in genere esegue solo il lavoro rilevante in base a un programma.

Dopo tutto, non è possibile eseguire juju in uno stato distribuito o senza agente e questo è possibile con la maggior parte dei sistemi di gestione della configurazione.

Per la maggior parte fantoccio ecc. Sono lingue specifiche del dominio, mentre juju è un sistema, non una lingua.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.