Perché usare Chef per l'automazione e l'orchestrazione

Chef è stato uno strumento open source leader per l'automazione del provisioning e della configurazione dei server per la maggior parte di un decennio. Negli ultimi anni l'azienda ha aggiunto al portafoglio InSpec e Habitat, progetti open source che automatizzano rispettivamente i test di conformità alle policy e l'implementazione e la configurazione delle applicazioni. L'offerta commerciale di punta dell'azienda, Chef Automate, riunisce tutti questi pezzi.  

Chef Automate offre una suite di funzionalità aziendali per flusso di lavoro, visibilità dei nodi e conformità e si integra con i prodotti open source Chef, InSpec e Habitat. Chef Automate viene fornito con servizi di supporto per l'intera piattaforma, inclusi i componenti open source. Oltre a fornire viste sugli eventi operativi, di conformità e del flusso di lavoro, include una pipeline per la fornitura continua di infrastruttura e applicazioni.

Componenti e flusso di lavoro dello chef

La workstation Chef DK (kit di sviluppo) è il luogo in cui gli utenti interagiscono con Chef. Sulla workstation gli utenti creano e testano libri di cucina utilizzando strumenti come Test Kitchen (per generare VM di test) e interagiscono con il server Chef utilizzando gli strumenti della riga di comando. Ad esempio, Knife è uno strumento da riga di comando che fornisce un'interfaccia tra un repository Chef locale e il server Chef. Knife aiuta gli utenti a gestire nodi, libri di cucina, sacchi di dati e l'installazione (bootstrap) del client Chef sui nodi, tra le altre attività. La maggior parte dei file in un ricettario di Chef sono scritti in Ruby, sebbene alcune configurazioni siano scritte in YAML.

Chef

Il server Chef open source funge da hub per i dati di configurazione. Il server Chef memorizza i libri di cucina, i criteri applicati ai nodi e i metadati che descrivono ogni nodo registrato gestito da Chef. I nodi utilizzano il client Chef per chiedere al server Chef i dettagli di configurazione, come ricette, modelli e distribuzioni di file. In altre parole, Chef è per impostazione predefinita un sistema basato su pull ; ha anche funzionalità push.

Chef Supermarket è il luogo in cui vengono condivisi e gestiti i libri di cucina della comunità. La console di gestione di Chef, i rapporti di esecuzione chef-client (agente), le configurazioni ad alta disponibilità e la replica del server Chef sono disponibili come parte di Chef Automate.

InSpec è un framework gratuito e open source per testare e controllare le applicazioni e l'infrastruttura. È il fondamento della parte di conformità di Chef Automate. Si integra con Puppet, Ansible e Chef.

Habitat è una piattaforma open source, cloud native per l'automazione delle applicazioni e la gestione del ciclo di vita delle applicazioni, progettata dal punto di vista dell'applicazione piuttosto che dal punto di vista dell'azienda o della piattaforma.

Chef

Chef per sviluppatori, conformità e cloud

Chef Automate aiuta a fornire e distribuire le app più velocemente, più frequentemente e in modo più affidabile, in altre parole supporta devops. Inoltre, automatizza la conformità riducendo la deriva del server, identificando le violazioni della conformità e risolvendo automaticamente eventuali problemi. Chef Compliance, basato sull'open source InSpec, era un prodotto separato, ma ora fa parte di Chef Automate.

La migrazione al cloud è uno dei casi d'uso interessanti per Chef. Ciò include AWS, Microsoft Azure, Google Cloud Platform, distribuzioni miste e cloud ibridi. Un altro importante insieme di casi d'uso è garantire la conformità a PCI, HIPAA e altre normative sulla sicurezza e sulla privacy.

Come mostrato nella figura seguente, uno dei punti di forza di Chef è che funziona con quello che hai. Ciò include i principali repository basati su Git, sistemi CI / CD, sistemi operativi, cloud e sistemi di orchestrazione dei contenitori.

Chef

Installazione e configurazione dello chef

