Containerisatie is een technologie waarmee ontwikkelaars applicaties en hun afhankelijkheden kunnen verpakken in geïsoleerde omgevingen. Deze gids belicht de voordelen van containerisatie, waaronder portabiliteit, schaalbaarheid en efficiënt gebruik van resources.
Lees meer over populaire containerisatietools zoals Docker en Kubernetes, en hoe deze de uitrol en het beheer van applicaties verbeteren. Inzicht in containerisatie is essentieel voor moderne softwareontwikkeling en cloud computing.

Primaire voordelen van containerisatie
De container draait als een uitvoerbaar bestand op een containercluster, dat verspreid kan zijn over meerdere machines. Elke container fungeert als een module die de andere weerspiegelt. Als een ontwikkelaar een container of een heel cluster of set clusters moet beëindigen vanwege fouten of kwaadaardig gedrag, blijven er veel identieke containers over. De beheerder of ontwikkelaar kan eenvoudig nieuwe containers opstarten ter vervanging van de beëindigde exemplaren. Dit maakt softwareontwikkeling snel en veilig.
Het proces van het containeriseren van applicaties elimineert de problemen en fouten die ontstaan bij het verplaatsen van een niet-verpakte applicatie van het ene besturingssysteem of platform naar het andere. Doordat alles in de container zit, kan deze onafhankelijk draaien.
Wat is containerisatietechnologie?
Isolatie en containerisatie zijn bestaande concepten die zijn toegepast op moderne applicatiecontainers sinds de komst van Docker, een open-source containerengine en standaard voor containers ontworpen voor basisontwikkeltools en -omgevingen. De universeel compatibele container maakte het mogelijk dat de technologie een standaard werd voor containers. De nieuwe ontwikkelomgeving rond containers heeft nieuwe applicaties omarmd, waarbij monolithische software wordt opgesplitst in applicatieslices die services worden genoemd.
Containers zijn ontstaan uit de behoefte om applicaties te virtualiseren op manieren die virtuele machines (VM's) niet konden bieden. VM's bieden een abstractie van volledige serverhardware, inclusief CPU, geheugen en opslag. De virtuele machine kan meerdere besturingssystemen op één computer draaien. Containers virtualiseren alleen een applicatie en wat deze nodig heeft om te draaien, waardoor deze overdraagbaar is van de ene cloud naar de andere en aanpasbaar voor andere use-cases.
Applicaties in containers draaien op een basisinstallatie op een machine met een besturingssysteemkernel, het centrale punt of de kern van het besturingssysteem zodra de GUI, applicaties en drivers zijn verwijderd. Deze aanpak vermindert de overhead van het draaien van een volledig besturingssysteem voor elke applicatie. Het verlaagt het computergebruik, wat tijd en rekenkracht bespaart.
In vergelijking met de voorganger, de VM, starten containerinstanties sneller en nemen ze een minimale footprint in, waardoor ontwikkelaars er veel meer tegelijk kunnen draaien. Door hun modulaire aard zijn containers overdraagbaar naar elke omgeving en draaien ze in productie zodra de releaseversie gereed is. Als de container een fout ervaart, kan het systeem deze beëindigen en nieuwe aanmaken.
Wat zijn gecontaineriseerde applicaties?
Wrappers kapselen softwareapplicaties in containers in individuele modulaire uitvoerbare softwarepakketten. Met de configuratiebestanden en alles wat nodig is van het besturingssysteem om te draaien, is de gecontaineriseerde applicatie een geïsoleerd stukje software, dat binnen de container werkt, op andere besturingssystemen draait en alles wat verder nodig is haalt uit de kernel van de hardwarecomputer.
Een open-source runtime-engine, zoals een Docker-engine, wordt geïnstalleerd op het besturingssysteem van de hostcomputer. Containers delen het besturingssysteem met andere containers, zodat veel containers op één machine kunnen draaien voor hoge efficiëntie.
Gecontaineriseerde apps verkleinen het risico op besmetting door kwaadaardige code aanzienlijk. Als kwaadaardige code in één container verschijnt, kan deze niet ontsnappen om een andere te infecteren. De ontwikkelaar of het systeem beëindigt de geïnfecteerde container en het proces gaat ongestoord verder. Containers draaien op elk besturingssysteem of infrastructuur. Ontwikkelaars hoeven de applicatie slechts één keer te coderen. Ze hoeven deze niet opnieuw te maken voor een ander systeem. Ze kunnen dezelfde ontwikkelomgeving en toolset gebruiken voor elke applicatie.
Cloud-native containers zijn eenvoudig te distribueren over systemen en op te schalen naar behoefte. Nieuwe cloud-native applicaties die vanaf het begin zijn opgebouwd als individuele microservices die in softwarecontainers draaien, maken het mogelijk complexe applicaties op te splitsen in services. Elke service in zijn eigen container is eenvoudig te onderhouden en de herkomst is goed bekend.
Wat is de rol van containerisatie in cloud-native applicatieontwikkeling?
Applicaties bouwen binnen containers in de cloud is de meest efficiënte manier om applicaties te creëren die in en voor de cloud zijn ontwikkeld. De meeste applicaties worden op precies deze manier ontwikkeld, beheerd en uitgevoerd in de cloud.
Organisaties profiteren van het bouwen van zeer schaalbare applicaties in de cloud die eenvoudig kunnen worden bijgewerkt met nieuwe functies om aan veranderende klantbehoeften te voldoen. Apps in containers ondersteunen van nature ontwikkeling op cloudinfrastructuur. De cloud maakt realtime wijzigingen aan applicaties mogelijk terwijl de dienstverlening behouden blijft dankzij de mogelijkheid om direct duizenden nieuwe containers op te schalen. Ontwikkelaars kunnen nieuwe applicaties coderen met browsertools en workloads opzetten in de cloud op hybride resources in de multicloud voor elk uniek doel.
Cloud-native architecturen draaien gecontaineriseerde applicaties als microservices, slices of delen van wat ooit grote monolithische applicaties waren, met gebruik van open-source software voor flexibiliteit. Containers en microservices werken samen met cloudinfrastructuur, de DevOps-aanpak voor softwareontwikkeling en een continu softwareleveringsmodel.
5 voordelen van containerisatie in cloud-native applicatieontwikkeling
Beschikbaarheid en schaalbaarheid zijn moeiteloos en foutloos met containers. Met het utilitymodel van cloud computing kunnen organisaties containers opstarten of afschalen naar de actuele behoefte zonder extra capaciteit aan te schaffen als dat niet nodig is. Containers bieden veerkracht door samen te werken met de cloud in load-balancing om plotselinge pieken in netwerkverkeer op te vangen.
- Cloud-native gecontaineriseerde apps zijn overdraagbaar naar elke cloudomgeving. Organisaties kunnen containers over netwerken naar andere datacenters verplaatsen en ontwikkelaars wereldwijd kunnen aan dezelfde applicaties werken.
- Containers hebben een kleine footprint, waardoor kleinere serverfarms meer applicaties kunnen draaien in compacte datacenters.
- Containers verlengen de levensduur van legacy hardware. Decennia oude militaire vliegtuigen zijn voorbeelden van verouderde technologie die nieuw leven is ingeblazen door het toepassen van gecontaineriseerde applicaties.
- Containers werken onafhankelijk van elkaar, dus bij een fout kan het systeem de container isoleren en beëindigen, waardoor de containerclusters schoon blijven.
- Ontwikkelaars en leveranciers brengen applicaties sneller op de markt en behalen zo een voorsprong op concurrenten die applicatieontwikkeling niet versnellen met containers.
Het is eenvoudig om dezelfde applicatie wereldwijd uit te rollen in datacenters dankzij de modulariteit en compatibiliteit van applicatiecontainers. Omdat containers geïsoleerd en zelfvoorzienend zijn, kunnen ze aan elk besturingssysteem worden gekoppeld en werken. Organisaties besparen tijd omdat ze het serverbesturingssysteem niet speciaal hoeven te configureren om de containers te draaien.
CNAPP Marktgids
Krijg belangrijke inzichten in de staat van de CNAPP-markt in deze Gartner Market Guide for Cloud-Native Application Protection Platforms.
LeesgidsConclusie
Containerisatie is een benadering voor het ontwikkelen van applicaties in de cloud. Het containeriseren van apps isoleert deze voor beveiliging en ontwikkelgemak. Containers versnellen en beveiligen cloud-native applicatieontwikkeling door applicatie-instanties te scheiden in onafhankelijke containers. Ontwikkelaars kunnen wereldwijd aan gecontaineriseerde apps werken, waardoor de kosten dalen en de time-to-market wordt verkort. Containerisatie is een gestandaardiseerde, herhaalbare aanpak voor cloud-native applicatieontwikkeling, beheer en uitrol.
Veelgestelde vragen
Een container is een virtueel pakket of omhulsel met alles wat een applicatie nodig heeft om te draaien. Het is als een kleine sandbox-omgeving die de virtuele machines simuleert die de voorloper waren van de container. De container draait een kleine instantie van de software op een lichte versie van een besturingssysteem die voldoende is om de specifieke taak te ondersteunen waarvoor de applicatie is gemaakt.
Kubernetes is een container-runtime van Google die de uitrol van applicatiecontainers automatiseert, waardoor het beheren en schalen van containerclusters voor productie-cloudworkloads eenvoudig en efficiënt wordt.
Docker is een applicatiecontainer-tool met een runtime-engine waarmee ontwikkelaars en beheerders applicaties kunnen bouwen en uitrollen. Docker maakt het eenvoudig om applicatiesjablonen te creëren met alle applicatieafhankelijkheden op een gestandaardiseerde manier.
DevOps is een softwareontwikkelmethode die ontwikkeling en operations samenbrengt zodat applicaties klaar zijn voor de productieomgeving en snel kunnen evolueren. DevOps maakt gebruik van containerisatie.


