In de afgelopen jaren is virtualisatie steeds meer een standaard geworden in de IT omgevingen. Inmiddels is ongeveer 75% van alle op x86 architectuur gebaseerde workloads gevirtualiseerd. Op dit moment is veel van dit aantal nog gebaseerd op virtuele machines waarin applicaties draaien. Inmiddels is een nieuwe markt aan het opkomen, die van de container virtualisatie. Eerder schreef Ronald van Vugt in zijn blog al over deze opkomst (https://metisit.wpengine.com/worden-virtuele-machines-ingepakt-door-containers/). In deze blog ga ik in op het verschil tussen de huidige virtualisatie methodes en de container virtualisatie. Hypervisors Voor het virtualiseren van de x86 servers wordt gebruik gemaakt van hypervisors. Deze hypervisors worden op een server geïnstalleerd waardoor de resources van deze servers gedeeld kunnen worden tussen de verschillende virtuele workloads die in de vorm van een virtuele machine worden geplaatst bovenop de hypervisor. Hierdoor kunnen servers geconsolideerd worden en efficiënter worden gebruikt. In een diagram ziet dit er als volgt uit: Figuur 1 De bekende hypervisors op dit moment zijn: VMware vSphere, Microsoft Hyper-V, Citrix XenServer en KVM. Waarvan momenteel VMware nog steeds de koploper is en gevolgd wordt door Microsoft. Virtuele Machines Binnen een virtuele machine wordt een operating system geïnstalleerd en daarbovenop één of meerdere applicaties. Deze applicaties maken weer gebruik van binaries en libraries die noodzakelijk zijn voor het kunnen functioneren van de applicatie. Deze worden geactiveerd of geïnstalleerd tijdens het installatie proces van de virtuele machine. Het doel van deze applicaties is veelal het ondersteunen van de business processen. Denk hierbij aan een mail-, ERP-, database- of webapplicatie. Deze virtuele machine maakt vervolgens weer gebruik van de gedeelde resources (processor, netwerk, opslag) die door hypervisor worden aangeboden. In de onderstaande afbeelding is dit grafisch weergegeven. Afbeelding2 Containers Een container is zoals gezegd een nieuwe vorm van virtualisatie die voornamelijk gericht is op de applicatie. De container technologie is gebaseerd op functies van Linux en zorgt ervoor dat een applicatie met een kleinere overhead kan functioneren. Dit wordt gedaan door het operating system en de generieke binaries en bibliotheken te delen over dezelfde set aan applicaties. Hierdoor hoef je niet voor elke nieuwe applicatie eerst een Operating System te installeren, zodat de forse overhead van een Operating Systeem niet meer aanwezig is. De Linux gebaseerde functies zorgen er vervolgens voor dat deze applicaties nog steeds volledig geïsoleerd zijn van de andere applicaties. In onderstaande afbeelding wordt dit weergegeven. Afbeelding3 Een container is door de geringe grootte zeer snel uit te rollen en doorgaans goed te verplaatsen tussen verschillende servers. Zo is het eenvoudig om een container lokaal in het eigen data center te draaien maar ook te verplaatsen naar een public cloud provider. Denk maar eens aan een website die tijdelijk extra performance nodig heeft. Een IT administrator kan simpel en binnen milliseconden een extra container uitrollen voor extra performance. Uiteraard kan dit ook geautomatiseerd worden, afhankelijk van de gevraagde capaciteit. Bekende leveranciers van online streamingdiensten zoals Spotify en Netflix werken reeds op deze manier. Zij zorgen met behulp van containers voor voldoende performance op de juiste locatie op de wereld, want ’s nachts luisteren en kijken toch minder mensen. Op dit moment is de grootste speler in de markt Docker. Docker heeft ook een eigen centrale online locatie waar gebruikers zelf samengestelde containers kunnen delen met andere gebruikers. VMware & containers Bedrijven als VMware maar ook Microsoft zien de opkomst van containers en zijn momenteel bezig om dit te integreren in het huidige platform aanbod. Op een huidige VMware omgeving kunnen momenteel containers worden aangeboden door in een Virtuele Machine containersoftware te installeren. Op deze software kunnen vervolgens verschillende containers (die een functionaliteit aanbieden) worden uitgerold. Het nadeel hiervan is dat een beheerder niet meer kan zien wat er precies binnen deze virtuele machine gebeurt en weet ook niet dat daar verschillende containers in draaien. VMware en Microsoft zijn momenteel bezig om container software te integreren binnen de bestaande Hypervisors en Operating Systemen. Hierdoor kunnen containers rechtstreeks worden uitgerold op een hypervisor en ziet dit er voor een beheerder uit als een normale virtuele Machine. Tijdens VMworld Europe werd deze technologie ook aan het publiek getoond. Zo was het mogelijk om Wordpress te draaien op een VMware datacenter, maar ook het spelen van Prince of Persia behoort tot de mogelijkheden. Containers binnen uw bedrijf? Voorlopig blijft de overgang naar virtuele machines nog volop in gang. Maar er wordt ook zeker door bedrijven al gekeken naar containertechnologie. Voornamelijk in test en development omgevingen wordt er gekeken naar deze nieuwe vorm van virtualisatie. Het biedt mogelijkheden om binnen enkele seconden een nieuwe release uit te kunnen rollen. Voor traditionele applicaties zijn containers momenteel nog niet geschikt. Het zijn voornamelijk op dit moment Linux applicaties die geschikt zijn voor gebruik binnen containers. De markt van containers is nog volop in ontwikkeling en het is mogelijk dat container technologie uiteindelijk ook voor de Enterprise applicaties geschikt wordt.