Containers binnen IT - hoe werkt het?


Container-technologie neemt met de dag in populariteit en gebruik toe. Het is allang geen theorie meer, het wordt veelvoudig toegepast binnen vele gerenommeerde organisaties. Toch zijn er nog veel vragen over en is niet iedereen bekend met container-technologie. Vanuit welke behoefte zijn containers ontstaan? En hoe werkt het nu precies? In dit blog beantwoorden we deze vragen.
Waarom containers binnen IT?
Enerzijds groeit de diversiteit van de verschillende soorten applicaties. Anderzijds nemen de verschillende omgevingen waar deze naartoe gedistribueerd moeten worden qua aantal en aard toe. Voor iedere combinatie moet aandacht besteed worden aan de wijze waarop de distributie plaats gaat vinden, en met een beetje pech moet voor iedere combinatie specifieke scripting worden ontwikkeld. Daarnaast willen we de distributie van onze applicaties steeds sneller, vaker en foutloos laten verlopen. Omdat de verschillende distributies specifiek zijn, moeten we verschillende maatregelen nemen.
Denk jij bij containers ook aan zeecontainers?
De overeenkomsten met de problemen in de fysieke transportwereld zijn groot (lees voor de uitgebreide vergelijking ons ebook). Hetzelfde probleem, dezelfde oplossing? Ja, analoog aan de zeecontainer is een IT-distributievehikel gedefinieerd, zijnde de container. Hiermee is, net als in de transportwereld, een transporthulpmiddel ontstaan dat ongeacht wat erin zit en ongeacht waar het naartoe moet, op dezelfde wijze wordt gedistribueerd.
Hier stopt wel de analogie en gaat deze een beetje mank. Als de container op zijn bestemming aangekomen is, maken we deze in de fysieke wereld open en halen we de goederen eruit om deze te kunnen gebruiken. Dat doen we met de IT-container niet. Deze container laten we dicht en indien we de applicatie – die erin zit – willen gebruiken, dan starten we deze container op. Sterker nog, als we de applicatie meerdere keren tegelijkertijd operationeel willen hebben, dan starten we de container meerdere keren op. Dit kan ook in verschillende hoedanigheden zijn, bijvoorbeeld: test, acceptatie, opleiding, sandbox of productie. Dit wordt allemaal softwarematig geregeld.
Wat zijn nu precies containers?
Een container is in principe een ‘pakketje’. Dit pakketje bevat een (autonoom werkend) deel van de applicatie (software) en alle onderdelen die de applicatie nodig heeft om te kunnen draaien. Omdat alles binnen de container aanwezig is, werkt deze software dan ook overal waar deze opgestart wordt hetzelfde. Containers vormen de oplossing voor het probleem hoe software op betrouwbare wijze kan worden verplaatst, van de ene computeromgeving naar de andere, en daar kan worden uitgevoerd. Dit kan zijn van de laptop van een ontwikkelaar naar een testomgeving, van een staging omgeving naar productie en zelfs van een fysieke machine in een datacenter naar een virtuele machine in een private of publieke cloud.
In de IT bestaat een diversiteit aan containers met een basisinrichting (base layers) ten behoeve van de verschillende technologie stacks. Denk hierbij aan containers waarin de benodigde faciliteiten aanwezig zijn voor bijvoorbeeld Springboot, Angular, .NET Core of zelfs Cobol. De ontwikkelaar plaatst hierin de software en eventuele specifieke benodigdheden terwijl alle, voor deze technologie, generieke benodigdheden (libraries en dergelijke waar de software afhankelijk van is) reeds aanwezig zijn. Dit alles tezamen vormt één werkend geheel.