Ce este Chef? - Un instrument folosit pentru gestionarea configurației



Acest blog pe Ce este Chef este primul blog din seria de bloguri Chef. Vorbește despre gestionarea configurației și despre modul în care Chef realizează acest lucru folosind un caz de utilizare.

Chef este un instrument folosit pentru gestionarea configurației și concurează îndeaproape Marionetă . În acest blog, voi explica Ce este Chef, Managementul configurației și modul în care Chef realizează Managementul configurației cu un caz de utilizare.

Ce este Chef?

Chef este un instrument de automatizare care oferă o modalitate de a defini infrastructura ca cod. Infrastructura ca cod (IAC) înseamnă pur și simplu că gestionarea infrastructurii prin scrierea codului (automatizarea infrastructurii), mai degrabă decât prin utilizarea proceselor manuale. Poate fi denumită și infrastructură programabilă. Chef folosește un limbaj pur-Ruby, specific domeniului (DSL) pentru scrierea configurațiilor sistemului. Mai jos sunt tipurile de automatizare efectuate de Chef, indiferent de dimensiunea infrastructurii:





  • Configurarea infrastructurii
  • Implementarea aplicației
  • Configurările sunt gestionate în întreaga rețea

Ca Marionetă care are o arhitectură Master-Slave chiar și Chef are o arhitectură Client-Server. Dar Chef are o componentă suplimentară numită Stație de lucru. Voi vorbi despre stația de lucru în următorul meu blog. Consultați diagrama de mai jos:

Chef vs Puppet - Ce este Chef - Edureka



În Chef, nodurile sunt actualizate dinamic cu configurațiile din server. Aceasta se numește Trageți configurația ceea ce înseamnă că nu este nevoie să executăm nici măcar o singură comandă pe serverul Chef pentru a împinge configurația pe noduri, nodurile se vor actualiza automat cu configurațiile prezente în server. Următorul meu blog pe Tutorial bucătar va explica în detaliu arhitectura Chef împreună cu toate componentele Chef.

ce este formatul în python

Acum, să ne uităm la motivele din spatele popularității Chef.

Ce este Chef - Chef Cheers Metrics

  • Chef acceptă mai multe platforme precum AIX, RHEL / CentOS, FreeBSD, OS X, Solaris, Microsoft Windows și Ubuntu. Alte platforme client includ Arch Linux, Debian și Fedora.
  • Chef poate fi integrat cu platforme bazate pe cloud, cum ar fi Internap, Amazon EC2, Google Cloud Platform, OpenStack, SoftLayer, Microsoft Azure și Rackspace pentru a furniza și configura automat mașini noi.
  • Chef are un sprijin comunitar activ, inteligent și în creștere rapidă.
  • Datorită maturității și flexibilității bucătarului, acesta este utilizat de giganți precum Mozilla, Expedia, Facebook, HP Public Cloud, Prezi, Xero, Ancestry.com, Rackspace, Get Satisfaction, IGN, Marshall University, Socrata, University of Minnesota, Wharton School de la Universitatea din Pennsylvania, Bonobos, Splunk, Citi, DueDil, Disney și Cheezburger.

Potrivit Phil Dibowitz, inginer producție, Facebook



„Există trei dimensiuni de scară pe care le luăm în considerare în general pentru infrastructură - numărul de servere, volumul diferitelor configurații din sistemele respective și numărul de persoane necesare pentru a menține aceste configurații. Chef a oferit o soluție de automatizare suficient de flexibilă pentru a ne înclina dinamicii la scară, fără a ne cere să ne schimbăm fluxul de lucru.

Fără îndoială, Chef este unul dintre cele mai faimoase instrumente de gestionare a configurației și concurează îndeaproape Marionetă . Dar, înainte de a vă adânci în „Ce este bucătarul”, este corect să explic mai întâi ce este Managementul configurației și de ce este important.

Managementul configurației

Nu vă faceți griji, nu va exista o definiție grea a Managementului configurației în acest blog :)

Să ne înțelegem gestionarea configurației în acest fel - să presupunem că trebuie să implementați un software pe sute de sisteme. Acest software poate fi un sistem de operare sau un cod sau poate fi o actualizare a unui software existent. Puteți face această sarcină manual, dar ce se întâmplă dacă trebuie să terminați această sarcină peste noapte, deoarece mâine ar putea fi o Ziua Big Billion vânzare în companie sau unele M sau Vânzare etc. în care se așteaptă trafic intens. Chiar dacă ați reușit să faceți acest lucru manual, există o mare posibilitate de erori multiple în ziua cea mare. Ce se întâmplă dacă software-ul pe care l-ați actualizat pe sute de sisteme nu funcționează, atunci cum veți reveni la versiunea stabilă anterioară, veți putea face această sarcină manual? AF-curs nu!

Pentru a rezolva această problemă, a fost introdus Managementul configurației. Folosind instrumente de gestionare a configurației, cum ar fi Chef, Puppet, etc., puteți automatiza această sarcină. Tot ce trebuie să faceți este să specificați configurațiile într-un singur server centralizat și, prin urmare, toate nodurile vor fi configurate. Permite accesul la o înregistrare istorică precisă a stării sistemului în scopuri de management de proiect și audit. Deci, în principiu, trebuie să specificăm configurațiile o dată pe serverul central și să le reproducem pe mii de noduri. Managementul configurației ajută la îndeplinirea sarcinilor de mai jos într-un mod foarte structurat și ușor:

  • Determinarea componentelor care trebuie schimbate atunci când cerințele se schimbă.
  • Refacerea unei implementări deoarece cerințele s-au schimbat de la ultima implementare.
  • Revenind la o versiune anterioară a componentei, dacă ați înlocuit-o cu o versiune nouă, dar defectuoasă.
  • Înlocuirea componentei greșite deoarece nu ați putut determina cu exactitate care componentă ar trebui înlocuită.

