Wat is chef? - Een tool die wordt gebruikt voor configuratiebeheer



Deze blog over What is Chef is de eerste blog van de Chef-blogserie. Het gaat over configuratiemanagement en hoe Chef dat bereikt met behulp van een use-case.

Chef is een tool die wordt gebruikt voor Configuratiemanagement en concurreert hier nauw mee Marionet . In deze blog leg ik uit wat Chef is, Configuratiebeheer en hoe Chef Configuratiebeheer realiseert met een use-case.

Wat is chef?

Chef is een automatiseringstool die een manier biedt om infrastructuur als code te definiëren. Infrastructure as code (IAC) betekent simpelweg dat infrastructuur beheren door code te schrijven (automatisering van infrastructuur) in plaats van handmatige processen te gebruiken. Het kan ook worden aangeduid als programmeerbare infrastructuur. Chef gebruikt een pure Ruby, domeinspecifieke taal (DSL) voor het schrijven van systeemconfiguraties. Hieronder staan ​​de soorten automatisering die door Chef worden uitgevoerd, ongeacht de grootte van de infrastructuur:





  • Infrastructuurconfiguratie
  • Implementatie van applicaties
  • Configuraties worden beheerd over uw netwerk

Leuk vinden Marionet die een Master-Slave-architectuur heeft, zelfs Chef heeft een Client-Server-architectuur. Maar Chef heeft een extra component genaamd Workstation. Ik zal het hebben over werkstation in mijn volgende blog. Raadpleeg het onderstaande diagram:

Chef vs Puppet - Wat is Chef - Edureka



In Chef worden knooppunten dynamisch bijgewerkt met de configuraties in de server. Dit heet Pull-configuratie wat betekent dat we geen enkele opdracht op de Chef-server hoeven uit te voeren om de configuratie op de knooppunten te pushen, knooppunten zullen zichzelf automatisch updaten met de configuraties die aanwezig zijn in de Server. Mijn volgende blog op Tutorial van de chef legt de Chef-architectuur samen met alle Chef-componenten in detail uit.

Laten we nu eens kijken naar de redenen achter de populariteit van Chef.

hoe u logboekbestanden maakt in java

Wat is Chef - Chef Key Metrics

  • Chef ondersteunt meerdere platforms zoals AIX, RHEL / CentOS, FreeBSD, OS X, Solaris, Microsoft Windows en Ubuntu. Andere clientplatforms zijn onder meer Arch Linux, Debian en Fedora.
  • Chef kan worden geïntegreerd met cloudgebaseerde platforms zoals Internap, Amazon EC2, Google Cloud Platform, OpenStack, SoftLayer, Microsoft Azure en Rackspace om automatisch nieuwe machines in te richten en te configureren.
  • Chef heeft een actieve, slimme en snelgroeiende gemeenschapsondersteuning.
  • Vanwege de volwassenheid en flexibiliteit van Chef, wordt het gebruikt door giganten zoals Mozilla, Expedia, Facebook, HP Public Cloud, Prezi, Xero, Ancestry.com, Rackspace, Get Satisfaction, IGN, Marshall University, Socrata, University of Minnesota, Wharton School van de University of Pennsylvania, Bonobos, Splunk, Citi, DueDil, Disney en Cheezburger.

Volgens Phil Dibowitz, Production Engineer, Facebook



“Er zijn drie schaaldimensies waar we over het algemeen naar kijken voor infrastructuur: het aantal servers, het aantal verschillende configuraties van die systemen en het aantal mensen dat nodig is om die configuraties te onderhouden. Chef bood een automatiseringsoplossing die flexibel genoeg was om mee te doen aan onze schaaldynamiek zonder dat we onze workflow moesten veranderen. '

Chef is zonder twijfel een van de bekendste tools voor configuratiebeheer en concurreert er nauw mee Marionet . Maar voordat ik diep in 'What is Chef' duik, is het niet meer dan redelijk dat ik eerst uitleg wat configuratiemanagement is en waarom het belangrijk is.

