Containerisatie: wat is het en hoe werkt het?

Containerisatie: wat is het en hoe werkt het?

Ik spreek veel IT-bedrijven en IT-medewerkers en 1 van de belangrijkste trends die we vandaag de dag veel voorbij horen komen is die van containerisatie. Laten we eens verder inzoomen op betekenis van het woord ‘containers’. De term “container” komt uit de scheepswereld.  Het is een metalen kist, die het mogelijk maakt om producten eenvoudig te isoleren, verplaatsen en te stapelen op verschillende transportmediums (zoals boten, vrachtauto’s en treinen).

 

Deze eigenschappen zitten ook in “software” containers. Containerisatie bestaat al sinds 1979 en is afkomstig uit de Linux wereld. Het heeft meer naamsbekendheid gekregen door de leverancier Docker Inc (Docker) in 2013. Docker gebruikte eerst de LXC runtime , maar ontwikkelde later haar eigen runtime genaamd libcontainer. Docker heeft deze gedoneerd aan het Open Container Initiative (OCI), OCI heeft als taak een open standaard te creëren voor container images en runtimes. Tegenwoordig voldoen alle grote container leveranciers aan deze standaard (zie hier) en is het dus heel makkelijk geworden om containers op verschillende platformen te draaien. Een container runtime engine maakt het mogelijk applicaties te “virtualiseren/ isoleren” op een onderliggend besturingssysteem, zoals Linux. Hierdoor is het mogelijk om applicaties geïsoleerd naast elkaar te laten functioneren.

 

In een container zitten alle afhankelijkheden van de software; de code, de ondersteunende tools, en de runtime. Hierdoor kunnen verschillen op het niveau van infrastructuur niet meer voor problemen zorgen, doordat de container alle applicatieplatformen, alle software en alle afhankelijkheden ‘containeriseert’.

 

Picture 1

 

Door met containers te werken, vergroot men de flexibiliteit van hun organisatie. U kunt in no-time namelijk (op)schalen of de workload/applicatie verschuiven naar een ander platform. Een container omvat dus niet alleen de applicatie zelf, maar ook alle randvoorwaarden die nodig zijn om de applicatie te laten draaien. Zie het als een orkest, het container orchestration framework. Elk orkest heeft een dirigent die de muzikanten vertelt hoe ze moeten spelen, waarna ze direct kunnen anticiperen op de wensen van de dirigent. Dit geldt ook voor containers. Containers zijn vooral geschikt voor nieuwe (Cloud Native) applicaties maar kunnen ook gebruikt worden bijvoorbeeld als tussenstap in een migratiescenario bij traditionele applicaties.

 

Picture 2

 

Infrastructuur en architecturen zijn tegenwoordig meer dan fysieke hardware die in een datacenter staat. Het kan vandaag de dag ook over locaties in de (public/private/hybride/Multi) Cloud gaan. Hoe werkt dat met containers? Doordat containers onafhankelijk zijn, maakt het een stuk minder uit op welk platform ze draaien. Neem als voorbeeld een upgrade- of migratie-scenario waarbij een platform moet worden vernieuwd of meer capaciteit toegevoegd moet worden: als dit gebeurt binnen een gecontaineriseerde omgeving, dan is server- of Cloud capaciteit simpel toe te voegen aan het containerplatform, en zorgt de orkestratie-laag ervoor dat de applicatie eventueel wordt ‘herverdeeld’ of verplaatst.

 

De infrastructuur die men als organisatie momenteel gebruikt gaat in de toekomst hoogstwaarschijnlijk veranderen. Hierdoor is het goed om als IT-afdeling nauw samen te werken en te weten waar men aan begint met containerisatie. Vooral de samenwerking tussen ontwikkelaars en de operationele afdelingen zijn van groot belang. Al helemaal omdat het vernieuwen van applicaties die voor de container geschikt zijn, noodzakelijk is.

Picture 3

 

Als u containers gaat opspinnen in grote getallen, wilt u dit proces automatiseren (daar ga ik voor het gemak even van uit). Naast het automatiseren van de omgeving zelf, verandert de architectuur van uw applicaties, waardoor het vaak nodig is om nieuwe en andere technieken te gebruiken om uw applicaties op te bouwen. De scheidslijn tussen ontwikkeling en ‘beheer’ verschuift daardoor. Hierdoor komt de term DevOps ook altijd ter sprake bij gesprekken rondom containerisatie.

 

Wat is dan DevOps? Meer dan een methodologie bij het ontwikkelen van software is DevOps een cultuur, die nodig is om te kunnen beantwoorden aan de huidige behoeften bij het ontwikkelen van toepassingen, applicaties en meer. Bij het traditionele waterval-model waren de vereisten voor een software op voorhand duidelijk en vastomlijnd. De definitie van het product zelf was ook stabiel. De ontwikkelaars codeerden de software, en de operationele teams moesten die dan implementeren op de bedrijfssystemen. Maar de IT-wereld evolueert steeds sneller. De vereisten veranderen vaak, en ook het ontwikkelen van de software moet steeds sneller gaan. Software en applicaties moeten niet alleen sneller op de markt gebracht worden, maar ook voortdurend aangepast kunnen worden. Nieuwe features moeten naadloos toegevoegd kunnen worden, inmiddels ontdekte bugs moeten opgelost worden. Dit leidde tot het Agile Development model.

 

