Kubernetes & Docker: van start met containers
< Back

Kubernetes & Docker: van start met containers

September 19, 2019 - 2:47 pm

Waarom heb je containers nodig?

Je hebt al gehoord van containers, Docker en Kubernetes, maar wat betekent het dat nu allemaal precies in mensentaal? En hoe kan jij er voordeel uit halen? In deze blogpost duiken we dieper in op de verschillende termen, de voordelen en hoe InterHost Solutions jou kan verder helpen om aan de slag te gaan

Veel bedrijven zijn bezig met te onderzoeken hoe containers hen kunnen helpen efficiënter te worden. Sommige bedrijven staan al verder en hebben de containertechnologie volledig omarmd. Waar jouw bedrijf zich ook bevindt, als je echt overweegt containers te gebruiken, lees dan meteen wat dat kan betekenen voor jouw bedrijf:

  • Snellere time-to-market: Verbeter jouw competitieve voordeel door applicaties en services tot 300% sneller op de markt te brengen
  • Ontwikkelingssnelheid: Verminder de doorlooptijd van het proces van ontwikkeling tot productie met 60%
  • Verminderde kost infrastructuur: Containers maken optimaal gebruik van fysieke resources
  • Flexibiliteit: Migreer je container gemakkelijk van en naar elk platform

 

Wat zijn containers?

Om containers gemakkelijk te kunnen uitleggen gebruiken we de analogie met vrachtschepen.kubernetes

Een vrachtschip maakt gebruikt van containers met standaardafmetingen. Hierdoor kan de container zowel via de weg, het water als per spoor worden vervoerd, zonder dat de goederen zelf hoeven te worden in- of uitgeladen.

Net zoals vrachtcontainers zijn softwarecontainers gestandaardiseerde pakketjes. Alles wat er nodig is om de applicatie te laten draaien zit in zo’n container. Omdat de containers zo gecondenseerd zijn kunnen ze optimaal gebruik maken van de onderliggende fysieke resources. Het maakt ook dat je containers heel gemakkelijk van het ene platform naar het andere kan overbrengen.

Dat is vooral tijdbesparend voor ontwikkelaars (of je nu inhouse ontwikkelt, of je dat liever uitbesteedt, tijdsbesparing betekent vooral ook geldbesparing). Ontwikkelaars hoeven zich geen zorgen meer te maken over de compatibiliteit van alle verschillende platformen. Ze werken met één gestandaardiseerd systeem dat overal op kan draaien wat de overhead enorm verlaagt.

Hoe werkt Docker?

Nu we weten wat containers zijn, kunnen we dieper ingaan op Docker.

Simpel gesteld: Docker is een opensource technologie waarmee je containers kan aanmaken en beheren. Het is zeker niet de enige technologie die je daarvoor kan gebruiken, maar zoals wel vaker gebeurt met innovatieve technologieën: uiteindelijk wint er eentje, en in dit geval blijkt Docker voorlopig de standaard voor containertechnologie.

Met Docker kan je containers makkelijk verpakken, verhuizen en laten draaien op een platform naar keuze.

Wat is Kubernetes?

We hebben onze containers en we hebben een manier om ze eenvoudig aan te maken, te verhuizen en ze te laten draaien. Als we één container moeten beheren loopt dat allemaal vlotjes, maar wat gebeurt er als we duizend containers hebben? Dan hebben we nood aan specifiek systeem dat toezicht houdt over het hele proces . Laat dat nu exact zijn wat Kubernetes doet! (Kubernetes komt overigens van het griekse woord voor ‘kapitein’)

Maar wat betekent dat toezicht houden nu echt? Wel Kubernetes zorgt ervoor dat de applicatie automatisch naar boven of beneden wordt geschaald. Kubernetes kan ook wijzigingen en upgrades doorvoeren. Wanneer het misloopt kan Kubernetes automatisch een rollback doen en de containers die falen opnieuw opstarten, het vervangt containers die niet meer werken en verwijderd containers die niet meer nodig zijn. Het is in essentie wat we een ‘self-healing system’ noemen.

