La oss automatisere IT-infrastrukturen.
Tidligere var det vanlig at installasjon, konfigurering og vedlikehold av infrastruktur ble gjort manuelt. Flere personer var involvert, og hele prosessen var preget av manuell håndtering. Dette medførte stor risiko for menneskelige feil, som igjen resulterte i dårligere tilgjengelighet, sikkerhet og ytelse for applikasjonene.
For ikke å glemme de samlede kostnadene knyttet til infrastrukturen.
Men takket være moderne teknologi og tilnærminger som DevOps, er ikke dette lenger et problem.
Nå finnes det flere verktøy for å utføre oppgaver knyttet til infrastruktur, som opprettelse, distribusjon og administrasjon. Ved å ta i bruk den rette programvaren, kan man automatisere hele infrastrukturen med minimal menneskelig involvering. Det er ikke bare snakk om enkle operasjoner, men også komplekse oppgaver som klargjøring av infrastruktur og hele applikasjonsoppsett.
Infrastrukturautomatisering handler om å distribuere maskinvare-/programvarekomponenter, operativsystemer, nettverkskomponenter og datalagringskomponenter ved hjelp av IaC (Infrastructure as Code). Menneskelig inngripen er i hovedsak begrenset til å skrive koden som inneholder alle detaljene som er nødvendige for å skape og distribuere de ønskede komponentene.
Her er en oversikt over de mest brukte verktøyene for infrastrukturautomatisering i bransjen:
Ansible
Ansible er en agentløs, åpen kildekode IT-motor for automatisering av applikasjonsdistribusjon, konfigurasjonsadministrasjon og IT-orkestrering. Den ble utviklet i 2012 og er skrevet i det populære programmeringsspråket Python. Ansible bruker «playbooks» for å implementere automatisering. Disse «playbookene» inneholder alle konfigurasjonene i et lettleselig språk, YAML.
Dersom du er nybegynner, kan du se denne introduksjonen til Ansible.
Ansible har en agentløs arkitektur, noe som innebærer at du ikke trenger å installere programvare på hver enkelt server. Den bruker en push-modell der du har et lokalt system med alle nødvendige konfigurasjoner som «pushes» til målserverne.
Funksjoner:
- Automatisering med et enkelt, lettlest språk
- Agentløs arkitektur; servere kan kobles til via enkel SSH.
- Push-modell: konfigurasjonene overføres fra en lokal maskin til serveren.
- Bygget på Python og støtter mange Python-biblioteker og funksjoner.
- En samling Ansible-moduler vedlikeholdes av Red Hat.
For bedrifter tilbyr Red Hat Ansible Tower.
Kompetanse i Ansible er verdifull for systemadministratorer, utviklere og infrastruktur-ingeniører. Hvis du trenger en rask start, sjekk ut denne Udemy-kurset.
SaltStack
SaltStack tilbyr rask infrastrukturstyring, konfigurasjonsadministrasjon og orkestrering. Sammenlignet med verktøy som Chef og Puppet, er SaltStacks hastighet en betydelig fordel. SaltStack ble lansert i 2011, og er som Ansible, skrevet i Python.
SaltStack bruker en master-slave-arkitektur. Salt Master er master-demonen som kontrollerer alt, mens Salt Minions er slave-demonene som er installert på hvert administrert system. Salt Master sender konfigurasjon og kommandoer til Salt Minions, som utfører disse på sine maskiner for å realisere IT-automatiseringen.
SaltStack-funksjoner:
- Designet for skala og hastighet; kan håndtere opptil 10 000 minions per master.
- Enkel å sette opp med en enkelt ekstern utførelsesarkitektur.
- Støtter alle typer språk i konfigurasjonsfilene.
- Kan utføre kommandoer parallelt på eksterne systemer, noe som gir rask automatisering.
- Tilbyr et enkelt programmeringsgrensesnitt ved hjelp av Python APIer.
Chef
En hovedårsak til produksjonsproblemer er inkonsekvent applikasjon eller infrastrukturkonfigurasjon. Dette er et vanlig problem som Chef har som mål å løse.
Chef er et verktøy for konfigurasjonsadministrasjon som brukes til å styre infrastruktur. Det er skrevet i Ruby, og ble lansert i 2009 av OpsCode.
Chef Infrastructure Management sikrer konsistente konfigurasjoner i alle miljøer i infrastrukturen. Det tilbyr verktøy som Chef Infra, Chef Automate, Chef Enterprise og Chef Community for infrastrukturadministrasjon.
Chef Infrastructure Management funksjoner:
- Konfigurasjoner skrives i YAML, som er lett å lære.
- Inkluderer verktøy for utvikling, testing og avhengighetsoppløsning.
- Enkle samarbeidsfunksjoner i enterprise-versjonen for å håndtere komplekse miljøer.
- Støtter integrasjon med hundrevis av DevOps-verktøy som GitHub, Jenkins, Azure og Terraform.
Bolt
Bolt er et agentløst orkestreringsverktøy for IT-automatisering, utviklet som et åpen kildekode-prosjekt av Puppet.
Med Bolt kan du automatisere manuelle oppgaver som distribusjon av applikasjoner, feilsøking av servere, omstart av tjenester og oppdatering av systemer.
Siden Bolt er agentløs, trenger du ikke installere noen agentprogramvare på de eksterne målsystemene. Bolt installeres på ditt lokale system, og du kan koble til målsystemene via SSH eller WinRM.
Boltfunksjoner:
- Bolt-planer (en kombinasjon av kommandoer, skript og oppgaver) skrives i YAML.
- Mange eksisterende planer og arbeidsflyter er tilgjengelige fra Puppet Forge.
- Enkel overgang fra Bolt til Puppet Enterprise for bedre skalerbarhet.
Terraform
Terraform er et åpen kildekode-verktøy for klargjøring av infrastruktur ved hjelp av infrastruktur som kode (IaC). Det er utviklet av Hashicorp og ble lansert i 2014.
Se denne introduksjonen til Terraform for nybegynnere.
Terraform fungerer godt med skyleverandører som AWS, Azure, GCP og Alibaba. Med Terraform kan du enkelt distribuere og administrere infrastruktur i disse skyplattformene. Terraform er populært blant mange organisasjoner for administrering av Kubernetes-klynger.
Terraform-fordeler:
- Håndterer konfigurasjon av uforanderlig infrastruktur.
- Tilbyr fullstendig orkestrering av infrastruktur.
- Bruker HashiCorp Configuration Language (HCL), som er lettlest og enkel å lære.
- Tilbyr moduler og leverandører for mange verktøy og teknologier gjennom terraform registry.
Når du tar det i bruk, bør du følge disse beste praksis for Terraform.
Konklusjon
Dette er min oversikt over de mest populære løsningene for infrastrukturautomatisering, som er egnet for mellomstore og store organisasjoner. Hvis du ønsker å automatisere infrastruktur og de repeterende oppgavene som følger med, er dette et godt tidspunkt å velge en av løsningene nevnt over og sette i gang med automatiseringen.