Het is echter niet alleen het team ontwikkelaars dat snel en wendbaar moet reageren, ook het operationele team, dat de nieuwe toepassingen moet uitrollen en monitoren. Dit leidt op zijn beurt tot de DevOps aanpak. Velen associëren deze term met een nauwere samenwerking tussen de ontwikkelaars, de bedenkers van een product, en de ops, het operationele team dat zorgt voor de release, het uitrollen, het opereren en monitoren van de software. Maar DevOps is veel meer - het is een 'state of mind', een gezamenlijke aanpak van een probleem. Een aanpak die verder gaat dan het puur technische, een aanpak waarbij alle geledingen van het bedrijf betrokken worden, ook financiën en marketing, en waarbij communicatie levensnoodzakelijk is. Het slagen van een containerisatie-platform is daarom ook erg afhankelijk van het feit of men DevOps goed hebt kunnen omarmen/integreren binnen de organisatie en de cultuur hierop hebt kunnen aanpassen.

Picture 4

 

Kubernetes, ook wel ‘k8s’ genoemd, is een systeem voor het beheren van grote groepen containers en gecontaineriseerde applicaties. Met deze techniek kunt u de werking van containers organiseren, dat heet ‘Container Orchestration’. Kubernetes werd oorspronkelijk ontwikkeld door Google, maar kreeg een eigen leven binnen de open source community. Met Kubernetes kunt u héél veel containers beheren zonder het overzicht te verliezen.

 

Schaaluitbreiding doen we vandaag de dag horizontaal: méér standaard servers, in plaats van steeds groter en zwaardere. Microservices, een belangrijke trend in applicatieontwikkeling, maakt dat we de grote software-blokken opknippen in vele kleintjes. Het resultaat is dat men véél meer te beheren krijgt: tientallen, honderden of zelfs duizenden Nodes. In een typische Cloud-aanpak zijn dat niet langer ‘servers’ maar ‘containers’. Met Kubernetes is er gelukkig ook een nieuwe manier om dit alles te beheren.

 

Kubernetes maakt orkestratie mogelijk, dit betekent automatiseren van het management van de containers. Ze kunnen binnen enkele seconden worden opgestart, manueel of automatisch. Kubernetes start de containers op, zorgt voor o.a. load balancing, failover, routering van netwerkverkeer bij grote drukte, makkelijke (automatische) opschaling, maar ook voor downscalen van resources als het rustig is. Loopt een container vast, dan zorgt Kubernetes voor een nieuwe.

 

Net dat is de kracht van Kubernetes. U kunt containers geheel automatisch, volgens vooraf vastgelegde criteria laten starten en stoppen.

Picture 5

 

Als we dan naar Kubernetes kijken dan is dit zoals al eerder aangegeven geheel open-source geworden wat betekend dat er weinig tot geen zekerheden zijn t.o.v. lifecycle management, support, security en compatibiliteit. Er zijn tegenwoordig steeds meer Vendoren op de markt die deze trend oppakken en een supported variant van Kubernetes op de markt brengen zodat men dit ook op een Enterprise-waardige manier productie ready kan inzetten. Marktleider op dit moment van een supported Kubernetes oplossing is Red Hat met hun Openshift propositie. Red Hat OpenShift onderscheidt zich o.a. op het feit dat zij alles wat men nodig hebt, out-of-the-box, in 1 totaaloplossing aanbieden. Kubernetes is maar 1 laag van de totaaloplossing, naast Kubernetes heb je ook diverse andere tooling/software nodig als OS, logging, monitoring, automation, service mesh en diverse ontwikkel tools en CI/CD. Met Red Hat OpenShift krijgt u dit alles vanuit 1 totaaloplossing perfect op elkaar afgestemd en geïntegreerd. Verder heeft Red Hat als aanvulling hierop Advanced Cluster Management waarmee beheer van Multi- en Hybride Cloud vanuit 1 punt gedaan kan worden en met Advance Cluster Security brengen zij security integratie naar DevOps. De diverse andere vendoren die supported Kubernetes aanbieden zijn veel minder geïntegreerd en hebben vaak nog heel veel extra tools en software nodig om er een werkbaar platform van te maken.

Picture 6

 

Steeds meer bedrijven kiezen op dit moment voor containers en een Container Orchestration Platform als bv. Kubernetes of Red Hat OpenShift, de reden hiervoor kan voor elk bedrijf anders zijn maar hierbij enkele voorbeelden van bedrijven die al succesvol gebruik maken van Containers en een een Container Orchestration Platform en een link waar u meer info hierover kan terugvinden:

  • RIVM: Corona Infectie Radar, Een van de redenen om voor Containers & OpenShift te kiezen was het multi-tenancy aspect. Lees hier
  • VW groep: The Volkswagen Group builds automated testing environment. Lees hier.
  • Airbus: To build a path to faster application delivery with DevOps practices. Lees hier.
     

Al met al hoop ik dat deze blog eenieder helpt om wat meer gevoel en begrip te krijgen met de trend containerisatie, in een volgende blog zullen wij meer vertellen over Red Hat OpenShift en de mogelijkheden die deze als de marktstandaard in Container Orchestration Platform u en uw klanten kan bieden. Indien u alvast wat meer informatie hierover wilt hebben of gewoon eens wilt sparren rondom de mogelijkheden dan staan wij graag voor u klaar om u hierbij te helpen.

 

Meer informatie?

Bij Ingram Micro staat er een team van acht medewerkers klaar dat u kan helpen bij al uw vragen rondom Red Hat, de oplossingen van Red Hat en partnerships met Red Hat. Wij kunnen u als partner helpen bij sales gerelateerde vragen, maar ook bij marketing- en technische vraagstukken.

Neem contact met ons op via eos@ingrammicro.com of op tel. 030 246 4350.

Meer lezen over Red Hat

Neem contact met ons op

Terug naar de blog
  • Categorie Trends en inzichten in de branche

  • Geschreven door Jeffrey Stolker

  • Gepubliceerd op March 10, 2022

Jeffrey

Jeffrey Stolker, Sr Product Manager EOS, Ingram Micro