Wat is een virtuele machine? (Waarom en wanneer het te gebruiken)

Als je in of rond de software-industrie werkt, heb je waarschijnlijk wel eens van virtuele machines gehoord. Zo niet, dan vraagt ​​u zich misschien af ​​wat ze zijn en waarvoor ze worden gebruikt.

Als software engineer gebruik ik dagelijks virtuele machines. Het zijn krachtige tools voor softwareontwikkeling, maar ze hebben ook andere toepassingen. Ook bekend als VM’s, gebruiken veel bedrijven ze vanwege hun flexibiliteit, betrouwbaarheid en kosteneffectiviteit; ze voorkomen ook rampen door op hol geslagen softwaretests.

Laten we eens kijken wat virtuele machines zijn en waarom ze worden gebruikt.

Wat is een virtuele machine?

Een virtuele machine is een instantie van een besturingssysteem (OS) zoals Windows, Mac OS of Linux dat wordt uitgevoerd binnen het hoofdbesturingssysteem van een computer.

Meestal wordt het uitgevoerd in een app-venster op uw bureaublad. Een virtuele machine heeft volledige functionaliteit en werkt als een aparte computer of machine. In wezen is een virtuele machine een virtuele computer die draait op een andere computer die bekend staat als de hostmachine.

Virtueel-Machine 1
Afbeelding 1: virtuele machine op een laptop.

Een virtuele machine heeft geen hardware (geheugen, harde schijf, toetsenbord of monitor). Het gebruikt gesimuleerde hardware van de hostmachine. Hierdoor kunnen meerdere VM’s, ook wel ‘gasten’ genoemd, op één hostcomputer worden uitgevoerd.

Virtueel-Machine 2
Afbeelding 2: Hostmachine waarop meerdere VM’s worden uitgevoerd.

De host kan ook meerdere VM’s draaien met verschillende besturingssystemen, waaronder Linux, Mac OS en Windows. Deze mogelijkheid is afhankelijk van software die een hypervisor wordt genoemd (zie afbeelding 1 hierboven). De hypervisor draait op de hostmachine en stelt u in staat virtuele machines te maken, configureren, uitvoeren en beheren.

De hypervisor wijst schijfruimte toe, plant de verwerkingstijd en beheert het geheugengebruik voor elke VM. Dit is wat applicaties zoals Oracle VirtualBox, VMware, Parallels, Xen, Microsoft Hyper-V en vele anderen wel: het zijn hypervisors.

Een hypervisor kan draaien op een laptop, pc of server. Het maakt virtuele machines beschikbaar voor de lokale computer of gebruikers die over een netwerk zijn verspreid.

Verschillende soorten virtuele machines en omgevingen vereisen verschillende soorten hypervisors. Laten we er een paar bekijken.

Soorten virtuele machines

Virtuele systeemmachines

Systeem-VM’s, ook wel volledige virtualisatie genoemd, worden beheerd door een hypervisor en bieden de functionaliteit van een echt computersysteem. Ze gebruiken het eigen besturingssysteem van de host om systeembronnen te beheren en te delen.

Virtuele systeemmachines vereisen vaak een krachtige host met snelle of meerdere CPU’s, grote hoeveelheden geheugen en tonnen schijfruimte. Sommige, die op persoonlijke of laptopcomputers draaien, hebben mogelijk niet de rekenkracht nodig die virtuele servers voor grote ondernemingen nodig hebben; ze zullen echter traag werken als het hostsysteem niet adequaat is.

Virtuele machines verwerken

Process Virtual Machines zijn heel anders dan SVM’s – u kunt ze op uw machine laten draaien en het niet eens weten. Ze worden ook wel virtuele applicatiemachines of beheerde runtime-omgevingen (MRE’s) genoemd. Deze virtuele machines draaien in een hostbesturingssysteem en ondersteunen applicaties of systeemprocessen.

Waarom een ​​PVM gebruiken? Ze voeren diensten uit zonder afhankelijk te zijn van specifieke besturingssystemen of hardware. Ze hebben hun eigen kleine besturingssysteem met alleen de middelen die ze nodig hebben. De MRE bevindt zich in een aparte omgeving; het maakt niet uit of het op Windows, Mac OS, Linux of een andere hostcomputer draait.

Een van de meest voorkomende Process Virtual Machines is er een waarvan je waarschijnlijk hebt gehoord en die je misschien op je computer hebt zien draaien. Het wordt gebruikt om Java-applicaties uit te voeren en wordt de Java Virtual Machine of kortweg JVM genoemd.

Typen hypervisors

De meeste virtuele machines waar we ons mee bezighouden, gebruiken een hypervisor omdat ze een volledig computersysteem nabootsen. Er zijn twee verschillende soorten hypervisors: Bare Metal Hypervisors en Hosted Hypervisors. Laten we ze allebei even bekijken.

Bare Metal Hypervisor

BMH’s kunnen ook native hypervisors worden genoemd en ze draaien rechtstreeks op de hardware van de host in plaats van binnen het besturingssysteem van de host. Ze nemen in feite de plaats in van het besturingssysteem van de host en plannen en beheren het hardwaregebruik door elke virtuele machine, waardoor de ‘tussenpersoon’ (het besturingssysteem van de host) in het proces wordt uitgeschakeld.

Native hypervisors worden normaal gesproken gebruikt voor grootschalige enterprise-VM’s, die bedrijven gebruiken om werknemers te voorzien van serverbronnen. Microsoft Azure of Amazon Web Services zijn VM’s die op dit type architectuur worden gehost. Andere voorbeelden zijn KVM, Microsoft Hyper-V en VMware vSphere.