In generale, un'installazione di Chef Automate consiste in un minimo di due server: un server Chef (almeno quattro vCPU e 8 GB di RAM), che contiene i libri di cucina ei dati utilizzati per creare, testare e distribuire i componenti all'interno di Chef Automate e infrastruttura e un server Chef Automate (almeno quattro vCPU e 16 GB di RAM), che coordina il processo di spostamento di una modifica attraverso la pipeline del flusso di lavoro, oltre a fornire approfondimenti e visualizzazioni sul cluster Chef Automate.

Sono disponibili due server opzionali, un server dei processi push, che viene utilizzato per creare nodi dell'infrastruttura per i test di distribuzione ed è anche necessario se si utilizzano nodi di compilazione basati sui processi push come parte del processo di test e distribuzione, e runner o nodi di compilazione (all'indirizzo almeno due vCPU e 4 GB di RAM), che eseguono il lavoro di esecuzione di build, test e distribuzioni da Chef Automate e sono necessari solo quando si utilizzano le funzionalità del flusso di lavoro di Chef Automate.

Si inizia installando il server Chef, autonomo o in una configurazione ad alta disponibilità. Quindi creare un utente e un'organizzazione da utilizzare con Chef Automate, utilizzando i chef-server-ctlcomandi. Facoltativamente, scaricare il codice e creare un server dei processi push, quindi riconfigurare il server Chef, sempre utilizzando i chef-server-ctlcomandi.

A questo punto puoi installare e configurare Chef Automate utilizzando rpmo dpkg. Installa la tua licenza e utilizza i automate-ctlcomandi per eseguire un controllo pre-volo e il processo di configurazione. La configurazione ti chiederà di creare un corridore per il flusso di lavoro. Infine, puoi configurare i tuoi nodi per la raccolta dei dati.

AWS OpsWorks per Chef Automate semplifica notevolmente il processo di installazione, supponendo che tu voglia avere i tuoi server Automate e Chef su AWS: puoi distribuirli in 10 minuti o meno. Puoi comunque gestire i tuoi nodi locali da OpsWorks, anche se OpsWorks brilla quando la maggior parte dei tuoi nodi si trova su AWS, in quanto può registrare automaticamente i nodi in gruppi con scalabilità automatica.

C'è un discreto tutorial su AWS per insegnarti Chef, Chef Automate e OpsWorks, in cui configurerai tutto ed eseguirai le attività di automazione passo dopo passo. Il tutorial richiede un po 'più di tempo rispetto a una distribuzione di base, ma vale la pena farlo se sei nuovo in Chef.

Puoi anche installare Chef Automate nelle VM da AWS Marketplace. Inoltre, Chef ha integrazioni con Google Cloud Platform, Microsoft Azure Marketplace e VMware.

Forte di devops e conformità, con un ampio supporto della piattaforma e un'ampia raccolta di moduli, Chef Automate fornisce una suite completa di funzionalità aziendali per automatizzare la consegna e il funzionamento continuo dell'infrastruttura ibrida. È probabile che soddisfi la maggior parte o tutte le tue esigenze di automazione IT.

-

Costo: progetti open source (Chef, InSpec, Habitat, ecc.), Gratuiti. Chef Automate, $ 137 / nodo / anno con supporto standard (12x5). AWS OpsWorks con Chef Automate, $ 0,0155 / nodo / ora. Chef ospitato, $ 72 / nodo / anno.

Piattaforma: Chef Automate Server richiede un sistema operativo RHEL, SUSE o Ubuntu. Oltre a questi, Chef Automate Job Runner è supportato su MacOS.

Chef Automate è compatibile con i sistemi operativi VMware, CoreOS, Docker, Windows e Linux; i cloud Google, AWS, Azure, OpenStack e VMware; i sistemi di orchestrazione dei container Kubernetes, Docker Swarm e Mesosphere. Un servizio Chef Automate basato su cloud è disponibile come AWS OpsWorks per Chef Automate. Dovresti passare alla console di Automate con Google Chrome; IE non è specificamente supportato.

Chef DK (kit di sviluppo) è supportato commercialmente su MacOS 10.11, RHEL 6, SUSE 11, Ubuntu LTS, Windows 10 o Windows Server 2012 e versioni successive di tali sistemi operativi. Il supporto della comunità è disponibile per Debian 7 e Scientific Linux 6 e versioni successive.