Containers hebben voor- en nadelen: een kijkje naar een paar voorbeelden.

Virtualisatie heeft de behoefte aan bare metal niet veranderd en zo zorgt containerisatie ook niet voor het verdwijnen van virtualisatie. Het draait allemaal om de juiste tools voor de juiste klus. Laten we eens kijken naar drie verschillen tussen de twee.

Containers en virtuele machines lijken misschien dezelfde problemen op te lossen op een soortgelijke manier. Maar dat is eigenlijk hetzelfde als een schroevendraaier die ook als goede hamer kan functioneren. Het is gereedschap met een eigen functie, die voor ongeveer hetzelfde gebruikt zou kunnen worden. Maar professionals zien de sterke en zwakke punten voor elke functie en zetten het juiste gereedschap voor het juiste werk in.

De concepten bestaan al decennia. Servervirtualisatie is mainstream gegaan in 2001 toen VMware serversoftware GSX en ESX introduceerde. Maar de ideeën komen uit de jaren 60 met de eerste productievoorbeelden begin jaren 70. De technologie heeft dus al een lange geschiedenis achter de rug en is met een robuust ecosysteem behoorlijk volwassen geworden.

Afhankelijk van hoe je het bekijkt, bestond containertechnologie al vóór VMware überhaupt bestond. Het is alleen nooit mainstream gegaan. Het ecosysteem begint zich nu goed te vormen en er komen de juiste tools beschikbaar. Ook zie je dat diverse techbedrijven verschillende containerisatiebedrijven aankopen en ze elkaar de loef proberen af te steken in deze markt.

Het is altijd goed om een discussie te voeren over dit soort wezenlijke concepten, zodat we allemaal de nuances leren te begrijpen. Bovendien moeten we als techneuten voorkomen dat we elkaar als lemmingen achterna lopen en juist geïnformeerde beslissingen nemen. Ik wil het hier graag hebben over drie punten van aandacht die bij VM’s en containers spelen.

1. Je hebt sneller containersprawl dan VM-sprawl

Sprawl lijkt een slechte zaak, omdat het leidt tot onnodige complexiteit. Maar sprawl is alleen slecht als het ongepland is of er niet op wordt gelet. Door systemen los te koppelen en monolithische applicaties en diensten van elkaar te scheiden heb je voordelen als schaalbaarheid en snellere uitrol.

Elke verandering brengt risico’s met zich mee en hoe meer geïsoleerd de wijziging is, hoe kleiner de impact als je wilt terugrollen. Als deployments minder risicovol zijn, kun je er meer van uitvoeren. Containers en VM’s brengen dus ook snelheid naast sprawl en dat is een goede zaak: features en bugfixes komen veel sneller aan bij je klanten.

Het duurde even voor de tooling van VM’s volwassen genoeg werd voor zakelijk gebruik en dat geldt ook voor containers. Ik verwacht wel dat het bij containerisatie veel sneller gaat dan bij virtualisatie, omdat veel VM-beheer ook van toepassing is op containers. We zien al verschillende totaaloplossingen voor zulk beheer. Docker heeft Universal Control Plane en kocht onlangs Tutum. Voor totaalbeheer heb je tools als Kubernetes en Rancher en ik vermoed dat we nog meer van dergelijke tools zullen zien voordat je een bredere consolidatie krijgt van virtuele middelen.

2. VM’s hebben meer netwerkmogelijkheden

Dit is waar, maar dit is een gebied waar hard aan wordt gewerkt bij containers. Vorig jaar kocht Docker het bedrijf SocketPlane om dit gemis aan te pakken. Het idee is om een oplossing aan te bieden die extensies ondersteunt. Ik heb een paar presentaties gezien van de mensen van SocketPlane en dat is een slimme groep die snel innoveert. In Docker 1.9 zit native ondersteuning voor een overlay netwerk. Is het perfect? Nee. Maar zoals ik zei: ze innoveren snel en ik verwacht dat het gat tussen virtualisatie en containerisatie wat betreft networking door dit soort ontwikkeling verdwijnt.

3. Geheugenstaat pauzeren is niet mogelijk met containers

VM’s zijn makkelijk te starten en te stoppen, maar dat geldt niet voor containers. Dat komt omdat containers, specifiek die van Docker, zijn ontworpen voor applicaties waarbij het niet nodig was om de memory state op te slaan. Maar interessant genoeg blijken drie op de vier IT-pro’s wel geïnteresseerd in stateful applicaties in Docker-containers. Sinds Docker 1.9 is het mogelijk om opslagvolumes te veranderen in containers. Volumebeheer in Docker gaat met open source-project Flocker. Kortom, met een vraag naar dit soort containerisatiemogelijkheden, zullen zakelijke oplossingen niet lang achterblijven.

Net zoals VM’s de noodzaak voor bare metal niet veranderden, lijkt het me ook niet dat containers virtuele machines gaan vervangen. Het is geen en/of-situatie: VM’s zijn nodig om containers te draaien. Het draait uiteindelijk om de vraag wat de functionaliteit is die je nodig hebt en wat daarvoor het juiste gereedschap is.

Dan Jones is productmanager by Skytap, een publieke clouddienst voor on-premise applicaties. Hij werkte daarvoor aan IT-integratietrajecten bij Nordstrom, Microsoft en IBM Rational.

Bron: computerworld.nl