Gehoste hypervisor

Gehoste hypervisors draaien op standaard besturingssystemen, net als elke andere applicatie die we op onze machines draaien. Ze gebruiken het besturingssysteem van de host om bronnen te beheren en te distribueren. Dit type hypervisor is beter geschikt voor individuele gebruikers die meerdere besturingssystemen op hun machines moeten gebruiken.

Deze omvatten applicaties zoals Oracle VirtualBox, VMware Workstations, VMware Fusion, Parallels Desktop en vele anderen. U kunt meer gedetailleerde informatie over gehoste hypervisors vinden in ons artikel, Beste virtuele machinesoftware.

Waarom virtuele machines gebruiken?

Nu u een basiskennis hebt van wat een virtuele machine is, kunt u waarschijnlijk enkele uitstekende toepassingen bedenken. Hier zijn enkele van de belangrijkste redenen waarom mensen virtuele machines gebruiken.

1. Kostenefficient

Virtuele machines zijn in tal van situaties kosteneffectief. Een van de meest prominente is in de bedrijfswereld. Het gebruik van fysieke servers om medewerkers te voorzien van resources kan erg duur zijn. De hardware is niet goedkoop en het onderhoud ervan is nog duurder.

Het gebruik van virtuele machines als bedrijfsservers is inmiddels de norm geworden. Met VM’s van een provider als MS Azure zijn er geen initiële hardware-aankopen en geen onderhoudskosten. Deze VM’s kunnen voor slechts centen per uur worden ingesteld, geconfigureerd en gebruikt. Ze kunnen ook worden uitgeschakeld als ze niet worden gebruikt en er zijn helemaal geen kosten aan verbonden.

Het gebruik van een VM op uw machine kan ook een enorme besparing opleveren. Als u in meerdere besturingssystemen of verschillende hardwareconfiguraties moet werken, kunt u:
gebruik meerdere virtuele machines op één host – u hoeft niet de deur uit om voor elke taak een aparte computer aan te schaffen.

2. Schaalbaar en flexibel

Of het nu bedrijfsservers of VM’s op uw laptop zijn, virtuele machines zijn schaalbaar. Het is eenvoudig om de middelen aan uw behoeften aan te passen. Als u meer geheugen of ruimte op de harde schijf nodig hebt, gaat u gewoon naar de hypervisor en configureert u de VM opnieuw om meer te hebben. U hoeft geen nieuwe hardware aan te schaffen en het proces kan snel worden voltooid.

3. Snelle installatie

Een nieuwe VM kan snel worden opgezet. Ik heb gevallen gehad waarin ik een nieuwe VM-configuratie nodig had, mijn collega belde die ze beheert en ze in minder dan een uur klaar had voor gebruik.

4. Noodherstel

Als u gegevensverlies probeert te voorkomen en u voorbereidt op herstel na noodgevallen, kunnen VM’s een geweldig hulpmiddel zijn. Ze zijn gemakkelijk te back-uppen en kunnen indien nodig op verschillende locaties worden verspreid. Als een derde partij zoals Microsoft of Amazon de virtuele machines host, zullen ze off-site zijn, wat betekent dat uw gegevens veilig zijn als uw kantoor afbrandt.

5. Gemakkelijk te reproduceren

Bij de meeste hypervisors kunt u een kopie of afbeelding van een VM maken. Met beeldvorming kunt u voor elke situatie eenvoudig exacte reproducties van dezelfde basis-VM laten draaien.

In de omgeving waarin ik werk, geven we elke ontwikkelaar een VM om te gebruiken voor ontwikkeling en testen. Dit proces stelt ons in staat om een ​​afbeelding te configureren met alle benodigde tools en software. Wanneer we een nieuwe ontwikkelaar aan boord hebben, hoeven we alleen maar een kopie van die afbeelding te maken en ze hebben wat ze nodig hebben om aan de slag te gaan.

6. Perfect voor ontwikkeling/test

Een van de beste voordelen van het gebruik van virtuele machines is dat ze een perfect hulpmiddel zijn voor het ontwikkelen en testen van software. Met VM’s kunnen ontwikkelaars zich op meerdere platforms en omgevingen op één machine ontwikkelen. Als die VM beschadigd of vernietigd wordt, kan er snel een nieuwe worden gemaakt.

Ze stellen een tester in staat om voor elke testcyclus een schone nieuwe omgeving te hebben. Ik heb aan projecten gewerkt waarbij we geautomatiseerde testscripts hebben opgezet die een nieuwe VM maken, de nieuwste softwareversie installeren, alle vereiste tests uitvoeren en vervolgens de VM verwijderen zodra de tests zijn voltooid.

VM’s werken uitstekend voor producttests en beoordelingen zoals die we hier op TechFewer.com doen. Ik kan apps installeren in een VM die op mijn machine draait en ze testen zonder mijn primaire omgeving te vol te maken.

Als ik klaar ben met testen, kan ik de virtuele machine altijd verwijderen en een nieuwe maken wanneer ik hem nodig heb. Met dit proces kan ik ook op meerdere platforms testen, ook al heb ik alleen een Windows-machine.

Laatste woorden

Zoals u kunt zien, zijn virtuele machines een kostenefficiënte, veelzijdige tool die voor veel toepassingen kan worden gebruikt. We hoeven niet langer dure hardware aan te schaffen, in te stellen en te onderhouden om testers, ontwikkelaars en anderen servertoegang te bieden. VM’s bieden ons de flexibiliteit om op elk moment eenvoudig en snel de besturingssystemen, hardware en omgevingen te creëren die we nodig hebben.