Kubernetes onderhoudt zichzelf op een manier die veel efficiënter is dan wanneer dat manueel gebeurd. Doordat alles geautomatiseerd gebeurd verminderd de kans op menselijke fouten. Zo krijg je een opmerkelijk betere performantie (wat zich opnieuw vertaald in tijds- en geldbesparing)

 

Het verschil tussen containers en virtuele machines

Een virtuele machine is een computerprogramma dat een computer nabootst. Hierdoor kan je meerdere ‘virtuele computers’ laten draaien op 1 fysieke server. Elke van die virtuele machines heeft zijn eigen besturingssysteem. Containers staan echter los van het besturingssysteem waar ze op draaien, vandaar hun enorme flexibiliteit.

docker

 

In de analogie met vrachtschepen wordt pas duidelijk waarom virtuele machines een beetje absurd zijn. Virtuele machines zijn namelijk zelf kleine schepen, die aan het grote containerschip (de fysieke server) zijn vastgemaakt. Ze hebben elk apart de mogelijkheid om te varen, maar ze zijn gelimiteerd tot de snelheid en draagkracht van het containerschip.

Meteen valt op waarom virtuele machines zo’n enorme overhead met zich meebrengen. Dat neemt niet weg dat er genoeg redenen zijn om wél met virtuele machines te werken. De meest voor de hand liggende reden is wanneer er gewerkt wordt met oude software of applicaties die niet gemaakt zijn voor containers. Je kan je dus de vraag stellen of je blijft werken in een oudere technologie, of dat je meteen de overstap maakt om je software toekomstbestendig te maken.

 

Hoe kan je starten met containers?

Je weet nu hoe containers werken en wat je ermee kan doen. Maar waar begin je?

Lift & shift: Dit is de gemakkelijkste manier om te starten met containers. Je neemt de volledige applicatie op en zet deze neer in een container. Omdat de applicatie niet is gemaakt voor containers zal je niet optimaal kunnen profiteren van de voordelen die container je bieden. Je kan echter wel de technologie al proberen in een pay-as-you-use model. De opgedane kennis kan je later weer investeren in het verder uitrollen van de containertechnologie

Herstructureren: Je start vanuit de monolithische applicatie en breekt die op in stukken zodat je verschillende services in verschillende containers kan zetten. Dit is een goede methode wanneer de applicatie niet te groot is (of bedrijfskritisch). Dit is de moeilijkste methode omdat je van het ene op het andere moment een nieuwe methode implementeert.

Nieuwe software ontwikkelen: Sommige bedrijven kiezen ervoor om hun volledige software (of nieuwe applicaties) te ontwikkelen in containers zodat je meteen optimaal gebruik kan maken van de technologie.

 

Hoe helpt InterHost Solutions jou verder?

InterHost Solutions heeft jarenlange ervaring met containerhosting. Een groot deel van onze klanten maakt al gebruik van deze technologie en ook onze interne infrastructuur is gebaseerd op containertechnologie. Dat geeft ons een behoorlijke voorsprong ten opzichte van andere hosters die de containertechnologie nog maar net (of zelfs helemaal niet) hebben omarmd.

Vaak worden er dure proof-of-concepts aangeboden waarbij containers of Kubernetes speciaal worden opgebouwd voor de klant. Dat is bij ons niet het geval, wij hebben een sterk ontwikkeld cloudplatform waarmee je makkelijk kan instappen. Zo maak je meteen gebruik van alle voordelen van containerhosting, zonder de hoge kostprijs.

Ook als pas de eerste stappen zet in containerhosting helpen wij je verder op weg. Door ons inhouse team van ontwikkelaars hebben we ook de nodige kennis om jou te adviseren wanneer je applicaties of software wilt ontwikkelen (of herstructureren) op maat van containers.

Als je graag eens met ons bespreekt wat jouw opties zijn, contacteer dan ons dan zeker voor een vrijblijvend gesprek!