Puppet vs Chef, pro e contra dagli utenti e casi d'uso [chiuso]


56

Ho già cercato su Google e letto l'articolo "al burattino-o-al-cuoco-che-è-la-domanda" .

Sono interessato a casi d'uso, implementazioni del mondo reale in cui le persone avevano scelto l'uno o l'altro sulla base di problemi reali.

Sono particolarmente interessato all'integrazione con i problemi del calzolaio (so che il burattino è un approccio molto standard in questa direzione); come qualcuno ha esperienza nell'integrazione ciabattino-chef ?

Grazie in anticipo



1
@warren: il post che contorni non è correlato. Sto chiedendo un confronto diretto tra questi strumenti, non solo una menzione di chef come è stato fatto nel post.
drAlberT

Per rispondere alla domanda del ciabattino + cuoco ho un ramo nel mio checkout del calzolaio per restituire l'uso di JSON per Chef, ma non ho un sistema per testarlo. Fammi sapere se sei interessato ai test.
jtimberman,

Certo, ma non posso adesso ... Continuerò i miei test tra qualche mese, qualcos'altro ha avuto la priorità in questo momento
drAlberT

Per quanto riguarda la chiusura della domanda .. Ho chiesto "problemi reali", integrazione cobbler, casi d'uso ... non semplicemente "opinioni", ma scelte motivate. Sono contro la chiusura, come puoi sostenere :)
drAlberT

Risposte:


63

Ad essere sincero, penso che questo si riduca a un semplice punto di vista: lo Chef sembra più una soluzione imperativa e programmatica, l'uso del rubino come linguaggio mi fa immediatamente sperare che qualcuno lo abbia portato su Python, così come lo è il mondo con tutto idee di ruby.

Non è quello che vuoi per questo genere di cose però. Vuoi parlare con il vuoto in cui sarà il sistema e dichiarare:

"Dopo la convocazione della porta 80 da nord, il demone chiamato nginx. Il suo compito è quello di servire."

"Un utente dovrebbe esistere, il suo nome dovrebbe essere chiggsy e dovrebbe essere uno dei potenti nel gruppo delle ruote",

"Solleva un muro di fuoco, sottile nei punti 80.443,8080"

E così via, anche se forse in un linguaggio meno fiorito.

Puppet supporta questo paradigma IMO migliore. Avrei usato uno dei due, non avevo preferenze, ma quando si trattava di esso, il dichiarativo mi andava meglio.

Fantoccio.


2
Potresti anche fare un passo avanti in futuro e utilizzare la distribuzione Linux che utilizza la configurazione dichiarativa: nixos.org/nixos
iElectric,

19

Ho scritto un confronto dettagliato di Chef vs Puppet qui: Puppet vs Chef: 10 motivi per cui Puppet vince . Sebbene non includa casi d'uso, spero che fornisca alcuni utili punti di partenza per le persone che si chiedono quale strumento scegliere per la loro automazione dell'infrastruttura.


3
Ottimo lavoro. Anche se molti dei punti che hai scritto sono legati al semplice fatto che il burattino è "più vecchio" e molto più "supportato". Ok, è un dato di fatto ... ma penso che nessuno avrebbe mai usato Postfix perché Sendmail aveva già un grande pubblico ... Ripeto, buon lavoro, ne terrò conto
drAlberT

AlberT - sì, Puppet è in circolazione da più tempo di Chef e quindi ha molti dei vantaggi della prima mossa: maturità del codice, base di sviluppo, base installata, condivisione mentale - questi sono esplicitamente riconosciuti nell'articolo. Puppet è tecnicamente superiore alle attività di automazione Chef per Linux? Probabilmente no. Consiglio ancora Puppet contro Chef perché è lo strumento di gestione della configurazione leader del mercato.
John Arundel,

2
L'articolo del blog è molto obsoleto, dal 2011 Puppet ora supporta moduli di rubini puri e ha anche molti più "verbi" rispetto alla versione valutata dall'autore.
Robbyt,

14

Mi dispiace per la verbosità. Utilizza lo strumento che semplifica il lavoro. Questo è il punto dell'automazione, giusto?

Storia: ho usato le marionette nelle passate esibizioni e il mese scorso ho trascorso circa una settimana cercando di abituarmi allo chef per vedere se avrei fatto il passaggio al mio nuovo concerto.

