Virtuelle maskiner og containere er typer virtualisering som gjør at applikasjoner kan distribueres i miljøer isolert fra den underliggende maskinvaren.
Disse teknologiene brukes ofte i store IT-prosjekter for å kutte kostnader og gjøre distribusjon av programmer på forskjellige plattformer enklere. En virtuell maskin er også nyttig for å prøve ut nye operativsystemer.
Et problem med disse konseptene er at de er svært like, noe som gjør det vanskelig å velge mellom dem.
Så hva er egentlig forskjellen mellom en virtuell maskin og en container?
Hva er en virtuell maskin?
En virtuell maskin er en virtualisering av en datamaskin. Virtuelle maskiner lar deg bruke en enkelt datamaskin til å kjøre det som ser ut til å være flere datamaskiner, hver med sitt eget operativsystem.
Virtuelle maskiner lages ved hjelp av hypervisorer. Dette er et stykke programvare som sitter mellom en VM og den underliggende maskinvaren. Hypervisoren tar ressurser fra den underliggende maskinvaren og partisjonerer dem til dedikert til individuelle VM-er.
Resultatet er flere miljøer som bruker samme maskinvare, men oppfører seg som om de er fullstendig isolert fra hverandre.
Hva er en container?
En beholder er ligner på en virtuell maskin. Men i stedet for å virtualisere en hel datamaskin, virtualiserer en container kun programvare over operativsystemnivå.
Beholdere er lettere fordi de ikke trenger sine egne operativsystemer. For å sette dette i perspektiv, blir de vanligvis målt i megabyte i stedet for gigabyte knyttet til virtuelle maskiner.
De trenger heller ikke en hypervisor og kan plasseres direkte på toppen av vertsoperativsystemet. Hver beholder deler deretter verts-OS-kjernen.
Selv om de er mindre enn virtuelle maskiner, er beholdere fortsatt designet for å inkludere alle nødvendige filer for at en applikasjon skal kjøre. De inkluderer alle avhengigheter og kjøretidsbiblioteker. Dette gjør at en applikasjon inne i en beholder kan kjøres hvor som helst.
Hva er forskjellen mellom en virtuell maskin og container?
Virtuelle maskiner har eksistert lengst, men de har blitt erstattet av containere for noen formål. Hver teknologi har imidlertid sine egne fordeler og ulemper. Det riktige verktøyet for jobben avhenger derfor av det spesifikke prosjektet. Her er de primære forskjellene.
1. Virtuelle maskiner gir et separat operativsystem
På grunn av å ha sitt eget operativsystem, kan virtuelle maskiner utføre en rekke oppgaver som ikke er mulig med containere.
- Du kan kjøre programmer som ikke er kompatible med verts-OS.
- Du kan kjøre flere applikasjoner i forskjellige operativsystemer.
- Du kan kjøre flere applikasjoner som ikke har råd til å dele operativsystemfunksjonalitet og ressurser.
2. Containere er mindre og mer bærbare
Deling av et operativsystem reduserer i stor grad mengden kode som er nødvendig for at en beholder skal kjøre. Beholdere er derfor betydelig mindre enn VM-er, og tar ofte opp bare noen få megabyte.
Dette gjør containere potensielt mye billigere fordi du kan få plass til flere av dem på en enkelt server. Det gjør også containere betydelig mer bærbare.
Beholdere kan enkelt overføres mellom datamaskiner, datamiljøer og skyen. Dette gjør dem spesielt nyttige for team som ønsker å samarbeide om en enkelt applikasjon mens de bruker forskjellige miljøer.
3. Containere starter opp raskere
Beholdere kan startes mye raskere fordi operativsystemet allerede kjører, i motsetning til å starte en virtuell maskin, som innebærer oppstart av et nytt OS.
Containere kan derfor starte opp på sekunder, mens virtuelle maskiner vanligvis krever noen minutter.
Fordi containere bruker færre ressurser, lar de også enkelte programmer kjøre raskere.
4. Containere har tilgang til alle ressurser
Virtuelle maskiner har spesifikke ressurser tildelt dem av hypervisoren. Dette kan være nyttig for ressurskrevende applikasjoner, men det kan også være ineffektivt når tildelte ressurser blir stående ubrukt.
Beholdere har tilgang til alle de underliggende maskinvareressursene og utgjør derfor ikke dette problemet. Som et resultat er containere vanligvis det bedre valget for applikasjoner der ressursene som trengs er ukjente.
5. Virtuelle maskiner er sikrere
En virtuell maskin er fullstendig isolert fra alt annet på en datamaskin. En beholder er kun isolert på prosessnivå. Dette gjør virtuelle maskiner sikrere.
Hvis vertsoperativsystemet er kompromittert, kan alle beholderne som er installert over det også bli kompromittert. I samme scenario ville virtuelle maskiner være upåvirket.
En utnyttelse som kjører inne i en virtuell maskin kan ikke påvirke noe utenfor den. En utnyttelse som kjører inne i en container kan potensielt få tilgang til resten av et system.
Bør du bruke en virtuell maskin eller en container?
Virtuelle maskiner og containere er veldig like hverandre, men de er ikke utskiftbare. Følgelig vil noen prosjekter tilby et valg mellom de to, mens andre ikke vil.
Du bør bruke en virtuell maskin når du vil kjøre applikasjoner som spesifikt krever et nytt OS. For eksempel kan det hende at verts-OS ikke støtter applikasjonen.
En virtuell maskin bør også brukes når isolasjon og sikkerhet er prioritert over alt annet.
I de fleste andre scenarier vil en container gi en lettere, raskere og mer kostnadseffektiv løsning.
Kan du bruke virtuelle maskiner og containere sammen?
Ønsker du funksjonaliteten til både virtuelle maskiner og containere, er det mulig å kombinere de to. I dette tilfellet starter du en virtuell maskin og distribuerer deretter beholdere inne i den.
Dette er spesielt nyttig for sikkerhetsformål. Tenk deg for eksempel at du kjører ti containere på en enkelt datamaskin. Hvis datamaskinens operativsystem er kompromittert, kan alle ti beholderne bli påvirket.
Tenk deg nå at du deler de ti beholderne på flere virtuelle maskiner. Hvis en av disse VM-ene blir kompromittert, vil bare beholderne inne i den bli påvirket, og resten vil fungere som normalt.
Erstatter containere virtuelle maskiner?
Containere blir stadig mer populære og med god grunn. De oppnår mange av de samme målene som virtuelle maskiner, men de gjør det til en brøkdel av størrelsen og den potensielle kostnaden.
Til tross for dette er det mange situasjoner der bare en virtuell maskin vil gi den ønskede funksjonaliteten, noe som betyr at VM-er, uansett størrelse, alltid vil bli brukt til en viss grad.
Vil du installere Linux, men kan ikke forlate Windows? Prøv en virtuell maskin for å kjøre din favorittversjon av Linux i Windows. Vi viser deg hvordan du setter opp VMware Workstation Player.
Les Neste
- Teknologi forklart
- VirtualBox
- Virtuell maskin
- Virtualisering
- Internett server
Elliot er en freelance teknologiskribent. Han skriver først og fremst om fintech og cybersikkerhet.
Abonner på vårt nyhetsbrev
Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!
Klikk her for å abonnere