Programmering

Gjennomgang: Puppet vs. Chef vs. Ansible vs. Salt

Spredningen av virtualisering kombinert med den økende kraften til industristandardtjenere og tilgjengeligheten av cloud computing har ført til en betydelig økning i antall servere som trenger å administreres innen og uten en organisasjon. Der vi en gang nøyd med stativer med fysiske servere som vi kunne få tilgang til i datasenteret nede i hallen, må vi nå administrere mange flere servere som kan spres over hele kloden.

Det er her orkestrering og konfigurasjonsstyringsverktøy for datasenter spiller inn. I mange tilfeller administrerer vi grupper med identiske servere, som kjører identiske applikasjoner og tjenester. De distribueres i virtualiseringsrammer i organisasjonen, eller de kjører som sky- eller vertforekomster i eksterne datasentre. I noen tilfeller kan det være snakk om store installasjoner som bare eksisterer for å støtte veldig store applikasjoner eller store installasjoner som støtter utallige mindre tjenester. I begge tilfeller kan ikke muligheten til å vifte med en tryllestav og få dem alle til å bøye seg til administratorens vilje bli diskontert. Det er den eneste måten å administrere disse store og voksende infrastrukturene på.

Puppet, Chef, Ansible og Salt ble alle bygget med det samme målet i tankene: å gjøre det mye enklere å konfigurere og vedlikeholde dusinvis, hundrevis eller til og med tusenvis av servere. Det er ikke å si at mindre butikker ikke vil ha nytte av disse verktøyene, da automatisering og orkestrering generelt gjør livet lettere i en infrastruktur av hvilken som helst størrelse.

Jeg så på hvert av disse fire verktøyene i dybden, utforsket design og funksjon, og bestemte meg for at mens noen scoret høyere enn andre, er det et sted for hver å passe inn, avhengig av målene for distribusjonen. Her oppsummerer jeg funnene mine.

Puppet Enterprise

Puppet har uten tvil den største sinnsandelen av de fire. Det er det mest komplette når det gjelder tilgjengelige handlinger, moduler og brukergrensesnitt. Puppet representerer hele bildet av orkestrering av datasenter, som omfatter omtrent hvert operativsystem og tilbyr dype verktøy for de viktigste operativsystemene. Første oppsett er relativt enkelt, og krever installasjon av en masterserver og klientagenter på hvert system som skal administreres.

Derfra er CLI (kommandolinjegrensesnitt) grei, slik at modulnedlastinger og installasjon via marionett kommando. Deretter kreves det endringer i konfigurasjonsfilene for å skreddersy modulen til den nødvendige oppgaven, og klientene som skal motta instruksjonene vil gjøre det når de sjekker inn med mesteren eller via et trykk som vil utløse endringene umiddelbart.

Det er også moduler som kan klargjøre og konfigurere forekomster av skyserver og virtuelle serverforekomster. Alle moduler og konfigurasjoner er bygget med et Puppet-spesifikt språk basert på Ruby, eller Ruby selv, og vil derfor kreve programmatisk kompetanse i tillegg til systemadministrasjonsferdigheter.

PoengkortSkalerbarhet (20.0%) Tilgjengelighet (20.0%) Opptreden (10.0%) Verdi (10.0%) Ledelse (20.0%) Interoperabilitet (20.0%) Total poengsum (100%)
AnsibleWorks Ansible 1.38.09.09.09.08.07.0 8.2
Enterprise Chef 11.49.09.08.09.07.08.0 8.3
Puppet Enterprise 3.09.09.09.09.09.09.0 9.0
SaltStack Enterprise 0.17.09.09.09.09.09.08.0 8.8
$config[zx-auto] not found$config[zx-overlay] not found