Cos'è lo chef? - Uno strumento utilizzato per la gestione della configurazione

Questo blog su What is Chef è il primo blog della serie di blog Chef. Parla della gestione della configurazione e di come Chef lo raggiunge utilizzando un caso d'uso.

Chef è uno strumento utilizzato per la gestione della configurazione e con cui è in stretta competizione Fantoccio . In questo blog, spiegherò cos'è Chef, Configuration Management e come Chef ottiene la gestione della configurazione con un caso d'uso.

Cos'è lo chef?

Chef è uno strumento di automazione che fornisce un modo per definire l'infrastruttura come codice. Infrastructure as code (IAC) significa semplicemente gestire l'infrastruttura scrivendo codice (Automazione dell'infrastruttura) piuttosto che utilizzando processi manuali. Può anche essere definita infrastruttura programmabile. Chef utilizza un linguaggio specifico del dominio (DSL) Ruby puro per scrivere le configurazioni del sistema. Di seguito sono riportati i tipi di automazione eseguiti da Chef, indipendentemente dalle dimensioni dell'infrastruttura:





  • Configurazione dell'infrastruttura
  • Distribuzione dell'applicazione
  • Le configurazioni sono gestite attraverso la tua rete

Piace Fantoccio che ha un'architettura Master-Slave anche Chef ha un'architettura Client-Server. Ma Chef ha un componente extra chiamato Workstation. Parlerò di workstation nel mio prossimo blog. Fare riferimento allo schema seguente:

Chef vs Puppet - Cos



In Chef, i nodi vengono aggiornati dinamicamente con le configurazioni nel Server. Questo è chiamato Configurazione pull il che significa che non è necessario eseguire nemmeno un singolo comando sul server Chef per spingere la configurazione sui nodi, i nodi si aggiorneranno automaticamente con le configurazioni presenti nel Server. Il mio prossimo blog su Tutorial dello chef spiegherà in dettaglio l'architettura dello Chef insieme a tutti i componenti dello Chef.

Ora, esaminiamo i motivi alla base della popolarità di Chef.

Che cos'è lo chef - Metriche chiave dello chef

  • Chef supporta più piattaforme come AIX, RHEL / CentOS, FreeBSD, OS X, Solaris, Microsoft Windows e Ubuntu. Altre piattaforme client includono Arch Linux, Debian e Fedora.
  • Chef può essere integrato con piattaforme basate su cloud come Internap, Amazon EC2, Google Cloud Platform, OpenStack, SoftLayer, Microsoft Azure e Rackspace per fornire e configurare automaticamente nuove macchine.
  • Chef ha un supporto della comunità attivo, intelligente e in rapida crescita.
  • Grazie alla maturità e flessibilità di Chef, viene utilizzato da giganti come Mozilla, Expedia, Facebook, HP Public Cloud, Prezi, Xero, Ancestry.com, Rackspace, Get Satisfaction, IGN, Marshall University, Socrata, University of Minnesota, Wharton School dell'Università della Pennsylvania, Bonobos, Splunk, Citi, DueDil, Disney e Cheezburger.

Secondo Phil Dibowitz, Production Engineer, Facebook



'Ci sono tre dimensioni di scala che generalmente consideriamo per l'infrastruttura: il numero di server, il volume delle diverse configurazioni su questi sistemi e il numero di persone richieste per mantenere tali configurazioni. Chef ha fornito una soluzione di automazione abbastanza flessibile da adattarsi alle nostre dinamiche di scala senza richiederci di modificare il nostro flusso di lavoro '.

Senza dubbio Chef è uno dei più famosi strumenti di gestione della configurazione e con cui è in stretta competizione Fantoccio . Ma, prima di approfondire 'Che cos'è Chef', è giusto che spieghi prima che cos'è Gestione della configurazione e perché è importante.

Gestione della configurazione

Non preoccuparti, non ci sarà alcuna definizione pesante di Gestione della configurazione in questo blog :)

Cerchiamo di comprendere la gestione della configurazione in questo modo: supponiamo di dover distribuire un software su centinaia di sistemi. Questo software può essere un sistema operativo o un codice oppure può essere un aggiornamento di un software esistente. Puoi eseguire questa attività manualmente, ma cosa succede se devi completare questa attività durante la notte perché domani potrebbe essere un file Big Billion Day vendita in azienda o altro M o Vendita ecc. in cui è previsto un traffico intenso. Anche se tu fossi in grado di farlo manualmente, c'è un'alta possibilità di più errori nel tuo grande giorno. Cosa succede se il software che hai aggiornato su centinaia di sistemi non funziona, come tornerai alla versione stabile precedente, sarai in grado di eseguire questa operazione manualmente? Certo che no!

Per risolvere questo problema, è stata introdotta la gestione della configurazione. Utilizzando strumenti di gestione della configurazione come Chef, Puppet, ecc., Puoi automatizzare questa attività. Tutto quello che devi fare è specificare le configurazioni in un server centralizzato e di conseguenza verranno configurati tutti i nodi. Consente l'accesso a un'accurata registrazione storica dello stato del sistema per la gestione del progetto e per scopi di audit. Quindi, fondamentalmente, dobbiamo specificare le configurazioni una volta sul server centrale e replicarle su migliaia di nodi. La gestione della configurazione aiuta a eseguire le attività seguenti in modo molto semplice e strutturato:

  • Capire quali componenti cambiare quando cambiano i requisiti.
  • Rifare un'implementazione perché i requisiti sono cambiati dall'ultima implementazione.
  • Ripristino di una versione precedente del componente se è stata sostituita con una versione nuova ma difettosa.
  • Sostituzione del componente sbagliato perché non è stato possibile determinare con precisione quale componente doveva essere sostituito.