Non ho saltato.

Gergo: uno sfortunato problema con entrambi questi sistemi è il sovraccarico del gergo. (ricette, modelli, nodi, ruoli, attributi, provider) Continua. Ho scoperto che Chef ha fatto un passo avanti. (Coltello, Shef, ecc.)

Maturità del codice: basti dire che ho trovato Chef un po 'troppo crudo. Sembra un po 'come si sentiva un burattino nel periodo di tempo .21 / .22 3-4 anni fa. C'è molto flusso in corso.

Per non dire che non è successo neanche nel burattino. (Ho riscoperto molte fantastiche funzionalità di marionette che sono emerse solo negli ultimi anni. - Regex matching!)

Ruby: Non mi è piaciuto tutto il sovraccarico di rubini in Chef. (hai bisogno di gemma e rastrello prima ancora di poter iniziare) Puoi usare il rubino per risolvere problemi complessi nel burattino a'la facter, ma non devi farlo se non vuoi.

Complessità: non mi piaceva l'attenzione della GUI sullo chef. Mi rendo conto che è carino e il pupazzo ha un'interfaccia web in lavorazione come componente aggiuntivo, ma penso che dovrebbe essere più disaccoppiato.

Lo chef ha un'architettura molto più complessa. Potrebbe ridimensionarsi meglio, ma ci sono molti potenziali punti di errore.
http://wiki.opscode.com/display/chef/Architecture

Lo chef ha bisogno di couchdb, rabbitmq e solr oltre al server API e all'interfaccia web.

Voglio solo una semplice interfaccia client / server che non abbia bisogno di un framework MVC e di un archivio dati complesso dietro di esso.

Puppet è molto più semplice in quel reparto. (per non dire che non ci sono molti componenti aggiuntivi per renderlo più disordinato)

Lavorare: alla fine, sono andato con quello che sapevo. Dopo aver trascorso una settimana di hacking laterale e riuscire a malapena a fare le basi con Chef, sono stato in grado di tornare al burattino e battere i miei bisogni di base in poche ore. (gestione dei pacchetti, gestione degli utenti, modelli di file di configurazione)

Avvertenze sui moduli: Puppet ha recentemente adottato l'uso di "moduli" che sono forniti da terze parti. Non ho finito per usarli e ho trovato una vasta gamma nella loro qualità. Assicurati di sbirciare sotto le coperte e vedere cosa e come funzionano prima di scavare in queste.


5

Ecco un parere: li abbiamo provati tutti nella nostra compagnia e preferiamo le marionette. Semplicemente perché è facile da usare.


Hai usato un front-end per monitorare l'esecuzione delle marionette?
SyRenity,

1
@syrenity usiamo un nagios check personalizzato che controlla il tempo di $ puppetvardir / state / state.yaml che viene aggiornato solo in caso di successo.
rodjek,

2
Lo chef è così difficile invece? Perché? Quali sono le difficoltà pratiche incontrate avvicinando lo chef a quel burattino?
drAlberT


@NotNow: bello, avrei adottato di sicuro se avrebbe supportato l'integrazione del calzolaio come alternativa al proprio sistema di provisioning ...
drAlberT

1

Io stesso ho visto casi in cui gestire 1000 host con configurazioni diverse, è molto più facile con le marionette. Infatti aziende come Google usano le marionette per la loro distribuzione.

L'architettura di progettazione principale di Puppet è tale che funziona molto meglio di altri se lo configuri nel modo giusto. Ad esempio aggiungendo i tuoi fatti personalizzati per le tue configurazioni personalizzate ecc. I collegamenti sottostanti potrebbero fornire alcune informazioni http://slashroot.in/puppet-tutorial-installing-puppet-master-and-puppet-agent

http://slashroot.in/puppet-tutorial-how-does-puppet-work


0

Questo potrebbe essere cambiato dall'ultima volta che l'ho provato, ma quando stavo provando lo chef su RHEL non c'era modo chiaro per installarlo. Qualcuno aveva creato un repository yum che aveva tutti i pacchetti necessari, ma alla fine ha installato 200 pacchetti dispari. Puppet d'altra parte ha un singolo numero di giri (e un paio di dipendenze).

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.