Virtuele machines (VM’s) zijn een kernonderdeel van IT-infrastructuur. Het zijn softwarematige emulaties van fysieke computers die logistieke en computationele flexibiliteit bieden.
In dit artikel leg ik uit wat virtuele machines zijn, hoe ze werken, hun voordelen, veelvoorkomende use-cases en meer!
Wat is een virtuele machine (VM)?
Een virtuele machine is een technologie die complete computersystemen emuleert, van CPU, geheugen, opslag en netwerkinterfaces tot het besturingssysteem.
VM’s lenen resources van de fysieke computer om deze virtuele computers te genereren. Als een computer bijvoorbeeld 8 CPU’s en 16 GB RAM heeft, kunnen we een omgeving virtualiseren met 4 CPU’s en 8 GB RAM, afgesplitst van de fysieke hardware.
We vertrouwen op hypervisors, software die de virtualisatie van hardwarebronnen aanstuurt en meerdere virtuele omgevingen beheert, om meerdere VM’s op één set hardware te beheren.
Virtuele machines vs. fysieke machines
Het is belangrijk om te begrijpen hoe een virtuele machine kan verschillen van een fysieke.
Laten we beginnen met het verschil tussen hardware en software te verduidelijken. Hardware verwijst naar de fysieke componenten van een systeem, zoals het moederbord, de CPU, het geheugen, de GPU en de opslag. Software, zoals het besturingssysteem of andere programma’s, draait op de hardware.
Fysieke machines draaien direct op hardware. VM’s daarentegen draaien software die “gevirtualiseerde” hardware creëert. Zoals we eerder noemden, kan het basissysteem 64 GB RAM hebben, maar we kunnen 32 GB RAM virtualiseren om met de virtuele machine te delen.
Omdat VM’s hardwarebronnen kunnen delen, kunnen we precies de benodigde resources toewijzen die een VM nodig heeft. Als we bijvoorbeeld een krachtige server hebben, kunnen we meerdere VM’s draaien die veel taken parallel uitvoeren met precies de resources die elke VM nodig heeft om zijn taak te volbrengen. Dit kan de algehele resourcebenutting en kosten verbeteren.
De volgende tabel zet virtuele en fysieke machines naast elkaar:
|
Functie
|
Virtuele machines (VM’s)
|
Fysieke machines
|
|
Hardwareafhankelijkheid
|
Draaien op gevirtualiseerde hardware die door software wordt geleverd.
|
Draaien direct op fysieke hardwarecomponenten.
|
|
Resource-allocatie
|
Delen hardwarebronnen (bijv. RAM, CPU) met andere VM’s.
|
Volledig toegewijde hardwarebronnen.
|
|
Schaalbaarheid
|
Zeer schaalbaar; meerdere VM’s kunnen op één fysieke machine draaien.
|
Beperkt door de hardware van de fysieke machine.
|
|
Efficiëntie
|
Maakt betere resourcebenutting mogelijk door alleen noodzakelijke resources toe te wijzen.
|
Kan leiden tot onderbenutting van hardware.
|
|
Flexibiliteit
|
Eenvoudig te herconfigureren en te repliceren.
|
Minder flexibel; vereist fysieke aanpassingen of vervangingen.
|
|
Kosten
|
Lagere kosten door het delen van resources.
|
Hogere kosten omdat elke machine zijn eigen hardware vereist.
|
|
Prestaties
|
Lichte overhead door virtualisatie.
|
Hogere prestaties door directe hardwaretoegang.
|
Typen virtuele machines
Er zijn twee hoofdsoorten virtuele machines: systeem en proces. De ene emuleert een volledig besturingssysteem, de andere een enkele applicatie:
Systeem-virtuele machines
Systeem-VM’s zijn waar we het meestal over hebben als we over VM’s spreken. Ze simuleren een compleet besturingssysteem, zoals een volledige Linux-computer. Eén stuk hardware kan op deze manier meerdere OS-instanties simuleren. Dit is handig als we meerdere omgevingen nodig hebben om verschillende dingen te doen.
Cloud-virtuele machines zijn een veelvoorkomend voorbeeld. Daarin worden volledige OS-omgevingen gehost en op afstand via internet benaderd, wat ze ideaal maakt voor schaalbare infrastructuur.
Proces-virtuele machines
Proces-VM’s zijn afzonderlijke processen die op een hostbesturingssysteem draaien. Het zijn geen volledige systemen op zichzelf, maar kleinere omgevingen die elke computer in staat stellen een applicatie te draaien die mogelijk niet native is voor het basismachinesysteem. Zo stelt de Java Virtual Machine elke machine in staat Java-applicaties native te draaien.
Proces-VM’s zijn lichter dan systeem-VM’s en worden veel gebruikt voor het draaien van specifieke, geïsoleerde applicaties, vooral in ontwikkel- en debugscenario’s.
|
Type VM
|
Beschrijving
|
Use-cases
|
|
Systeem-virtuele machine
|
Simuleert een volledige fysieke machine, inclusief hardware en een OS.
|
Het draaien van meerdere besturingssystemen, serverconsolidatie en testen.
|
|
Proces-virtuele machine
|
Draait één applicatie of proces en biedt een geïsoleerde omgeving.
|
Platformonafhankelijke applicatie-uitvoering, ontwikkeling en debugging.
|
Componenten van een virtuele machine
Elke virtuele machine heeft een paar kerncomponenten. Hoewel de exacte implementatie kan verschillen, bevatten ze doorgaans vergelijkbare onderdelen. Laten we ze in deze sectie doornemen.
1. Hypervisor
In het algemeen is een hypervisor de softwarelaag die virtuele machines initialiseert en beheert. Hij regelt de resources tussen de VM en de fysieke machine.
Er zijn twee soorten hypervisors:
- Type 1-hypervisors draaien rechtstreeks op bare metal en dus op de server zelf. Ze hebben meestal directe toegang tot de bronnen van de server.
- Type 2-hypervisors worden doorgaans geïnstalleerd op een hostbesturingssysteem. Ze hebben geen volledige controle over de systeembronnen en worden in plaats daarvan door het hostbesturingssysteem beheerd.
2. Virtuele hardware
De hypervisor wijst virtuele hardware toe aan de VM. Dat betekent dat fysieke resources virtueel van de machine worden gescheiden en aan de virtuele omgeving worden gegeven. Dat kan inhouden dat RAM, CPU-cores en andere rekenbronnen worden opgesplitst zodat de VM processen kan draaien.
3. Gastbesturingssysteem
Het gastbesturingssysteem draait binnen de VM. Dat hoeft niet hetzelfde besturingssysteem te zijn als de host en kan elk besturingssysteem zijn. Verschillende VM’s op dezelfde hypervisor of server kunnen zelfs verschillende besturingssystemen hebben, afhankelijk van hun use-case.
4. Virtuele schijf
VM’s hebben vaak virtuele schijven om tijdelijk informatie op te slaan terwijl ze draaien. Soms verplaatsen we gegevens van een virtuele schijf naar het daadwerkelijke opslagsysteem van de hostcomputer, maar dat gebeurt zorgvuldig om schade aan de host te voorkomen.

