Virtualisering er teknologien som gjør det mulig å opprette flere virtuelle maskiner (VM-er) på en enkelt fysisk maskin. Hver VM fungerer som en uavhengig datamaskin med eget operativsystem og applikasjoner. Virtualisering gjør det mulig å maksimere bruken av fysisk maskinvare, forbedre fleksibiliteten og redusere kostnadene.
Fordeler med virtualisering:
Bedre ressursutnyttelse: Flere VM-er kan kjøre på én fysisk server, noe som maksimerer bruken av CPU, RAM og lagring.
Reduserte maskinvarekostnader: Reduserer behovet for å kjøpe og vedlikeholde flere fysiske servere.
Økt fleksibilitet og skalerbarhet: Enkelt å opprette, slette og migrere VM-er etter behov.
Forbedret katastrofegjenoppretting: VM-er kan sikkerhetskopieres og gjenopprettes raskt, og kan kjøres på annen maskinvare ved feil.
Enklere testing og utvikling: Utviklere kan raskt spinne opp flere VM-er med ulike miljøer for testing uten å påvirke produksjonssystemer.
Type 1 Hypervisor (Bare Metal)
En Type 1 hypervisor, også kjent som en bare metal hypervisor, kjører direkte på fysisk maskinvare uten å trenge et vertssystem. Dette gir høy ytelse og bedre ressursutnyttelse, og det er ofte brukt i datasentre og produksjonsmiljøer.
Eksempler på Type 1 hypervisorer:
VMware ESXi: Brukes av mange store bedrifter for å kjøre flere VM-er på deres servere med høy ytelse og stabilitet.
Microsoft Hyper-V: En del av Windows Server, brukt til å administrere virtuelle miljøer i mange organisasjoner.
Citrix XenServer: Brukes til å levere virtualiserte applikasjoner og skrivebord til brukere.
Red Hat Enterprise Virtualization (RHEV): Brukes i mange Linux-baserte datasentre for å administrere virtuelle maskiner effektivt.
Fordeler med Type 1 hypervisorer:
Høy ytelse og effektiv ressursutnyttelse: Kjører direkte på maskinvaren, noe som reduserer overhead og gir bedre ytelse.
Bedre sikkerhet: Fordi de kjører direkte på maskinvaren, er det færre lag som kan kompromitteres.
Bedre skalerbarhet: Ideell for store datasentre som krever høy ytelse og pålitelighet.
Eksempel på hvordan en Type 1 hypervisor fungerer:
Figur 1 Viser at en Type 1 Hypervisor henter ressurser som CPU og RAM rett fra Hardware, ikke via et annet operativ system. Her kjøres det to virtuellemaskiner. Bilde fra: https://www.starwindsoftware.com/blog/type-1-vs-type-2-hypervisor-what-is-the-difference
Type 2 Hypervisor (Hosted)
En Type 2 hypervisor, også kjent som en hosted hypervisor, kjører på toppen av et vertssystem (operativsystem). Dette gjør det enklere å installere og bruke, men kan føre til lavere ytelse sammenlignet med Type 1 hypervisorer. Type 2 hypervisorer brukes ofte på klientmaskiner for testing og utvikling.
Eksempler på Type 2 hypervisorer:
VMware Workstation: Brukes av utviklere og IT-profesjonelle for å kjøre og teste flere operativsystemer på en PC.
Oracle VM VirtualBox: En gratis og åpen kildekode hypervisor som brukes til å kjøre VM-er på skrivebordet.
Parallels Desktop: Populær blant Mac-brukere for å kjøre Windows og andre operativsystemer på Mac-enheter.
QEMU: En åpen kildekode emulator og virtualiseringsverktøy som brukes til å kjøre operativsystemer og programmer for en annen maskinplattform.
Fordeler med Type 2 hypervisorer:
Enkle å installere og bruke: Kan installeres som enhver annen programvare på vertssystemet.
Godt egnet for testing og utvikling: Lar utviklere kjøre flere miljøer på samme maskin for testing.
Fungerer godt på klientmaskiner: Ideell for bruk på skrivebordsmaskiner og bærbare datamaskiner.
Eksempel på hvordan en Type 2 hypervisor fungerer:
Figur 2 Viser at en Type 2 Hypervisor henter ressurser, som CPU og RAM, via et annet operativ system. Hypervisoren kjører "inni" et annet operativsystem som f.eks Windows eller Linux. Bildet er fra: https://www.starwindsoftware.com/blog/type-1-vs-type-2-hypervisor-what-is-the-difference
Konteinerisering
Konteinerisering er en teknologi som lar applikasjoner kjøre isolert i containere. Dette gir fordeler som raskere distribusjon, bedre ressursutnyttelse, og enklere administrasjon sammenlignet med tradisjonelle VM-er. Docker er en av de mest populære verktøyene for å lage, distribuere og kjøre containere.
Fordeler med konteinerisering:
Raskere distribusjon: Containere starter og stopper raskere enn virtuelle maskiner.
Bedre ressursutnyttelse: Containere deler vertssystemets operativsystemkjerne, noe som reduserer overhead.
Konsistent miljø: Containere sikrer at applikasjoner kjører i samme miljø, uansett hvor de distribueres.
Skalerbarhet: Enkelt å skalere applikasjoner horisontalt ved å legge til flere containere.
Isolasjon: Containere kjører isolert fra hverandre, noe som forbedrer sikkerheten og stabiliteten.
Eksempler på verktøy og plattformer for konteinerisering:
Docker: Det mest populære verktøyet for å lage og administrere containere. Brukes av utviklere for å pakke applikasjoner og deres avhengigheter i en container.
Kubernetes: En åpen kildekode plattform for automasjon av distribusjon, skalering og drift av containeriserte applikasjoner.
OpenShift: En Kubernetes-basert plattform fra Red Hat som tilbyr ekstra funksjoner for utvikling og drift av applikasjoner.
Amazon ECS/EKS: Tjenester fra AWS for kjøring og administrasjon av containere ved hjelp av Elastic Container Service (ECS) eller Elastic Kubernetes Service (EKS).
Eksempel på hvordan konteinerisering fungerer med Docker:
Figur 3 Viser konteinerisering med Docker. Her er det ingen virtuelle maskiner, bare programmer som kjører inni hverandre. Ved å kjøre hver app i en egen konteiner slipper vi att App A slutter å fungere pga noe med App B. Det vil også være vanskeligere for skadevare å komme mellom konteinerne.
Virtualisering, Konteinere og Skytjenester
Virtualisering og konteinerisering ligner på skytjenester ved at de alle tillater effektiv bruk av ressurser, fleksibilitet og skalerbarhet. Skytjenester, som AWS, Azure og Google Cloud, tilbyr infrastrukturtjenester (IaaS), plattformtjenester (PaaS) og programvaretjenester (SaaS) som kan inkludere både VM-er og containere.
Når bør man bruke VM-er?
Virtuelle maskiner er best egnet for:
Kompatibilitet: Når applikasjoner krever fullstendig isolasjon og et eget operativsystem.
Legacy-applikasjoner: Når man kjører eldre applikasjoner som ikke er kompatible med konteinerisering.
Sikkerhet: Når høy grad av isolasjon er nødvendig for applikasjonene.
Ulemper:
Større overhead på grunn av separate operativsystemer for hver VM.
Langsommere oppstartstid sammenlignet med containere.
Når bør man bruke Konteinere?
Konteinere er best egnet for:
Mikrotjenester: Når man kjører applikasjoner delt opp i mindre, løst koblede tjenester.
Rask distribusjon: Når man trenger rask oppstart og stopp av applikasjoner.
Skalerbarhet: Når man trenger å skalere applikasjoner horisontalt ved å legge til flere instanser.
Ulemper:
Kan være vanskeligere å administrere på tvers av store distribuerte systemer uten passende verktøy.
Mindre isolasjon sammenlignet med VM-er.
Når bør man bruke Skytjenester?
Skytjenester er best egnet for:
Fleksibilitet og skalerbarhet: Når man trenger å skalere ressurser dynamisk basert på etterspørsel.
Kostnadseffektivitet: Når man ønsker å betale kun for ressursene som brukes.
Hurtig utrulling: Når man ønsker å lansere tjenester raskt uten å investere i egen infrastruktur.
Ulemper:
Kan være dyrt ved feilaktig bruk eller uten riktig kostnadsstyring.
Avhengighet av en ekstern leverandør kan føre til bekymringer rundt sikkerhet og tilgjengelighet.
Oppsummering
Det første man bør tenke på når man vurderer en installasjon er hvor mye infrastruktur skal være 'on-prem' -- hvor mye ønsker bedriften å lagre lokalt på egne servere.
On-prem/lokale løsninger bør basere seg på virtuelle maskiner. Da mister man ikke nødvendigvis Domenekontrolleren eller firewallen om man må starte serveren på nytt -- det blir mye mer robust!
I tillegg får man utnyttet de fysiske serverne langt bedre (billigere) og kan legge til virtuelle maskiner med nye tjenester uten å nødvendigvis kjøpe og installere mer hardware (fleksibelt og skalerbart).
Man kan også benytte konteinerisering internt på VM-er for å raskt sette opp flere mindre tjenester uten å sette av hardware ressurser for hver enkelt tjeneste.
Deler av installasjonen som filbackup, officetjenester (Teams/office 365) o.l kan være rene skytjenester som ikke krever noe hardware hos bedriften. Samtidig kan sensitivt arbeid, som kildekoder o.l lagres lokalt på egne servere.
For mange bedrifter nok det enkleste være å kun benytte skytjenester, ettersom det ikke krever noe særlig av de ansatte mtp systemadministrasjon, feilretting og vedlikehold. Det sprer også utgiften utover gjennom en månedsavgift fremfor en større investeringskostnad.
Hva som lønner seg for den enkelte bedrift vil variere stort utfra behovene de har.