Inhoudsopgave
Als u in of rond de software-industrie werkt, hebt u 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 hulpmiddelen bij 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 die draait binnen het hoofd OS van een computer.
Een virtuele machine heeft volledige functionaliteit en gedraagt zich als een aparte computer of machine. In wezen is een virtuele machine een virtuele computer die draait in een andere computer, de zogenaamde hostmachine.
Afbeelding 1: Virtuele machine op een laptop.
Een virtuele machine heeft geen hardware (geheugen, harde schijf, toetsenbord of monitor), maar gebruikt gesimuleerde hardware van de hostmachine. Hierdoor kunnen meerdere VM's, ook wel "gasten" genoemd, op één hostmachine draaien.
Afbeelding 2: Hostmachine waarop meerdere VM's draaien.
De host kan ook meerdere VM's met verschillende besturingssystemen draaien, 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, te configureren, uit te voeren en te beheren.
De hypervisor wijst schijfruimte toe, plant de verwerkingstijd en beheert het geheugengebruik voor elke VM. Dit is wat toepassingen zoals Oracle VirtualBox, VMware, Parallels, Xen, Microsoft Hyper-V en vele andere doen: het zijn hypervisors.
Een hypervisor kan draaien op een laptop, pc of server. Hij maakt virtuele machines beschikbaar voor de lokale computer of voor 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
Systeem Virtuele Machines
Systeem-VM's, ook wel volledige virtualisatie genoemd, worden uitgevoerd door een hypervisor en bieden de functionaliteit van een echt computersysteem. Ze gebruiken het native besturingssysteem van de host om systeembronnen te beheren en te delen.
Systeem virtuele machines vereisen vaak een krachtige host met snelle of meerdere CPU's, grote hoeveelheden geheugen, en tonnen schijfruimte. Sommige, die draaien op persoonlijke of laptop computers, hebben misschien niet de rekenkracht nodig die grote enterprise virtuele servers nodig hebben; ze zullen echter traag draaien als het host systeem niet adequaat is.
Proces Virtuele Machines
Proces Virtuele Machines zijn heel anders dan SVM's - u kunt ze op uw machine hebben draaien zonder het te weten. Ze zijn ook bekend als applicatie virtuele machines of managed runtime environments (MRE's). Deze virtuele machines draaien binnen een host besturingssysteem en ondersteunen toepassingen of systeemprocessen.
Waarom een PVM gebruiken? Ze voeren diensten uit zonder afhankelijk te zijn van specifieke besturingssystemen of hardware. Ze hebben hun eigen kleine OS met alleen de middelen die ze nodig hebben. De MRE bevindt zich in een aparte omgeving; het maakt niet uit of deze draait op Windows, Mac OS, Linux of een andere hostmachine.
Een van de meest voorkomende Process Virtual Machines is er een waarvan u waarschijnlijk wel eens hebt gehoord en die u misschien wel eens op uw computer hebt zien draaien. Hij wordt gebruikt om Java-toepassingen te draaien en heet de Java Virtual Machine of kortweg JVM.
Soorten Hypervisors
De meeste virtuele machines waar wij ons mee bezighouden gebruiken een hypervisor, omdat ze een heel computersysteem emuleren. 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 zij draaien rechtstreeks op de hardware van de host in plaats van binnen het besturingssysteem van de host. In feite nemen zij de plaats in van het besturingssysteem van de host, en plannen en beheren zij het gebruik van de hardware door elke virtuele machine, waardoor de "tussenpersoon" (het besturingssysteem van de host) wordt uitgeschakeld.
Native hypervisors worden gewoonlijk gebruikt voor grootschalige enterprise VM's, die bedrijven gebruiken om werknemers van serverresources te voorzien. 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
Hosted 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 verdelen. Dit type hypervisor is beter geschikt voor individuele gebruikers die meerdere besturingssystemen op hun machines moeten draaien.
Hieronder vallen toepassingen als Oracle VirtualBox, VMware Workstations, VMware Fusion, Parallels Desktop en vele andere. Meer gedetailleerde informatie over gehoste hypervisors vindt u in ons artikel Beste software voor virtuele machines.
Waarom virtuele machines gebruiken?
Nu u een basisbegrip hebt van wat een virtuele machine is, kunt u waarschijnlijk een aantal uitstekende toepassingen bedenken. Hier zijn enkele van de belangrijkste redenen waarom mensen virtuele machines gebruiken.
1. Kosteneffectief
Virtuele machines zijn kosteneffectief in tal van situaties. Een van de meest prominente is in de bedrijfswereld. Het gebruik van fysieke servers om werknemers van middelen te voorzien kan zeer duur zijn. De hardware is niet goedkoop, en het onderhoud ervan is nog duurder.
Het gebruik van virtuele machines als bedrijfsservers is nu de norm geworden. Met VM's van een provider als MS Azure zijn er geen initiële hardwareaankopen en geen onderhoudskosten. Deze VM's kunnen worden opgezet, geconfigureerd en gebruikt voor slechts een paar centen per uur. Ze kunnen ook worden afgesloten wanneer ze niet worden gebruikt, zonder enige kosten.
Het gebruik van een VM op uw machine kan ook veel geld besparen. Als u werk moet doen in meerdere besturingssystemen of verschillende hardwareconfiguraties, kunt u
meerdere virtuele machines op één host gebruiken - u hoeft niet voor elke taak een aparte computer aan te schaffen.
2. Schaalbaar en flexibel
Of het nu gaat om bedrijfsservers of VM's die op uw laptop draaien, virtuele machines zijn schaalbaar. Het is gemakkelijk om de resources aan te passen aan uw behoeften. Als u meer geheugen of harde schijfruimte nodig hebt, gaat u gewoon naar de hypervisor en herconfigureert u de VM voor meer geheugen. 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 moest opzetten, mijn collega belde die ze beheert, en ze in minder dan een uur gebruiksklaar had.
4. Herstel na rampen
Als u probeert gegevensverlies te voorkomen en u voor te bereiden op noodherstel, kunnen VM's een geweldig hulpmiddel zijn. Ze zijn gemakkelijk te back-uppen en kunnen indien nodig op verschillende locaties worden gedistribueerd. Als een derde partij zoals Microsoft of Amazon de virtuele machines host, zijn ze off-site, wat betekent dat uw gegevens veilig zijn als uw kantoor afbrandt.
5. Gemakkelijk te reproduceren
Met de meeste hypervisors kunt u een kopie, of image, van een VM maken. Met imaging kunt u gemakkelijk exacte reproducties van dezelfde basis-VM draaien voor elke situatie.
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 image te configureren met alle benodigde tools en software. Wanneer we een nieuwe ontwikkelaar inwerken, hoeven we alleen maar een kopie te maken van dat image, en ze hebben wat ze nodig hebben om aan de slag te gaan.
6. Perfect voor Dev/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 op één machine op meerdere platforms en omgevingen ontwikkelen. Als die VM corrupt raakt of vernietigd wordt, kan snel een nieuwe worden gemaakt.
Ik heb aan projecten gewerkt waar we geautomatiseerde testscripts opzetten die een nieuwe VM creëren, de laatste softwareversie installeren, alle vereiste tests uitvoeren en de VM verwijderen zodra de tests zijn voltooid.
VM's werken uitstekend voor het testen en beoordelen van producten zoals wij hier bij SoftwareHow.com doen. Ik kan apps installeren in een VM op mijn machine en ze testen zonder mijn primaire omgeving te belasten.
Als ik klaar ben met testen, kan ik de virtuele machine altijd verwijderen en een nieuwe maken als ik hem nodig heb. Dit proces stelt me ook in staat om op meerdere platforms te testen, ook al heb ik alleen een Windows machine.
Laatste woorden
Zoals u ziet, zijn virtuele machines een kostenefficiënt, veelzijdig hulpmiddel dat voor vele toepassingen kan worden gebruikt. We hoeven niet langer dure hardware aan te schaffen, in te stellen en te onderhouden om testers, ontwikkelaars en anderen toegang tot servers te bieden. VM's geven ons de flexibiliteit om gemakkelijk en snel de besturingssystemen, hardware en omgevingen te creëren die we nodig hebben - op elk moment.