Recensione: Puppet vs. Chef vs. Ansible vs. Salt

La proliferazione della virtualizzazione unita alla crescente potenza dei server standard del settore e alla disponibilità del cloud computing ha portato a un aumento significativo del numero di server che devono essere gestiti all'interno e all'esterno di un'organizzazione. Dove una volta ci accontentavamo di rack di server fisici a cui potevamo accedere nel data center in fondo al corridoio, ora dobbiamo gestire molti più server che potrebbero essere sparsi in tutto il mondo.

È qui che entrano in gioco l'orchestrazione del data center e gli strumenti di gestione della configurazione. In molti casi, gestiamo gruppi di server identici, eseguendo applicazioni e servizi identici. Sono distribuiti su framework di virtualizzazione all'interno dell'organizzazione o vengono eseguiti come istanze cloud o ospitate in data center remoti. In alcuni casi, potremmo parlare di installazioni di grandi dimensioni che esistono solo per supportare applicazioni molto grandi o installazioni di grandi dimensioni che supportano una miriade di servizi più piccoli. In entrambi i casi, la possibilità di agitare una bacchetta magica e farli piegare tutti alla volontà dell'amministratore non può essere scontata. È l'unico modo per gestire queste grandi e crescenti infrastrutture.

Puppet, Chef, Ansible e Salt sono stati tutti creati con questo obiettivo in mente: rendere molto più semplice la configurazione e la manutenzione di dozzine, centinaia o persino migliaia di server. Questo non vuol dire che i negozi più piccoli non trarranno vantaggio da questi strumenti, poiché l'automazione e l'orchestrazione generalmente semplificano la vita in un'infrastruttura di qualsiasi dimensione.

Ho esaminato ciascuno di questi quattro strumenti in modo approfondito, ne ho esplorato il design e la funzione e ho stabilito che, sebbene alcuni abbiano ottenuto punteggi più alti di altri, c'è un posto in cui ognuno può adattarsi, a seconda degli obiettivi della distribuzione. Qui riassumo le mie scoperte.

Puppet Enterprise

Puppet gode probabilmente della più grande quota di mente dei quattro. È il più completo in termini di azioni, moduli e interfacce utente disponibili. Puppet rappresenta il quadro completo dell'orchestrazione del data center, che comprende quasi tutti i sistemi operativi e offre strumenti approfonditi per i principali sistemi operativi. La configurazione iniziale è relativamente semplice e richiede l'installazione di un server master e di agenti client su ciascun sistema da gestire.

Da lì, la CLI (interfaccia della riga di comando) è semplice, consentendo il download e l'installazione del modulo tramite il puppetcomando. Quindi, sono necessarie modifiche ai file di configurazione per adattare il modulo all'attività richiesta ei client che dovrebbero ricevere le istruzioni lo faranno quando effettueranno il check-in con il master o tramite un push che attiverà immediatamente le modifiche.

Esistono anche moduli che possono fornire e configurare istanze del server cloud e istanze del server virtuale. Tutti i moduli e le configurazioni sono costruiti con un linguaggio specifico di Puppet basato su Ruby, o Ruby stesso, e quindi richiederanno competenze programmatiche oltre alle capacità di amministrazione del sistema.

Scorecard Scalabilità (20,0%) Disponibilità (20,0%) Prestazioni (10,0%) Valore (10,0%) Gestione (20,0%) Interoperabilità (20,0%) Punteggio complessivo (100%)
AnsibleWorks Ansible 1.3 8.0 9.0 9.0 9.0 8.0 7.0 8.2
Enterprise Chef 11.4 9.0 9.0 8.0 9.0 7.0 8.0 8.3
Puppet Enterprise 3.0 9.0 9.0 9.0 9.0 9.0 9.0 9.0
SaltStack Enterprise 0.17.0 9.0 9.0 9.0 9.0 9.0 8.0 8.8