Consultați blogul meu pe Puppet pentru a afla cum NYSE a economisit milioane de dolari cu ajutorul Configuration Management

În general, există două moduri de a gestiona configurațiile dvs. și anume configurațiile Push și Pull.

  • Configurare extragere: În acest tip de gestionare a configurației, nodurile interogează periodic un server centralizat pentru actualizări. Aceste noduri sunt configurate dinamic, astfel încât, practic, extrag configurații de pe serverul centralizat. Configurarea Pull este utilizată de instrumente precum Chef, Puppet etc.
  • Configurare push: În acest tip de gestionare a configurației, serverul centralizat împinge configurațiile către noduri. Spre deosebire de Pull Configuration, există anumite comenzi care trebuie executate în serverul centralizat pentru a configura nodurile. Configurarea Push este utilizată de instrumente precum Ansible.

Aflați diferite componente ale gestionării configurației în blogul meu Tutorial păpuși

Acum este momentul corect să vă duc în această căutare de a înțelege „Ce este Chef”, explicând modul în care Chef realizează Managementul configurației.

Ce este Chef - Managementul configurației cu Chef

Am înțeles ce este Chef, acum vă voi explica modul în care Chef realizează Managementul configurației cu un caz de utilizare. Gannett este un holding american de media. Este cel mai mare editor de ziare din SUA, măsurat prin tirajul zilnic total.

Fluxul de lucru de implementare tradițional al lui Gannett a fost caracterizat prin transferuri multiple și teste manuale. Să vedem care au fost problemele cu care s-au confruntat cu acest proces:

  • Menținerea unor construcții corecte și repetabile a fost dificilă.
  • Au existat multe eșecuri de construcție și testele se desfășurau adesea în medii greșite.
  • Timpii de implementare și aprovizionare ar putea varia de la câteva zile la câteva săptămâni.
  • Echipa operațională nu a avut acces la cloud sau la mediile de dezvoltare.
  • Fiecare grup a folosit propriul set de instrumente și nu a existat nicio responsabilitate pentru finanțare sau securitate. Nimeni nu știa cât costă de fapt o aplicație. Securitatea nu avea nicio modalitate de a audita stivele de software.

Gannett era pregătit pentru schimbare. Dezvoltatorii au dorit să își implementeze rapid aplicațiile. Operațiunile doreau o infrastructură stabilă în care să poată construi și implementa într-un mod repetabil. Finanțele doreau să știe adevăratul cost al unei aplicații. Securitatea a dorit să vizualizeze și să auditeze toate stivele și să poată urmări modificările.

Gannett a văzut acel cloud ca un serviciu oferind multe avantaje. Dezvoltatorii au avut acces la resurse standardizate. A fost mai ușor de gestionat traficul de vârf datorită modelului de calcul la cerere al cloud-ului, iar transferurile au fost reduse la minimum.

Chef vă permite să aprovizionați și să vă asigurați dinamic infrastructura la cerere pentru a ține pasul cu vârfurile de utilizare și trafic. Permite implementarea și actualizarea mai frecventă a noilor servicii și caracteristici, cu un risc redus de nefuncționare. Cu Chef, puteți profita de toată flexibilitatea și economiile de cost pe care le oferă cloud.

Să vedem care au fost funcțiile îndeplinite de Chef la Gannett:

funcția de membru static în c ++
  • Gannett a început să construiască VPC (Virtual Private Cloud) pentru mediu de dezvoltare care să imite producția. Niciunul dintre instrumentele pe care le foloseau deja nu era adecvat. Dar au descoperit că Chef a funcționat bine cu cloud și ambele Linux și Windows. Au folosit Chef pentru a construi un mediu de dezvoltare care să se potrivească perfect mediului de producție.
  • Pentru ca o aplicație să se mute în VPC, a trebuit să fie aprovizionată și implementată cu Chef.
  • Securitatea ar fi implicată din timp și ar gestiona controalele obligatorii pentru accesul la Chef și pentru menținerea standardelor de securitate a sistemului.

Acum este momentul să înțelegem care au fost rezultatele acestui proces:

  • Implementarea lui Gannett a devenit mai rapidă și mai fiabilă. Provizionarea și implementarea aplicației, care odată au durat săptămâni, după ce a folosit Chef a durat câteva minute.
  • Toate aplicațiile noi au fost implementate pe cloud cu Chef. Aceste aplicații au fost implementate în toate mediile în același mod în care au fost implementate în producție. De asemenea, testarea a avut loc în fiecare mediu, astfel încât implementările au fost fiabile.
  • Toată infrastructura a fost tratată ca un cod, ceea ce crește foarte mult vizibilitatea asupra oricăror modificări care au avut loc. Dezvoltarea, operațiunile, securitatea și finanțele au beneficiat de toate acestea.

După ' Ce este Chef ”Următorul meu blog adică Tutorial bucătar se concentrează pe arhitectura Chef împreună cu componentele sale. De asemenea, am explicat cum să implementez Apache2 folosind Chef.

Dacă ați găsit acest blog pe „ Ce este Chef ”Relevant, verificați de Edureka, o companie de învățare online de încredere, cu o rețea de peste 250.000 de elevi mulțumiți răspândiți pe tot globul. Cursul Edureka DevOps Certification Training ajută cursanții să câștige expertiză în diferite procese și instrumente DevOps, cum ar fi Puppet, Jenkins, Nagios și GIT pentru automatizarea mai multor pași în SDLC.