Tegenwoordig is het al lang niet meer zo dat elke computer één systeem draait. In tegendeel, door gebruik te maken van virtualisatie is het mogelijk om meerdere systemen op een enkele fysieke computer te draaien. Dit kan op verschillende manieren, en heeft daarbij verschillende toepassingen. In dit artikel gaan we in op de techniek, en de mogelijkheden.

Geschreven door Bart Wesselink, Head of Development

Techniek

In de basis houdt virtualisatie in dat er een virtuele versie van een computer wordt gemaakt. Deze virtuele bevat geen fysieke hardware, maar gevirtualiseerde hardware, welke gedeeld kan worden door meerdere mensen. Hoewel er verschillende virtualisatietechnieken zijn, zijn er in principe 3 lagen te definiëren: het host-systeem, het guest-systeem en de virtualisatielaag. Het host-systeem is feitelijke machine, het guest­-systeem het gevirtualiseerde systeem en de virtualisatielaag de lijm daartussenin die zorgt voor de verbinding tussen beide.

Voordelen

Het gebruik van virtualisatie kent vele voordelen. Zo kan het ervoor zorgen dat er meerdere systemen kunnen draaien op een enkel virtualisatieplatform. Daarnaast is het erg schaalbaar, doordat het mogelijk is om standaard images te gebruiken met voorgeïnstalleerde software. Deze kunnen snel en eenvoudig gestart worden, zonder extra configuratie of installatie. In het geval van een probleem met één van de machines, zorgt dit er ook voor dat de werking snel hersteld kan worden.

 

Door gebruik te maken van virtualisatietechnieken kunnen resources op een server virtueel afgeschermd en gedeeld worden, zodat verschillende afnemers niet bij elkaars data kunnen. Omdat niet elke applicatie fysieke hardware nodig heeft, liggen de kosten voor virtuele hardware vaak ook lager.

Docker

Binnen software development wordt er veel gebruik gemaakt van Docker. Met Docker draai je geen virtuele machines, maar zogeheten containers. Deze containers worden door de engine gestart en beheerd, en bevatten de verschillende onderdelen van een applicatie. Afhankelijk van de architectuur van software kunnen deze containers bijvoorbeeld je API of database bevatten.

 

Onderling kunnen deze containers met elkaar communiceren via hun eigen netwerk, dat standaard niet voor de buitenwereld beschikbaar is. Daarmee wordt databaseverkeer standaard al afgeschermd. Het is wel mogelijk om specifieke poorten beschikbaar te maken, zodat applicatieverkeer op de juiste plek binnenkomt.

Orchestreren

De plug-in van Docker genaamd Compose kan ondersteunen bij het definiëren van multi-container applicaties. In een bestand genaamd docker-compose.yml kunnen de verschillende containers ingesteld worden, en hoe ze met elkaar mogen communiceren. Een voorbeeld hiervan is te zien in de bijgevoegde afbeelding.

Door enkel docker compose up te draaien, wordt de applicatie gestart. Dit heeft veel voordelen tijdens de ontwikkeling van een software project, omdat ontwikkelaars geen tijd meer nodig hebben voor het opzetten van hun eigen omgeving. Alles wat benodigd is, is gedefinieerd in deze containers en met een simpel commando te starten.

Niet alleen kan Docker gebruikt worden tijdens de ontwikkeling van een applicatie, ook voor het hosten van applicaties kunnen containers gebruikt worden. Dit kan op veel verschillende manieren, bijvoorbeeld met een Kubernetes-cluster of een web app.

Conclusie

De techniek virtualisatie kent vele mogelijkheden en varianten. Binnen Recognize passen we de techniek zowel toe tijdens ontwikkeling (met Docker), alsmede voor het draaien van een applicatie voor schaalbaarheid en beter beheer. Meer weten over hoe dit in de praktijk gebruikt wordt? Neem gerust contact op!

LET’S
CONNECT!

Benieuwd naar wat we voor jou kunnen betekenen? Of kun je iets voor ons betekenen? Dan horen we graag van je! Bel of mail gerust. We komen graag langs om kennis te maken. En natuurlijk staan onze deuren op de zevende verdieping van de Javatoren in Almelo ook altijd voor je open.