Configuratiebeheer

Maakt u zich geen zorgen, er zal in deze blog geen zware definitie van configuratiebeheer staan ​​:)

Laten we Configuratiebeheer op deze manier begrijpen - stel dat u software moet implementeren op honderden systemen. Deze software kan een besturingssysteem of een code zijn, of het kan een update zijn van bestaande software. U kunt deze taak handmatig uitvoeren, maar wat gebeurt er als u deze taak van de ene op de andere dag moet voltooien, want morgen kan een Grote miljard dag verkoop in het bedrijf of zoiets M. of Uitverkoop etc. waarin zwaar verkeer wordt verwacht. Zelfs als u dit handmatig zou kunnen doen, is er een grote kans op meerdere fouten op uw grote dag. Wat als de software die u op honderden systemen hebt bijgewerkt niet werkt, hoe gaat u dan terug naar de vorige stabiele versie, kunt u deze taak handmatig uitvoeren? AF-natuurlijk niet!

hoe een programma in java te stoppen

Om dit probleem op te lossen is Configuratiebeheer geïntroduceerd. Door configuratiebeheertools zoals Chef, Puppet, enz. Te gebruiken, kunt u deze taak automatiseren. Het enige dat u hoeft te doen, is de configuraties op één gecentraliseerde server te specificeren en dienovereenkomstig zullen alle knooppunten worden geconfigureerd. Het biedt toegang tot een nauwkeurig historisch record van de systeemstatus voor projectbeheer en auditdoeleinden. Dus eigenlijk moeten we de configuraties één keer specificeren op de centrale server en die repliceren op duizenden knooppunten. Configuratiebeheer helpt bij het uitvoeren van de onderstaande taken op een zeer gestructureerde en gemakkelijke manier:

  • Uitzoeken welke componenten moeten worden gewijzigd als de vereisten veranderen.
  • Een implementatie opnieuw uitvoeren omdat de vereisten zijn gewijzigd sinds de laatste implementatie.
  • Terugkeren naar een eerdere versie van de component als u deze hebt vervangen door een nieuwe maar gebrekkige versie.
  • Het verkeerde onderdeel vervangen omdat u niet nauwkeurig kon bepalen welk onderdeel moest worden vervangen.

Raadpleeg mijn blog over Puppet om te zien hoe NYSE miljoenen dollars heeft bespaard met behulp van Configuration Management

Er zijn grofweg twee manieren om uw configuraties te beheren, namelijk Push- en Pull-configuraties.

  • Pull-configuratie: Bij dit type configuratiebeheer vragen de knooppunten periodiek een gecentraliseerde server om updates. Deze knooppunten zijn dynamisch geconfigureerd, dus in feite trekken ze configuraties van de gecentraliseerde server. Pull-configuratie wordt gebruikt door tools zoals Chef, Puppet etc.
  • Push-configuratie: Bij dit type configuratiebeheer duwt de gecentraliseerde server de configuraties naar de knooppunten. In tegenstelling tot Pull-configuratie, zijn er bepaalde opdrachten die op de gecentraliseerde server moeten worden uitgevoerd om de knooppunten te configureren. Push-configuratie wordt gebruikt door tools zoals Ansible.

Leer verschillende componenten van Configuratiebeheer in mijn Puppet Tutorial Blog

Dit is het juiste moment. Ik neem u mee in deze zoektocht naar het begrijpen van “Wat is chef” door uit te leggen hoe Chef configuratiemanagement bereikt.

Wat is Chef - Configuratiebeheer met Chef

We hebben begrepen wat Chef is, nu zal ik u uitleggen hoe Chef configuratiemanagement bereikt met een use-case. Gannett is een beursgenoteerde Amerikaanse mediaholding. Het is de grootste Amerikaanse krantenuitgever, gemeten naar de totale dagelijkse oplage.

