Kubernetes: naadloos opschalen van servercapaciteit en geheugen

Heb je een applicatie die te maken heeft met korte piekbelastingen? Bestaat er een oplossing om razendsnel (reken)capaciteit en geheugen op te schalen voor applicaties zodat overbelasting wordt voorkomen? Jazeker: Kubernetes schaalt applicaties ‘horizontaal’, zodat je app ook tijdens piekbelasting soepel blijft draaien. Voordeel: je betaalt alleen tijdens de piek voor de extra capaciteit. Bovendien geeft Kubernetes je als IT-manager inzicht in kosten, performance en de mogelijkheid om snel aanpassingen aan je applicatie door te voeren.

In vier blogs geven we je informatie over wat Kubernetes is en wanneer je het kunt toepassen. In het tweede deel leggen we uit hoe je weet of Kubernetes een geschikte oplossing voor jouw organisatie is. In het derde en vierde deel beschrijven we een client case waarin we meer vertellen over een concrete toepassing die we bij Open Circle Solutions hebben ontwikkeld met behulp van dit systeem in Azure.

Wat is Kubernetes?

Kubernetes is een open source containersysteem dat de implementatie, schaalvergroting en beheer van applicaties orkestreert. Kubernetes wordt vooral gebruikt door organisaties die tegen de grenzen aanlopen van de rekencapaciteit of het geheugen van servers. Wanneer te veel gebruikers een applicatie op een server gebruiken, kan deze gaan haperen. Dat heeft een groot nadelig effect op de gebruikerservaring.

Met Kubernetes kun je applicaties naast elkaar zetten, klonen als het ware. We noemen dat horizontaal schalen. Simpel gezegd: wanneer je oorspronkelijke applicatie 1000 man aankan, dan kunnen dezelfde applicaties op 2 servers samen 2000 man aan, 3 servers 3000, etc. Je gebruikt Kubernetes om gebruiker 1001 zonder problemen door te leiden naar de volgende beschikbare server en als die niet beschikbaar is, worden er automatisch, zonder tussenkomst van beheerders, extra servers gestart. Kubernetes coördineert welke gebruikersinteractie met de applicatie naar welke server gaat.

Organisaties die dankzij hun eigen succes zeer grote hoeveelheden data en gebruikers moeten beheren in een landschap met vele applicaties en diensten, hebben een andere reden om Kubernetes te gaan gebruiken. Voor hen vereenvoudigt Kubernetes het beheer van applicaties enorm, bijvoorbeeld omdat er niet meer met individuele servers wordt gewerkt maar met groepen van applicaties.

Veel cloud providers bieden het als platform-as-a-service (PaaS) of infrastructure-as-a-service (IaaS). Dat maakt dat je het ook in hybride situaties kunt toepassen en makkelijk van provider kunt wisselen. Omdat het cloud native is ontwikkeld, kun je veel van de ontwikkeling out-of-the-box kopen. Dat versnelt het ontwikkelingsproces aanzienlijk.

 

kubernetes-server

Betalen naar gebruik

Natuurlijk kun je ook gewoon meerdere applicaties naast elkaar op servers zetten, maar dat vereist nogal wat van je architectuur en dataverkeer. Want hoe houd je bij welke gebruiker naar welke app gaat? Of wanneer hij switcht naar een andere applicatie als de applicatie waar hij aanvankelijk begon vol is, en waar hij is gebleven in zijn request?

Kortom, als je dit zonder extra services inricht, vereisen deze zaken een ingewikkelde architectuur en veel data(verkeer). Herdoor loopt een server al snel weer vol en is er uitbreiding nodig. Je zou dit kunnen oplossen door de maximumcapaciteit van de server te monitoren en op tijd een extra server in te schakelen. Maar dat vereist continue monitoring. Bovendien is het bijschakelen van extra servercapaciteit niet zomaar geregeld.

Extra servercapaciteit is vaak ook kostbaar. En daar betaal je ook voor als die niet wordt gebruikt. Wanneer je deze alleen nodig hebt bij piekbelasting, is het zonde van het geld om op andere momenten voor die capaciteit te betalen.

Om dat te voorkomen, streef je naar stateless applicaties. Stateless betekent dat elk request van elke gebruiker geïsoleerd behandeld wordt. De applicatie weet welke gebruiker het is, welke data hij moet ophalen en presenteren aan de gebruiker, los van alle andere context. Alleen bij stateless applicaties is Kubernetes een goede optie om horizontaal te schalen. Waarom dat is, vertellen we je door meer uit te leggen over hoe Kubernetes omgaat met capaciteitstekort.

kubernetes-server

Hoe vangt Kubernetes capaciteitstekort op?

Je kunt op 2 manieren schalen in Kubernetes:

1) op pods- of applicatieniveau (in cluster)
Op dit niveau maak je van de applicaties kleine virtuele machines die als replica van elkaar functioneren. Kubernetes beheert deze en zorgt dat ze goed communiceren met alle benodigde services zoals de database, de gebruiker, het internet, etc. Maar ook dat ze meer geheugen krijgen wanneer dat nodig is.

2) op clusterniveau
De horizontaal geschaalde applicaties tezamen vormen een cluster, die op hun beurt ook weer horizontaal geschaald kunnen worden. Kubernetes fungeert hier als programma binnen de clusters.

