Containers versus virtuele machines (VM): alles wat je moet weten
Voor organisaties die hun software-implementaties op verschillende platforms willen standaardiseren, de overheadkosten willen verlagen en de schaalbaarheid willen verbeteren, zijn (server)virtualisatie en containerisatie de twee belangrijkste benaderingen die momenteel worden toegepast. Zowel virtualisatie- als containerisatietechnologieën maken gebruik van op zichzelf staande virtuele pakketten en kunnen IT-beheerders helpen om flexibeler te worden en beter in te spelen op veranderende zakelijke behoeften. De twee concepten kunnen echter enigszins verwarrend zijn. Lees verder om een beter inzicht te krijgen in hoe deze technologieën werken en welke het meest geschikt is voor verschillende gebruikssituaties.
Wat zijn containers?
Containers kunnen worden omschreven als pakketten die alles bevatten wat nodig is om één applicatie of microservice uit te voeren. Dit omvat zowel de afhankelijkheden als de runtime-bibliotheken. Dankzij containers kan de applicatie snel en betrouwbaar worden uitgevoerd vanaf elke locatie, van desktopcomputers tot fysieke en virtuele servers en zelfs in de cloud.
De container is losgekoppeld van het besturingssysteem (OS) van de host. Elke container deelt de kernel van het besturingssysteem met andere containers, in plaats van een volledig eigen besturingssysteem te bevatten. De toegang tot de onderliggende bronnen van het besturingssysteem is beperkt. Daardoor kan een gecontaineriseerde applicatie worden uitgevoerd op verschillende soorten infrastructuur, zoals de cloud, een virtuele machine, bare metal enzovoort, zonder dat de applicatie voor elke IT-omgeving opnieuw hoeft te worden aangepast.
Aangezien containers doorgaans de kernel van het besturingssysteem van de machine delen en geen last hebben van de overhead die gepaard gaat met een volledig besturingssysteem binnen elke container, worden ze vaak beschouwd als „lichter” dan virtuele machines (VM’s).
Hoe werkt containerisatie?
Containerisatie kan worden gedefinieerd als een vorm van besturingssysteemvirtualisatie waarbij applicaties worden uitgevoerd binnen geïsoleerde gebruikersruimten (containers) die allemaal dezelfde besturingssysteemkern delen. Het betreft de inkapseling van een applicatie en de omgeving die nodig is om deze uit te voeren, zodat deze efficiënt en consistent op verschillende computerplatforms kan worden uitgevoerd.
Containerisatie ontpopt zich als de voorkeursaanpak voor softwareontwikkeling en DevOps-pijplijnen. Het ontwikkelen en implementeren van applicaties verloopt sneller en veiliger dankzij containerisatie.
Wanneer code volgens traditionele methoden in een bepaalde computeromgeving wordt ontwikkeld en vervolgens naar een ander computerplatform wordt overgezet, leidt dit vaak tot fouten. Containerisatie lost dit probleem echter effectief op door de volledige applicatiecode samen met de bijbehorende bibliotheken, afhankelijkheden en configuratiebestanden die nodig zijn voor de uitvoering ervan, in te kapselen.
Voor- en nadelen van containerisatie. Net als elke andere technologie heeft containerisatie een aantal voor- en nadelen waarmee je rekening moet houden.
Voordelen van containerisatie
- Een van de belangrijkste voordelen van containerisatie is dat het een snelle en lichtgewicht infrastructuur biedt waarop u uw applicaties kunt draaien. De relatief lichtgewicht containers zijn flexibeler, en u kunt ze sneller aanmaken en verplaatsen dan virtuele machines.
- Containerisatie maakt beleidsgestuurde optimalisatie mogelijk. Je kunt een automatiseringslaag gebruiken om applicaties te lokaliseren, automatisch te migreren en uit te voeren op het meest geschikte platform.
- Containerisatie helpt bij het verlagen van uw kosten voor softwareontwikkeling en bedrijfsvoering.
- Containerisatie biedt ook meer schaalbaarheid. In vergelijking met VM’s kunnen er veel meer containers worden aangemaakt en uitgevoerd op een fysieke server, aangezien er niet in elke container een volledig besturingssysteem hoeft te worden opgenomen. Bovendien kunnen monolithische applicaties met behulp van containers worden opgesplitst in kleinere microservices. Vervolgens kun je de afzonderlijke functies schalen en verdelen.
Nadelen van containerisatie
- Een van de grootste nadelen van containerisatietechnologie is dat het veel werk kost om deze binnen een organisatie zo in te richten dat ze efficiënt functioneert.
- Aangezien de technologie nog vrij nieuw is, zijn de benodigde applicatieondersteuning en afhankelijkheden nog steeds ontoereikend.
- Het is moeilijk om gekwalificeerde containerontwikkelaars te vinden.
- Containers maken gebruik van dezelfde kernel van het host-besturingssysteem. Dit betekent dat, mocht de kernel kwetsbaar worden, alle bijbehorende containers ook kwetsbaar zouden worden.
- Containertechnologie kan wat betreft de ontwikkelingskosten van applicaties duurder uitvallen.
Welke problemen lossen containers op?
Volgens een [prognose van Gartner Inc.](https://www.gartner.com/en/newsroom/press-releases/2020-06-25-gartner-voorspelt-sterke-omzetgroei-voor-wereldwijde-co#:~: text=Dewereldwijde omzet uit containerbeheer zal,nieuwe prognose van Gartner, Inc.) zal de wereldwijde omzet uit containerbeheer naar schatting sterk groeien van 465,8 miljoen dollar in 2020 tot maar liefst 944 miljoen dollar in 2024.Gartner voorspelt ook dat tegen het jaar 2022 waarschijnlijk meer dan 75% van de bedrijven wereldwijd gecontaineriseerde applicaties in productie zal hebben.
De containerisatietechnologie biedt een enorme mate van overdraagbaarheid tussen verschillende computerplatforms en -omgevingen. Hierdoor kunnen ontwikkelaars een applicatie één keer schrijven en deze vervolgens overal uitvoeren waar ze maar willen.
Containers vormen een essentieel onderdeel van de private cloud en ontpoppen zich in hoog tempo als een baanbrekende ontwikkeling voor veel bedrijven. De private cloud is voor organisaties de voorkeursaanpak geworden om de benodigde flexibiliteit en controle te bieden en tegelijkertijd een efficiënt gebruik van meerdere clouddiensten mogelijk te maken.
Wat zijn virtuele machines?
Een virtuele machine (VM) kan worden omschreven als een virtuele omgeving waarin elke VM een complete virtuele computer is met een eigen gastbesturingssysteem, virtueel geheugen, CPU, opslagruimte en netwerkinterface. VM’s functioneren als softwaregedefinieerde virtuele computers die op fysieke servers draaien.
Een VM, die doorgaans als ‘gast’ wordt aangeduid, wordt aangemaakt binnen een fysieke computeromgeving die een ‘host’ wordt genoemd. Meerdere VM’s kunnen de bronnen van één host, zoals geheugen, netwerkbandbreedte en CPU-cycli, delen en tegelijkertijd draaien. Elke VM beschikt echter over een eigen besturingssysteem en werkt onafhankelijk van andere VM’s die zich mogelijk op dezelfde host bevinden.
Hoe werkt virtualisatie?
Servervirtualisatie vormt de basis van cloud computing en maakt een efficiënter gebruik van fysieke computerhardware mogelijk. U kunt de volledige capaciteit van een fysieke machine benutten door meerdere VM’s op één server te draaien.
Servervirtualisatie wordt gerealiseerd door een virtuele instantie van een computersysteem te draaien binnen een laag, een zogenaamde hypervisor, die losstaat van de daadwerkelijke hardware. De hypervisor wijst hardwarebronnen, zoals CPU’s, geheugen en opslagruimte, toe aan elke VM. Dankzij servervirtualisatie kunnen er tegelijkertijd meerdere besturingssystemen op één computersysteem worden uitgevoerd.
De wereldwijde markt voor virtualisatiesoftware zal de komende twee jaar naar schatting een samengesteld jaarlijks groeipercentage (CAGR) van bijna 30% laten zien.
Er zijn vier soorten virtualisatie:
- Servervirtualisatie – Aangezien meer dan 90% van de bedrijven in Europa en Noord-Amerikaer gebruik van maakt, is servervirtualisatie de meest voorkomende vorm van virtualisatie. Bij servervirtualisatie wordt één fysieke server opgedeeld in verschillende geïsoleerde virtuele serverinstanties, zoals hierboven beschreven.
- Netwerkvirtualisatie – Met netwerkvirtualisatie kunnen abstracte versies van fysieke netwerkbronnen, waaronder firewalls, routers en switches, worden gecreëerd binnen afzonderlijke lagen van het virtuele netwerk.
- Opslagvirtualisatie – Bij opslagvirtualisatie worden meerdere fysieke opslagbronnen geabstraheerd, samengevoegd en beheerd, zodat ze worden weergegeven als één gecentraliseerde opslagpool. De opslagbronnen kunnen afkomstig zijn van verschillende leveranciers en netwerken.
- Desktopvirtualisatie – Hierbij wordt een virtuele versie van het werkstation, inclusief het besturingssysteem, gecreëerd die op afstand toegankelijk is.
Voor- en nadelen van virtualisatie
Laten we eens kijken naar enkele van de belangrijkste voor- en nadelen van virtualisatie.
Voordelen van virtualisatie
- Een van de belangrijkste voordelen van virtualisatietechnologie is dat deze een efficiënt gebruik van hardware mogelijk maakt. U kunt meerdere virtuele instanties op dezelfde hardware aanmaken en zo de hardwarekosten verlagen.
- Een ander voordeel van virtualisatie is een hogere uptime en beschikbaarheid. Dankzij functies als fouttolerantie, opslagmigratie, live migratie, gedistribueerde resourceplanning en hoge beschikbaarheid stellen virtuele machines (VM’s) de IT-afdeling in staat om snel te herstellen van onvoorziene storingen.
- Virtualisatie draagt bij aan lagere IT-exploitatiekosten, aangezien er minder fysieke servers en bijbehorende middelen nodig zijn om hetzelfde niveau van schaalbaarheid, beschikbaarheid en prestaties te bereiken. Dit betekent dat er minder tijd nodig is voor het beheer en onderhoud van hardware.
- Back-ups, duplicatie en herstel verlopen relatief eenvoudiger en sneller dankzij virtualisatie. Dankzij realtime gegevensback-ups en -spiegeling is het gegevensverlies verwaarloosbaar en is snel herstel mogelijk vanuit de laatst opgeslagen toestand die op een afzonderlijke virtuele instantie werd gespiegeld.
Nadelen van virtualisatie
- Aangezien de opstartkosten voor opslag en servers hoger zijn dan normaal, vormt de hoge initiële investering een van de grootste nadelen van virtualisatie.
- Om een gevirtualiseerde omgeving te implementeren en te beheren, moet u uw IT-personeel opleiden of deskundigen inhuren die goed thuis zijn in virtualisatietechnologieën.
- Testen is van cruciaal belang om ervoor te zorgen dat uw systemen feilloos functioneren in een gevirtualiseerde omgeving.
Welke problemen worden opgelost met virtuele machines?
Organisaties hebben tegenwoordig vaak behoefte aan een groot aantal servers op verschillende fysieke locaties, die elk op maximale capaciteit draaien, om de efficiëntie en het rendement op de investering (ROI) te verhogen. Daarom is het inmiddels gangbare praktijk geworden om virtualisatie in te zetten om de benutting van computerbronnen te verbeteren. Het belangrijkste uitgangspunt achter virtualisatie was het verhogen van de efficiëntie van IT-systemen.
Virtualisatie draagt bij aan een grotere schaalbaarheid, flexibiliteit en wendbaarheid van IT, terwijl de operationele kosten worden verlaagd. Daarnaast zijn de beschikbaarheid van middelen, verbeterde prestaties, geautomatiseerde processen en de mobiliteit van workloads enkele van de redenen waarom virtualisatie in de IT-sector gemeengoed is geworden.
Het rapport [2020 State of Virtualization Technology](https://www.spiceworks.com/marketing/reports/state-of-virtualization/#:~:text=Looking ahead, enterprise adoption of,expect to use desktop virtualization.) voorspelt dat de mate waarin bedrijven virtualisatietechnologie gaan toepassen tegen 2021 naar verwachting aanzienlijk zal toenemen. Terwijl 75% van de bedrijven waarschijnlijk applicatievirtualisatie zal invoeren, zal naar verwachting bijna 69% desktopvirtualisatie gaan gebruiken.
Containers versus virtuele machines: wat is het verschil?
In dit hoofdstuk bespreken we de belangrijkste verschillen tussen de twee technologieën. Uit het onderstaande diagram blijkt dat virtuele machines (VM’s) elk hun eigen „gast“-besturingssysteem hebben en bovenop de hypervisorlaag draaien. Elke VM beschikt over eigen uitvoerbare bestanden en bibliotheekbestanden. Containers daarentegen kunnen uitvoerbare bestanden en bibliotheken delen en bevatten geen besturingssysteem. In plaats van de hypervisor is er een container-engine.

Hier is een vergelijkingstabel:

Wanneer moet je containers gebruiken?
Containers kunnen de juiste keuze zijn als u op korte termijn aan uw applicatiebehoeften wilt voldoen. Aangezien containers draagbaar zijn en snel kunnen worden geïnstalleerd en opgestart, kunnen ze helpen uw applicaties flexibel te schalen om aan de vraag te voldoen. Voorbeelden hiervan zijn gebeurtenisgestuurde videostreaming, het aanbieden van webservices, verzekeringsclaims of het afhandelen van online bestellingen.Kies voor containerisatie wanneer het uw prioriteit is om het aantal applicaties dat u draait te maximaliseren op een minimaal aantal servers. Containers hebben echter de beperking dat ze niet worden ondersteund door speciale opslagbronnen, verwerkingscapaciteit en besturingssystemen. Containers zijn zeer geschikt voor het verpakken van microservices en het bouwen van cloud-native apps.
Wanneer moet je virtuele machines gebruiken?
Virtuele machines (VM's) zijn de beste keuze voor bedrijven die meerdere applicaties moeten draaien waarvoor de uitgebreide functionaliteit en ondersteuning van een speciaal besturingssysteem nodig zijn. VM's zijn het meest geschikt voor applicaties die u gedurende langere tijd moet gebruiken en die binnen een gevirtualiseerde omgeving moeten draaien die veelzijdiger en veiliger is.
Virtualisatie is beter geschikt voor het onderbrengen van traditionele, verouderde, monolithische workloads, het toewijzen van infrastructuurmiddelen, het draaien van het ene besturingssysteem binnen het andere en het isoleren van risicovolle ontwikkelingscycli.
Je virtuele omgeving in de gaten houden
Als het gaat om het monitoren en beheren van uw virtuele servers, moet u ervoor zorgen dat uw tool voor eindpuntbeheer volledig inzicht biedt in uw virtuele omgeving, zodat u problemen snel kunt opsporen en oplossen.
Kaseya VSA detecteert de twee populairste virtualisatie-infrastructuren, VMware en Microsoft Hyper-V, en neemt hosts en VM’s op in de netwerktopologiekaart.

VSA-topologiekaart met weergave van MS Hyper-V-VM’s en het QV-venster
Lees meer over Kaseya VSA. Vraag vandaag nog een demoaan!