Atea Forklarer: Containerteknologi og Kubernetes
Norske selskaper digitaliserer prosesser, bruker moderne applikasjoner og utvikler digitale tjenester. For å oppnå ønsket fart og smidighet kan flere ha behov for å distribuere og kjøre applikasjoner på en ny måte. Løsningsarkitekt Ronny Talberg forklarer hvorfor containerteknologi er et godt valg for mange.
Ronny Talberg, seniorkonsulent og løsningsarkitekt i Atea, mener det er viktig at selskaper har evnen til å reagere på endringer og raskt tilpasse digitale systemer uten lange leveringstider.
– Da kan det være nødvendig å gjøre noe med måten man jobber og organiserer seg på. Ikke minst er det viktig å tilrettelegge for å teste og tilgjengeliggjøre endringene raskt og trygt, sier han og fortsetter:
– Containerteknologi gjør dette mulig.
Hva er containerteknologi?
Kort fortalt: En container er en softwarepakke som består av en applikasjon og alle dens avhengigheter. Det betyr at containeren, og dermed applikasjonen, kan kjøres direkte uten at man først må gjennom en installasjonsprosedyre.
– Containere kjøres også adskilt fra hverandre slik at man kan kjøre flere på samme system uten at de kommer i konflikt med hverandre. Det kan være flere containere med samme applikasjon eller forskjellige applikasjoner og avhengigheter, sier løsningsarkitekten.
Det å kjøre separerte applikasjoner er i prinsippet løst med virtuelle maskiner, men det er store forskjeller mellom containere og virtuelle maskiner, forklarer han:
– Containere kjøres på eksisterende (virtuelle) maskiner og inneholder som sagt kun applikasjonen og dens avhengigheter, ikke selve operativsystemet. Det betyr at en container tar mindre plass og er lettere å distribuere.
– Du slipper å vente på oppstart av maskinen. Applikasjonen starter når containeren startes, sier Talberg.
En virtuell maskin er, kort fortalt, en datafil eller avbildning som oppfører seg som en fysisk maskin.
Raskere og mer bærekraftig
Containere krever mindre ressurser enn virtuelle maskiner for å kjøre applikasjoner, noe som er en fordel både for lommeboka og miljøet. Bærekraftperspektivet kommer på toppen av teknologiens andre fordeler:
– Økt smidighet, hastighet og sikkerhet, sier Talberg.
Når en container først er laget så kan den automatisk sjekkes for sårbarheter før den gjøres tilgjengelig for bruk. Deretter kan containeren raskt og enkelt kunne kjøres i forskjellige miljøer.
– Det spiller ingen rolle om du skal utvikle, teste eller produsere på Public Cloud, Private Cloud eller lokalt på PC-en. Containeren vil være lik hver gang.
Med containere er det også enklere å kjøre større applikasjoner eller tjenester som mindre komponenter, såkalte mikrotjenester. Det har to store fordeler:
- Muligheten for å videreutvikle de forskjellige delene av en tjeneste separat fra hverandre. Dette gir raskere utviklingssykluser og lavere risiko for feil fordi man må forholde seg til en mye mindre del av tjenesten.
- Mikrotjenester kan skaleres etter behov uten å måtte skalere hele tjenesten. Om det er perioder der en tjeneste må kunne besvare flere forespørsler eller behandle større mengder data så skaleres kun de nødvendige mikrotjenestene opp.
Når man skal kjøre mikrotjenester eller større antall containers, kan det fort bli mye å passe på.
– Mange ønsker containere på flere servere slik at man kan gjøre vedlikehold og ha kapasitet til skalering, samtidig skal man sørge for at applikasjonene og tjenestene er tilgjengelige på nettverket og kan lagre data, sier Talberg.
Heldigvis finnes det systemer som tar seg av å kjøre, konfigurere og passe på containere på en eller flere servere. Slike systemer kalles gjerne container-plattformer, og her kommer Kubernetes inn i bildet.
Hva er Kubernetes?
Kort fortalt: Kubernetes er den mest populære container-plattformen. Den er fritt tilgjengelig for alle og enkel å utvide med mer funksjonalitet.
– Flere godt kjente programvareleverandører leverer Kubernetes i en form som er enkel å sette opp og vedlikeholde. Da er support inkludert. I public clouds finnes Kubernetes som en tjeneste. Dermed kan Kubernetes være en felles plattform for multi-cloud, både i eget datasenter og public cloud, sier Talberg.
Han forteller at den viktigste egenskapen til Kubernetes er at den kontinuerlig sjekker at alt kjører i henhold til instruksene den har fått.
– Om noe ikke stemmer så gjør den tiltak for å rette det. Det er et self-healing-system. Om applikasjonen som kjøres i en container stopper eller en hel maskin med containere stopper så vil Kubernetes starte nye containere inntil status er i henhold til instruksen, sier Talberg og legger til:
– Og om instruksen er endret, vil Kubernetes utføre nødvendig operasjoner for å oppfylle den. Har du gitt feil instrukser så er det mulig å rulle tilbake endringene.
Få krav til ressurser – enorme muligheter
Det finnes mange utvidelser til Kubernetes. Noen kan utvide funksjonalitet som datalagringsstøtte, avanserte nettverks- og sikkerhetsfunksjoner eller automatisk skalering. Noen utvidelser kan gi økt funksjonalitet.
– For eksempel kan du utnytte Kubernetes sin self-healing-evne til å passe på at web-tjenester har gyldige sertifikater. Eller du kan bruke Kubernetes til å opprette andre Kubernetes-plattformer og sørge for at de alltid er i henhold til instruksen, forklarer løsningsarkitekten.
For å oppnå fart og smidighet er det viktig å teste og validere hyppig.
– Med Kubernetes kan du kjøre opp et helt testmiljø sammen med containeren for å verifisere at den og hele tjenesten fungerer som forventet. Applikasjoner kan altså bygges og testes i et fullt miljø helt automatisk – og flere slike rutiner kan kjøres separat på samme tid.
Talberg mener containerteknologi og Kubernetes er spesielt godt egnet for bedrifter som utvikler og leverer digitale tjenester.
– Samtidig bør også andre ta i bruk teknologien på grunn av mulighetene, robustheten og det reduserte kravet til ressurser som plattformen gir. Dessuten vil programvareprodusenter i fremtiden lage applikasjoner som tar utgangspunkt i at bedriften din har en Kubernetes-plattform, avslutter han.