Architectuurdiagram van een server met drie virtuele machines. Beeldbron: DataCamp.
Virtuele machines vs. containers
Een andere populaire vorm van virtualisatie is containerisatie. Hoewel ze vergelijkbare doelen kunnen hebben, verschillen virtuele machines en containers flink in de implementatie. Laten we de verschillen bekijken.
- Virtuele machines zijn ontworpen om het volledige apparaat te repliceren, inclusief de hardware. Dat betekent dat een VM zaken als een moederbord, CPU en netwerkapparaat repliceert zodat applicaties die op de VM draaien, lijken te draaien op onafhankelijke hardware.
- Containers zijn daarentegen ontworpen om specifieke softwareapplicaties te draaien, ongeacht de omgeving. Ze initialiseren hun resources niet zelf, maar gebruiken de resources van de hostcomputer.

Architectuurdiagram van een server met drie containers. Beeldbron: DataCamp.
Wanneer VM’s of containers gebruiken
Gebruik VM’s wanneer je meerdere besturingssystemen parallel moet draaien en discrete resourcebeheer nodig hebt. VM’s zijn ook te verkiezen als je een consistente en voorspelbare hoeveelheid resources voor je processen nodig hebt.
Containers zijn daarentegen ideaal voor lichtgewicht applicatie-uitrol. Omdat containers resources delen, is het belangrijk om ervoor te zorgen dat je server meerdere containers tegelijk aankan en resources passend kan toewijzen.
Als je nieuw bent met deze concepten, kun je de cursus over containerisatie- en virtualisatieconcepten handig vinden om hun use-cases te begrijpen. Voor een diepere duik in hoe VM’s en containers verschillen, bekijk de blogpost waarin containers en virtuele machines worden vergeleken.
Voordelen van virtuele machines
Virtuele machines hebben veel voordelen, waaronder een hogere resource-efficiëntie en beveiliging. Het juist inzetten van VM’s kan je technologische infrastructuur eenvoudiger en robuuster maken. Laten we hun voordelen van dichterbij bekijken:
Resource-efficiëntie en kostenbesparing
Omdat VM’s dezelfde hardware delen, kun je veel meer uit je fysieke servers halen door VM’s te gebruiken. Het combineren van verschillende omgevingen vermindert de noodzaak om hardware aan te schaffen voor een specifiek gebruik en maakt gedeeld gebruik van resources en algehele kostenbesparingen mogelijk.
Isolatie en beveiliging
Omdat elke VM onafhankelijk van het hostsysteem draait, is deze van nature geïsoleerd. Dit verhoogt de beveiliging door het risico te minimaliseren dat het crashen of compromitteren van één systeem een groter probleem wordt. Meestal is er geen communicatie tussen VM’s en zijn ze niet van elkaar afhankelijk, waardoor problematische VM’s eenvoudig kunnen worden uitgeschakeld of beveiligingsproblemen snel kunnen worden geïsoleerd.
Flexibiliteit en portabiliteit
VM’s bieden veel flexibiliteit voor IT-infrastructuren omdat ze eenvoudig te repliceren zijn. Dit vereenvoudigt zaken wanneer meerdere omgevingen gelijktijdig moeten worden opgestart, omdat ze dezelfde opstartinstructies kunnen delen. Dit maakt ook eenvoudig testen, back-ups en disaster recovery mogelijk.
Veelvoorkomende use-cases voor virtuele machines
Laten we enkele van de meer gangbare toepassingen van VM’s bespreken. Ze kunnen elke taak uitvoeren die op een normale computer kan worden gedaan en zijn van onschatbare waarde voor allerlei operaties!
Test- en ontwikkelomgevingen
Ontwikkelaars gebruiken VM’s vaak om test- en ontwikkelomgevingen te creëren voor nieuwe software of patches. VM’s maken het gemakkelijk om wijzigingen aan een programma in verschillende ecosystemen grondig te testen zonder de hostmachine te beïnvloeden. Eén script kan worden gebruikt om dezelfde wijziging op uiteenlopende VM’s te deployen voor testen.
Serverconsolidatie
Professionals consolideren meerdere fysieke servers tot minder exemplaren met behulp van VM’s. Dit vermindert de totale hardware-onderhoudskosten en bespaart ruimte in serverruimtes. Het verbetert ook de resourcebenutting, omdat fysieke machines niet langer aan één omgeving of taak vastzitten.
Legacy-applicaties draaien
Naarmate technologie verandert, kunnen moderne besturingssystemen mogelijk geen legacyprocessen meer ondersteunen. Een VM gebruiken kan deze legacy-applicaties in de lucht houden terwijl ze worden gemoderniseerd, zodat de operaties zonder problemen kunnen doorgaan.
Disaster recovery en back-ups
Met het groeiende volume aan data en informatie kunnen VM’s dienen als snelle back-ups van volledige omgevingen om de robuustheid van een systeem te vergroten. Als één VM op een fysieke server crasht, kunnen andere kopieën van dezelfde VM blijven draaien of het overnemen. Dit is een kernonderdeel van cloud computing.
Cloud computing
Het merendeel van de cloud draait op virtualisatie. Cloudplatforms zoals AWS, Azure en Google Cloud kunnen schaalbare en flexibele infrastructuur bieden omdat het eenvoudig is om virtuele machines te starten en te stoppen. Ze kunnen snel virtuele kopieën maken van volledige websites of programma’s om groeiende vraag te ondersteunen en ze vervolgens weer uitschakelen wanneer ze niet meer nodig zijn.
Wil je meer leren over hoe cloud computing virtualisatie benut, bekijk dan de cursus over het begrijpen van cloud computing.
Virtuele machines in data science
Dankzij hun flexibiliteit en nut zijn VM’s uitstekende tools voor data science! Hier zijn enkele van hun vele toepassingen op dit gebied:
Geïsoleerde ontwikkelomgevingen
Net zoals software engineers VM’s kunnen gebruiken voor het bouwen van unieke ontwikkelomgevingen, kunnen data scientists VM’s gebruiken om geïsoleerde omgevingen te creëren voor verschillende dataprojecten.
Je zou bijvoorbeeld één VM kunnen gebruiken om een predictief model in Python te bouwen en een andere om data voor te bewerken met R. Deze scheiding maakt het mogelijk om meerdere rekenintensieve projecten gelijktijdig in verschillende omgevingen te draaien, wat de efficiëntie verhoogt.
Reproduceerbaarheid in data science-experimenten
Data scientists moeten vaak resultaten kunnen reproduceren. Wanneer je bijvoorbeeld een deep learning-model traint, kun je een VM delen met je collega’s die dezelfde versie van TensorFlow, libraries en datasets bevat. Dit zorgt voor consistentie in experimenten en elimineert het risico dat omgevingsverschillen de uitkomsten beïnvloeden.
Schaalbaarheid voor big data-projecten
Naarmate projecten groeien, kunnen meerdere clusters van virtuele machines in de cloud nodig zijn. Stel je voor dat je een natural language processing-model traint op terabytes aan tekstdata; cloudproviders zoals AWS kunnen de workload automatisch over meerdere VM’s verdelen. Tools zoals Apache Spark kunnen bijvoorbeeld virtuele clusters benutten om grootschalige berekeningen efficiënt af te handelen.
Populaire software voor virtuele machines
Er zijn veel tools waarmee je virtuele machines op je computer en in bedrijfsomgevingen kunt draaien. Dit zijn enkele van de populairste:
VMware
VMware is een van de populairste virtualisatietools voor enterprise-omgevingen. Het biedt robuuste ondersteuning en cloudgebaseerde oplossingen. VMware werkt met klanten samen om tools te leveren voor desktop- en servervirtualisatie, afhankelijk van hun behoeften. Hun belangrijkste hypervisor is de VMware ESXi Type 1-hypervisor, die eenvoudige servervirtualisatie mogelijk maakt en een gebruiksvriendelijke HTML5-interface biedt.
Microsoft Hyper-V
Microsofts Hyper-V is een hypervisor die is afgestemd op de Windows Server-omgeving. Dat betekent dat alle virtualisatie een Windows-OS vereist om te draaien en schijfpartities gebruikt. Het maakt eenvoudige virtualisatie van virtuele desktops in de Windows Server-omgeving mogelijk en is een uitstekende oplossing voor wie in het Windows-ecosysteem of zelfs Azure wil blijven.
VirtualBox
VirtualBox is een van de populairste open-source virtualisatiesoftwarepakketten. Het stelt gebruikers in staat om op hun eigen computers virtuele desktops van welke aard dan ook te creëren. Het biedt een eenvoudige interface en kan schijfimages gebruiken voor eenvoudige reproduceerbaarheid. Dit is een geweldige instaptool in de wereld van virtualisatie en sterk aan te raden voor oefening en ervaring.
KVM (Kernel-based Virtual Machine)
De Linux-kernel stelt je in staat om machines te creëren die KVM’s worden genoemd. Elk modern Linux-systeem wordt geleverd met KVM en stelt gebruikers in staat om elk Linux-gebaseerd stuk hardware in een hypervisor te veranderen. Het benut de bestaande hardware en wordt vaak beheerd met virtualisatiesoftware zoals Red Hat.
Conclusie
Virtuele machines zijn een integraal onderdeel van het IT-ecosysteem doordat je snel meerdere virtuele omgevingen vanaf één server kunt creëren. Ze worden vaak beheerd door hypervisorsoftware, die resources naar behoefte creëert en toewijst. Dit zorgt voor betere resourcebenutting, reproduceerbaarheid, veerkracht en efficiëntie, vooral wanneer meerdere processen parallel moeten draaien.
Wil je deze concepten verkennen en begrijpen hoe VM’s zich verhouden tot technologieën zoals containers, bekijk dan de cursus over containerisatie- en virtualisatieconcepten. Het is een geweldige manier om je begrip van deze essentiële technologieën te verdiepen!
Virtuele machines (VM’s) zijn een kernonderdeel van IT-infrastructuur. Het zijn softwarematige emulaties van fysieke computers die logistieke en computationele flexibiliteit bieden.
In dit artikel leg ik uit wat virtuele machines zijn, hoe ze werken, hun voordelen, veelvoorkomende use-cases en meer!
Wat is een virtuele machine (VM)?
Een virtuele machine is een technologie die complete computersystemen emuleert, van CPU, geheugen, opslag en netwerkinterfaces tot het besturingssysteem.
VM’s lenen resources van de fysieke computer om deze virtuele computers te genereren. Als een computer bijvoorbeeld 8 CPU’s en 16 GB RAM heeft, kunnen we een omgeving virtualiseren met 4 CPU’s en 8 GB RAM, afgesplitst van de fysieke hardware.
We vertrouwen op hypervisors, software die de virtualisatie van hardwarebronnen aanstuurt en meerdere virtuele omgevingen beheert, om meerdere VM’s op één set hardware te beheren.
Virtuele machines vs. fysieke machines
Het is belangrijk om te begrijpen hoe een virtuele machine kan verschillen van een fysieke.
Laten we beginnen met het verschil tussen hardware en software te verduidelijken. Hardware verwijst naar de fysieke componenten van een systeem, zoals het moederbord, de CPU, het geheugen, de GPU en de opslag. Software, zoals het besturingssysteem of andere programma’s, draait op de hardware.
Fysieke machines draaien direct op hardware. VM’s daarentegen draaien software die “gevirtualiseerde” hardware creëert. Zoals we eerder noemden, kan het basissysteem 64 GB RAM hebben, maar we kunnen 32 GB RAM virtualiseren om met de virtuele machine te delen.
Omdat VM’s hardwarebronnen kunnen delen, kunnen we precies de benodigde resources toewijzen die een VM nodig heeft. Als we bijvoorbeeld een krachtige server hebben, kunnen we meerdere VM’s draaien die veel taken parallel uitvoeren met precies de resources die elke VM nodig heeft om zijn taak te volbrengen. Dit kan de algehele resourcebenutting en kosten verbeteren.
De volgende tabel zet virtuele en fysieke machines naast elkaar:
Functie
Virtuele machines (VM’s)
Fysieke machines
Hardwareafhankelijkheid
Draaien op gevirtualiseerde hardware die door software wordt geleverd.
Draaien direct op fysieke hardwarecomponenten.
Resource-allocatie
Delen hardwarebronnen (bijv. RAM, CPU) met andere VM’s.
Volledig toegewijde hardwarebronnen.
Schaalbaarheid
Zeer schaalbaar; meerdere VM’s kunnen op één fysieke machine draaien.
Beperkt door de hardware van de fysieke machine.
Efficiëntie
Maakt betere resourcebenutting mogelijk door alleen noodzakelijke resources toe te wijzen.
Kan leiden tot onderbenutting van hardware.
Flexibiliteit
Eenvoudig te herconfigureren en te repliceren.
Minder flexibel; vereist fysieke aanpassingen of vervangingen.
Kosten
Lagere kosten door het delen van resources.
Hogere kosten omdat elke machine zijn eigen hardware vereist.
Prestaties
Lichte overhead door virtualisatie.
Hogere prestaties door directe hardwaretoegang.
Typen virtuele machines
Er zijn twee hoofdsoorten virtuele machines: systeem en proces. De ene emuleert een volledig besturingssysteem, de andere een enkele applicatie:
Systeem-virtuele machines
Systeem-VM’s zijn waar we het meestal over hebben als we over VM’s spreken. Ze simuleren een compleet besturingssysteem, zoals een volledige Linux-computer. Eén stuk hardware kan op deze manier meerdere OS-instanties simuleren. Dit is handig als we meerdere omgevingen nodig hebben om verschillende dingen te doen.
Cloud-virtuele machines zijn een veelvoorkomend voorbeeld. Daarin worden volledige OS-omgevingen gehost en op afstand via internet benaderd, wat ze ideaal maakt voor schaalbare infrastructuur.
Proces-virtuele machines
Proces-VM’s zijn afzonderlijke processen die op een hostbesturingssysteem draaien. Het zijn geen volledige systemen op zichzelf, maar kleinere omgevingen die elke computer in staat stellen een applicatie te draaien die mogelijk niet native is voor het basismachinesysteem. Zo stelt de Java Virtual Machine elke machine in staat Java-applicaties native te draaien.
Proces-VM’s zijn lichter dan systeem-VM’s en worden veel gebruikt voor het draaien van specifieke, geïsoleerde applicaties, vooral in ontwikkel- en debugscenario’s.
Type VM
Beschrijving
Use-cases
Systeem-virtuele machine
Simuleert een volledige fysieke machine, inclusief hardware en een OS.
Het draaien van meerdere besturingssystemen, serverconsolidatie en testen.
Proces-virtuele machine
Draait één applicatie of proces en biedt een geïsoleerde omgeving.
Platformonafhankelijke applicatie-uitvoering, ontwikkeling en debugging.
Componenten van een virtuele machine
Elke virtuele machine heeft een paar kerncomponenten. Hoewel de exacte implementatie kan verschillen, bevatten ze doorgaans vergelijkbare onderdelen. Laten we ze in deze sectie doornemen.
1. Hypervisor
In het algemeen is een hypervisor de softwarelaag die virtuele machines initialiseert en beheert. Hij regelt de resources tussen de VM en de fysieke machine.
Er zijn twee soorten hypervisors:
2. Virtuele hardware
De hypervisor wijst virtuele hardware toe aan de VM. Dat betekent dat fysieke resources virtueel van de machine worden gescheiden en aan de virtuele omgeving worden gegeven. Dat kan inhouden dat RAM, CPU-cores en andere rekenbronnen worden opgesplitst zodat de VM processen kan draaien.
3. Gastbesturingssysteem
Het gastbesturingssysteem draait binnen de VM. Dat hoeft niet hetzelfde besturingssysteem te zijn als de host en kan elk besturingssysteem zijn. Verschillende VM’s op dezelfde hypervisor of server kunnen zelfs verschillende besturingssystemen hebben, afhankelijk van hun use-case.
4. Virtuele schijf
VM’s hebben vaak virtuele schijven om tijdelijk informatie op te slaan terwijl ze draaien. Soms verplaatsen we gegevens van een virtuele schijf naar het daadwerkelijke opslagsysteem van de hostcomputer, maar dat gebeurt zorgvuldig om schade aan de host te voorkomen.
Architectuurdiagram van een server met drie virtuele machines. Beeldbron: DataCamp.
Virtuele machines vs. containers
Een andere populaire vorm van virtualisatie is containerisatie. Hoewel ze vergelijkbare doelen kunnen hebben, verschillen virtuele machines en containers flink in de implementatie. Laten we de verschillen bekijken.
Architectuurdiagram van een server met drie containers. Beeldbron: DataCamp.
Wanneer VM’s of containers gebruiken
Gebruik VM’s wanneer je meerdere besturingssystemen parallel moet draaien en discrete resourcebeheer nodig hebt. VM’s zijn ook te verkiezen als je een consistente en voorspelbare hoeveelheid resources voor je processen nodig hebt.
Containers zijn daarentegen ideaal voor lichtgewicht applicatie-uitrol. Omdat containers resources delen, is het belangrijk om ervoor te zorgen dat je server meerdere containers tegelijk aankan en resources passend kan toewijzen.
Als je nieuw bent met deze concepten, kun je de cursus over containerisatie- en virtualisatieconcepten handig vinden om hun use-cases te begrijpen. Voor een diepere duik in hoe VM’s en containers verschillen, bekijk de blogpost waarin containers en virtuele machines worden vergeleken.
Voordelen van virtuele machines
Virtuele machines hebben veel voordelen, waaronder een hogere resource-efficiëntie en beveiliging. Het juist inzetten van VM’s kan je technologische infrastructuur eenvoudiger en robuuster maken. Laten we hun voordelen van dichterbij bekijken:
Resource-efficiëntie en kostenbesparing
Omdat VM’s dezelfde hardware delen, kun je veel meer uit je fysieke servers halen door VM’s te gebruiken. Het combineren van verschillende omgevingen vermindert de noodzaak om hardware aan te schaffen voor een specifiek gebruik en maakt gedeeld gebruik van resources en algehele kostenbesparingen mogelijk.
Isolatie en beveiliging
Omdat elke VM onafhankelijk van het hostsysteem draait, is deze van nature geïsoleerd. Dit verhoogt de beveiliging door het risico te minimaliseren dat het crashen of compromitteren van één systeem een groter probleem wordt. Meestal is er geen communicatie tussen VM’s en zijn ze niet van elkaar afhankelijk, waardoor problematische VM’s eenvoudig kunnen worden uitgeschakeld of beveiligingsproblemen snel kunnen worden geïsoleerd.
Flexibiliteit en portabiliteit
VM’s bieden veel flexibiliteit voor IT-infrastructuren omdat ze eenvoudig te repliceren zijn. Dit vereenvoudigt zaken wanneer meerdere omgevingen gelijktijdig moeten worden opgestart, omdat ze dezelfde opstartinstructies kunnen delen. Dit maakt ook eenvoudig testen, back-ups en disaster recovery mogelijk.
Veelvoorkomende use-cases voor virtuele machines
Laten we enkele van de meer gangbare toepassingen van VM’s bespreken. Ze kunnen elke taak uitvoeren die op een normale computer kan worden gedaan en zijn van onschatbare waarde voor allerlei operaties!
Test- en ontwikkelomgevingen
Ontwikkelaars gebruiken VM’s vaak om test- en ontwikkelomgevingen te creëren voor nieuwe software of patches. VM’s maken het gemakkelijk om wijzigingen aan een programma in verschillende ecosystemen grondig te testen zonder de hostmachine te beïnvloeden. Eén script kan worden gebruikt om dezelfde wijziging op uiteenlopende VM’s te deployen voor testen.
Serverconsolidatie
Professionals consolideren meerdere fysieke servers tot minder exemplaren met behulp van VM’s. Dit vermindert de totale hardware-onderhoudskosten en bespaart ruimte in serverruimtes. Het verbetert ook de resourcebenutting, omdat fysieke machines niet langer aan één omgeving of taak vastzitten.
Legacy-applicaties draaien
Naarmate technologie verandert, kunnen moderne besturingssystemen mogelijk geen legacyprocessen meer ondersteunen. Een VM gebruiken kan deze legacy-applicaties in de lucht houden terwijl ze worden gemoderniseerd, zodat de operaties zonder problemen kunnen doorgaan.
Disaster recovery en back-ups
Met het groeiende volume aan data en informatie kunnen VM’s dienen als snelle back-ups van volledige omgevingen om de robuustheid van een systeem te vergroten. Als één VM op een fysieke server crasht, kunnen andere kopieën van dezelfde VM blijven draaien of het overnemen. Dit is een kernonderdeel van cloud computing.
Cloud computing
Het merendeel van de cloud draait op virtualisatie. Cloudplatforms zoals AWS, Azure en Google Cloud kunnen schaalbare en flexibele infrastructuur bieden omdat het eenvoudig is om virtuele machines te starten en te stoppen. Ze kunnen snel virtuele kopieën maken van volledige websites of programma’s om groeiende vraag te ondersteunen en ze vervolgens weer uitschakelen wanneer ze niet meer nodig zijn.
Wil je meer leren over hoe cloud computing virtualisatie benut, bekijk dan de cursus over het begrijpen van cloud computing.
Virtuele machines in data science
Dankzij hun flexibiliteit en nut zijn VM’s uitstekende tools voor data science! Hier zijn enkele van hun vele toepassingen op dit gebied:
Geïsoleerde ontwikkelomgevingen
Net zoals software engineers VM’s kunnen gebruiken voor het bouwen van unieke ontwikkelomgevingen, kunnen data scientists VM’s gebruiken om geïsoleerde omgevingen te creëren voor verschillende dataprojecten.
Je zou bijvoorbeeld één VM kunnen gebruiken om een predictief model in Python te bouwen en een andere om data voor te bewerken met R. Deze scheiding maakt het mogelijk om meerdere rekenintensieve projecten gelijktijdig in verschillende omgevingen te draaien, wat de efficiëntie verhoogt.
Reproduceerbaarheid in data science-experimenten
Data scientists moeten vaak resultaten kunnen reproduceren. Wanneer je bijvoorbeeld een deep learning-model traint, kun je een VM delen met je collega’s die dezelfde versie van TensorFlow, libraries en datasets bevat. Dit zorgt voor consistentie in experimenten en elimineert het risico dat omgevingsverschillen de uitkomsten beïnvloeden.
Schaalbaarheid voor big data-projecten
Naarmate projecten groeien, kunnen meerdere clusters van virtuele machines in de cloud nodig zijn. Stel je voor dat je een natural language processing-model traint op terabytes aan tekstdata; cloudproviders zoals AWS kunnen de workload automatisch over meerdere VM’s verdelen. Tools zoals Apache Spark kunnen bijvoorbeeld virtuele clusters benutten om grootschalige berekeningen efficiënt af te handelen.
Populaire software voor virtuele machines
Er zijn veel tools waarmee je virtuele machines op je computer en in bedrijfsomgevingen kunt draaien. Dit zijn enkele van de populairste:
VMware
VMware is een van de populairste virtualisatietools voor enterprise-omgevingen. Het biedt robuuste ondersteuning en cloudgebaseerde oplossingen. VMware werkt met klanten samen om tools te leveren voor desktop- en servervirtualisatie, afhankelijk van hun behoeften. Hun belangrijkste hypervisor is de VMware ESXi Type 1-hypervisor, die eenvoudige servervirtualisatie mogelijk maakt en een gebruiksvriendelijke HTML5-interface biedt.
Microsoft Hyper-V
Microsofts Hyper-V is een hypervisor die is afgestemd op de Windows Server-omgeving. Dat betekent dat alle virtualisatie een Windows-OS vereist om te draaien en schijfpartities gebruikt. Het maakt eenvoudige virtualisatie van virtuele desktops in de Windows Server-omgeving mogelijk en is een uitstekende oplossing voor wie in het Windows-ecosysteem of zelfs Azure wil blijven.
VirtualBox
VirtualBox is een van de populairste open-source virtualisatiesoftwarepakketten. Het stelt gebruikers in staat om op hun eigen computers virtuele desktops van welke aard dan ook te creëren. Het biedt een eenvoudige interface en kan schijfimages gebruiken voor eenvoudige reproduceerbaarheid. Dit is een geweldige instaptool in de wereld van virtualisatie en sterk aan te raden voor oefening en ervaring.
KVM (Kernel-based Virtual Machine)
De Linux-kernel stelt je in staat om machines te creëren die KVM’s worden genoemd. Elk modern Linux-systeem wordt geleverd met KVM en stelt gebruikers in staat om elk Linux-gebaseerd stuk hardware in een hypervisor te veranderen. Het benut de bestaande hardware en wordt vaak beheerd met virtualisatiesoftware zoals Red Hat.
Conclusie
Virtuele machines zijn een integraal onderdeel van het IT-ecosysteem doordat je snel meerdere virtuele omgevingen vanaf één server kunt creëren. Ze worden vaak beheerd door hypervisorsoftware, die resources naar behoefte creëert en toewijst. Dit zorgt voor betere resourcebenutting, reproduceerbaarheid, veerkracht en efficiëntie, vooral wanneer meerdere processen parallel moeten draaien.
Wil je deze concepten verkennen en begrijpen hoe VM’s zich verhouden tot technologieën zoals containers, bekijk dan de cursus over containerisatie- en virtualisatieconcepten. Het is een geweldige manier om je begrip van deze essentiële technologieën te verdiepen!