De servers waarop Kubernetes draait, en dus de hierboven beschreven applicaties, zijn ook een cluster. Dit cluster is zelf ook schaalbaar.

Wanneer een cluster of een server tegen maximale capaciteit aanloopt, dan schakelt Kubernetes automatisch extra resources (in dit geval dus servers) bij. Als beheerder heb je hier geen omkijken naar.

Kubernetes is kortom een zeer interessante optie om op efficiënte wijze capaciteit op te schalen.

Toepassing in de praktijk: Storepal

Voor Brand Loyalty, een internationaal bedrijf dat voor retailklanten de merkactivatie van loyaliteitsprogramma’s verzorgt, ontwikkelde OCS de applicatie Storepal. Deze meet de effectiviteit van displays in retailzaken. Hiervoor moeten winkelmedewerkers periodiek verschillende taken uitvoeren. Daarvoor krijgen ze een herinnering en taak in de app. Sommige retailketens hebben 10.000 gebruikers en dat betekent dat er met golven veel taken worden uitgezet en opgevolgd via de app. Kubernetes is een ideale oplossing om deze piekbelasting op te vangen. In het derde blog in deze reeks vertellen we je meer over deze specifieke toepassing voor deze klant. Stay tuned.

Voordelen Kubernetes

Kubernetes heeft zowel voor de eindgebruikers als de IT-manager voordelen:

  • Geen hinder meer voor gebruikers tijdens piekbelasting
    Gebruikers kunnen blijven werken omdat Kubernetes automatisch de piekbelasting van de applicatie opvangt en extra capaciteit inschakelt.
  • Controle voor de IT-manager
    De IT-manager heeft op elk moment inzicht in de gebruikte capaciteit.
  • Minder foutgevoelig
    Wanneer je zelf omgevingen of applicaties dupliceert, leidt dit vaak tot fouten. Ook omdat het wiel telkens opnieuw moet worden uitgevonden. Wat werkt wel? Wat werkt niet? Met Kubernetes is dit geautomatiseerd en dus minder foutgevoelig. Tijdens de inrichting wordt de service getest op de test- en acceptatieomgeving voor deze overgaat in productie.
  • Zero downtime door updates
    Wanneer je een applicatie moet updaten, kun je de oude versie actief laten voor de gebruikers in een of een paar van de horizontaal geschaalde versies van de applicatie. Als de update is doorgevoerd en getest, dan kun je de andere versies updaten. Gebruikers worden zo niet gehinderd in hun werkzaamheden door updates of patches.
  • A/B testing
    Doordat je verschillende versie van een applicatie naast elkaar kan laten draaien, is de applicatie ideaal voor A/B testing. Je kunt verschillende versies voor verschillende gebruikersgroepen toegankelijk te maken en testen wat het beste werkt.
  • Inzicht in kosten
    Als IT-manager heb je steeds inzicht in de gebruikte capaciteit en dus in de kosten. Je ziet per applicatie of cluster hoeveel capaciteit deze in beslag neemt. Dat maakt het overzichtelijker dan de gebruikte capaciteit voor een hele server.
  • Rapportages
    Deze rapportages over performance helpen je als IT-manager om proactief issues op te sporen.

 

Loop je soms ook op tegen capaciteitsproblemen voor bepaalde applicaties?

In ons volgende blog kun je nagaan of Kubernetes een geschikte oplossing is. Wil je alvast advies van een van onze experts voor jullie specifieke situatie? Laat het ons weten per mail of bel naar +31 40 30 41 330 om eens te sparren. We gaan graag voor je aan de slag. Het zal je verrassen wat er mogelijk is. Wij denken met je mee en geven proactief advies.

omslag-ebook-cloud

e-book

Ontsluit de mogelijkheden van de cloud met cloud-native applicaties

Meer artikelen

OCS Familiedag: op naar Phantasialand

OCS Familiedag: op naar Phantasialand

Je bent zo goed in je werk als je je voelt. Dat je goed voor je mensen moet zorgen, ook buiten het werk om, is één van de pijlers onder onze organisatie. En dat is bij Open Circle Solutions niets nieuws. Daarom is er veel ruimte voor ontspanning en sociale interactie....

Khanh Long Tang, junior consultant

Khanh Long Tang, junior consultant

Khanh Long Tang is sinds begin maart in dienst als junior consultant bij OCS. Hij werkt daar aan het golfmanagementsysteem van Bernardus. Als golfbaan die zijn klanten een unieke en bijzondere ervaring wil meegeven, zijn ze elk jaar op zoek naar manieren waarop het...

Mark Donker, junior consultant en full stack developer

Mark Donker, junior consultant en full stack developer

Mark is, op het moment dat we hem spreken, splinternieuw: net twee weken in functie als junior consultant/full stack developer. Mark heeft, zoals zoveel jonge mensen tegenwoordig, een wat slingerend pad bewandeld voordat hij bij OCS terechtkwam. Opleiding in meerdere...

Nieuwsbrief

Meld je nu aan voor Open Circle Stories en krijg een verzameling artikelen, tips, nieuws en verdiepingen in je mailbox.

Pin It on Pinterest

Share This