Serverkonteinere
Serverkonteinere (containers) er en form for virtualisering der vi i stedet for å virtualisere maskinvaren til datamaskiner, som med virtuelle maskiner, lager en konteiner med nødvendige filer og programmer som trengs for å levere en spesifikk tjeneste. Konteinerne er avhengige av vertsmaskinens operativsystem for å fungere.
Konteinerne er lagd for ikke å påvirke hverandre eller vertsoperativsystemet med mindre dette er konfigurert inn. Dette resulterer i økt sikkerhet på samme måte som med virtuelle maskiner, men uten å måtte ha komplette virtuelle maskiner som må holdes oppdaterte. Dette sparer lagringsplass, systemressurser og gjør serverkonteinere veldig fleksible og effektive.
Fordi hver konteiner har så lite ressursavtrykk, altså at den bruker lite systemressurser for å kjøre, er det vanlig å sette opp en tjeneste per konteiner. Dette kalles mikrotjenester, og du kan lese mer om det på sida Mikrotjenester (NDLA).
Docker, rkt, LXC og Hyper-V Containers er eksempler på konteinerstandarder som er mye brukt.
De forskjellige konteinerstandardene fungerer noe forskjellig, men har mange fellestrekk. Blant annet er hver konteiner definert av ei konfigurasjonsfil (container config file). Denne beskriver hva som skal være i konteineren, hvordan den skal settes opp, og hvordan konteineren skal kommunisere med andre maskiner eller konteinere over nettverk og API-er. Dette gjør at konteinere lett kan settes sammen og tilpasses nye miljøer.
For oppsett på kryss av servere er det vanlig å sette opp en klynge (cluster) og bruke et konteinerhåndteringssystem (container orchestration system). Dette gjør det mulig å flytte konteinerne mellom fysiske servere samt lage og kjøre flere samtidige konteinerkopier (instance) for å øke kapasitet ved høy belastning. Klynger og konteinerhåndteringsystem kan du lese mer om på sida Når servere arbeider sammen (NDLA).
I artikkelen har vi skilt mellom virtuelle maskiner og konteinerløsninger. I praksis kan begge deler brukes i det samme systemet, for eksempel hvis du leier en virtuell maskin hos en skyleverandør og setter opp operativsystem, konteinermotor og konteinere i den virtuelle maskinen. Vi skal ikke gå nærmere inn på dette her, men det er greit å være klar over at en slik kompleksitet ikke er uvanlig i ekte driftsituasjoner.
I YouTube-videoen fra IBM med Sai Vennam kan du lære litt mer om konteinere.