Fai riferimento al mio blog su Puppet per scoprire come il NYSE ha risparmiato milioni di dollari con l'aiuto di Configuration Management

Esistono sostanzialmente due modi per gestire le configurazioni, ovvero le configurazioni Push e Pull.

  • Configurazione pull: In questo tipo di gestione della configurazione, i nodi interrogano periodicamente un server centralizzato per gli aggiornamenti. Questi nodi sono configurati dinamicamente, quindi in pratica estraggono le configurazioni dal server centralizzato. La configurazione pull viene utilizzata da strumenti come Chef, Puppet ecc.
  • Configurazione push: In questo tipo di gestione della configurazione, il server centralizzato invia le configurazioni ai nodi. A differenza della configurazione pull, ci sono alcuni comandi che devono essere eseguiti nel server centralizzato per configurare i nodi. La configurazione push viene utilizzata da strumenti come Ansible.

Scopri i vari componenti della gestione della configurazione nel mio blog tutorial sui pupazzi

Ora è il momento giusto in cui ti porto avanti in questa ricerca di comprensione di 'Cos'è Chef' spiegando come Chef ottiene la gestione della configurazione.

Cos'è Chef - Gestione della configurazione con Chef

Abbiamo capito cos'è Chef, ora ti spiego come Chef ottiene la gestione della configurazione con un caso d'uso. Gannett è una holding di media americani quotata in borsa. È il più grande editore di giornali statunitensi misurato dalla circolazione giornaliera totale.

Il tradizionale flusso di lavoro di implementazione di Gannett era caratterizzato da più passaggi di consegne e test manuali. Vediamo quali sono stati i problemi che hanno dovuto affrontare con questo processo:

  • Mantenere build accurate e ripetibili era difficile.
  • Si sono verificati molti errori di compilazione e spesso i test venivano eseguiti negli ambienti sbagliati.
  • I tempi di distribuzione e provisioning possono variare da pochi giorni a diverse settimane.
  • Il team operativo non aveva accesso al cloud o agli ambienti di sviluppo.
  • Ogni gruppo utilizzava il proprio set di strumenti e non c'era alcuna responsabilità nei confronti della finanza o della sicurezza. Nessuno sapeva quanto costasse effettivamente un'applicazione. La sicurezza non aveva modo di controllare gli stack di software.

Gannett era pronto per il cambiamento. Gli sviluppatori volevano distribuire rapidamente le loro applicazioni. Le operazioni volevano un'infrastruttura stabile in cui poter costruire e distribuire in modo ripetibile. Finance voleva conoscere il costo reale di un'applicazione. La sicurezza voleva visualizzare e controllare tutti gli stack ed essere in grado di tenere traccia delle modifiche.

Gannett vedeva che il cloud come servizio offriva molti vantaggi. Gli sviluppatori avevano accesso a risorse standardizzate. È stato più facile gestire i picchi di traffico grazie al modello di calcolo su richiesta del cloud e gli handoff sono stati ridotti al minimo.

Chef ti consente di eseguire il provisioning e il de-provisioning dinamicamente della tua infrastruttura su richiesta per stare al passo con i picchi di utilizzo e traffico. Consente di implementare e aggiornare nuovi servizi e funzionalità più frequentemente, con un rischio minimo di inattività. Con Chef puoi sfruttare tutta la flessibilità e il risparmio sui costi offerti dal cloud.

Vediamo quali erano le funzioni svolte dallo Chef di Gannett:

è un master considerato post laurea
  • Gannett ha iniziato a creare VPC (Virtual Private Cloud) per un ambiente di sviluppo che imitasse la produzione. Nessuno degli strumenti che stavano già utilizzando era appropriato. Ma hanno scoperto che Chef funzionava bene con il cloud e l'ambiente Linux e Windows. Hanno utilizzato Chef per creare un ambiente di sviluppo che si adattasse perfettamente all'ambiente di produzione.
  • Affinché un'applicazione si spostasse nel VPC, doveva essere fornita e distribuita con Chef.
  • La sicurezza sarebbe stata coinvolta nella fase iniziale e avrebbe gestito i controlli obbligatori per l'accesso a Chef e per mantenere gli standard di sicurezza del sistema.

Ora è il momento di capire quali sono stati i risultati di questo processo:

  • L'implementazione di Gannett è diventata più rapida e affidabile. Il provisioning e la distribuzione delle applicazioni, che una volta richiedevano settimane, dopo aver utilizzato Chef ci volevano pochi minuti.
  • Tutte le nuove applicazioni sono state distribuite sul cloud con Chef. Queste applicazioni sono state distribuite a tutti gli ambienti nello stesso modo in cui sono state distribuite alla produzione. Inoltre, i test sono stati eseguiti in ogni ambiente, in modo che le distribuzioni fossero affidabili.
  • Tutta l'infrastruttura è stata trattata come codice, il che aumenta notevolmente la visibilità di eventuali modifiche apportate. Ne hanno beneficiato sviluppo, operazioni, sicurezza e finanza.

Dopo ' Cos'è lo chef 'Il mio prossimo blog, ad es. Tutorial dello chef si concentra sull'architettura di Chef insieme ai suoi componenti. Ho anche spiegato come distribuire Apache2 utilizzando Chef.

Se hai trovato questo blog su ' Cos'è lo chef 'Rilevante, controlla il da Edureka, una società di formazione online affidabile con una rete di oltre 250.000 studenti soddisfatti sparsi in tutto il mondo. Il corso di formazione sulla certificazione DevOps Edureka aiuta gli studenti ad acquisire esperienza in vari processi e strumenti DevOps come Puppet, Jenkins, Nagios e GIT per l'automazione di più passaggi in SDLC.