De traditionele implementatieworkflow van Gannett werd gekenmerkt door meerdere overdrachten en handmatige tests. Laten we eens kijken wat de problemen waren waarmee ze tijdens dit proces werden geconfronteerd:

  • Het was moeilijk om nauwkeurige, herhaalbare builds te behouden.
  • Er waren veel build-fouten en tests werden vaak in de verkeerde omgevingen uitgevoerd.
  • Implementatie- en leveringstijden kunnen variëren van enkele dagen tot enkele weken.
  • Het operatieteam had geen toegang tot de cloud of ontwikkelomgevingen.
  • Elke groep gebruikte zijn eigen toolset en er was geen verantwoording voor financiën of zekerheid. Niemand wist hoeveel een applicatie werkelijk kostte. Beveiliging had geen manier om de softwarestapels te controleren.

Gannett was klaar voor de verandering. Ontwikkelaars wilden hun applicaties snel implementeren. Operations wilde een stabiele infrastructuur waar ze op een herhaalbare manier konden bouwen en implementeren. Finance wilde de werkelijke kosten van een applicatie weten. Beveiliging wilde alle stapels bekijken en controleren en wijzigingen kunnen volgen.

Gannett zag dat cloud as a service veel voordelen bood. Ontwikkelaars hadden toegang tot gestandaardiseerde bronnen. Het was gemakkelijker om piekerig verkeer af te handelen vanwege het compute-on-demand-model van de cloud, en overdrachten werden tot een minimum beperkt.

Met Chef kunt u uw infrastructuur dynamisch in- en uitschakelen op aanvraag om pieken in gebruik en verkeer bij te houden. Hierdoor kunnen nieuwe services en functies vaker worden geïmplementeerd en bijgewerkt, met weinig risico op downtime. Met Chef kunt u profiteren van alle flexibiliteit en kostenbesparingen die de cloud biedt.

Laten we eens kijken wat de functies waren van Chef bij Gannett:

  • Gannett begon met het bouwen van VPC (Virtual Private Cloud) voor een ontwikkelomgeving die de productie zou nabootsen. Geen van de tools die ze al gebruikten, was geschikt. Maar ze ontdekten dat Chef goed werkte met de cloud en zowel de Linux- als de Windows-omgeving. Ze gebruikten Chef om een ​​ontwikkelomgeving te bouwen die perfect bij de productieomgeving paste.
  • Om een ​​applicatie naar de VPC te verplaatsen, moest deze worden geleverd en geïmplementeerd met Chef.
  • Beveiliging zou in een vroeg stadium worden betrokken en zou de verplichte controles voor toegang tot Chef en voor het handhaven van systeembeveiligingsnormen beheren.

Dit is het moment om te begrijpen wat de resultaten van dit proces waren:

verkrijg lengte van array js
  • De implementatie van Gannett werd sneller en betrouwbaarder. Het inrichten en uitrollen van applicaties duurde eens weken, na het gebruik van Chef duurde het minuten.
  • Alle nieuwe applicaties werden met Chef in de cloud geïmplementeerd. Deze applicaties werden op dezelfde manier in alle omgevingen geïmplementeerd als in de productie. Ook werd er in elke omgeving getest, zodat de implementaties betrouwbaar waren.
  • Alle infrastructuur werd behandeld als code, wat de zichtbaarheid van eventuele wijzigingen aanzienlijk vergroot. Development, Operations, Security en Finance profiteerden hiervan allemaal.

Na ' Wat is Chef 'Mijn volgende blog, d.w.z. Tutorial van de chef richt zich op de architectuur van Chef samen met zijn componenten. Ik heb ook uitgelegd hoe je Apache2 implementeert met Chef.

Als je deze blog hebt gevonden op ' Wat is Chef ' relevant, bekijk de door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De Edureka DevOps Certification Training-cursus helpt leerlingen expertise op te doen in verschillende DevOps-processen en tools zoals Puppet, Jenkins, Nagios en GIT voor het automatiseren van meerdere stappen in SDLC.