Kubernetes cluster: een schaalbare oplossing voor groeiende omgevingen
Door Tim AerdtsOm de webshop van HWG optimaal voorbereid te laten zijn op de toekomst, met een niet te schatten aantal bezoekers, hebben we gekozen voor een automatisch, schaalbare hosting oplossing d.m.v. een Kubernetes Cluster. Wij kunnen applicaties in een moderne cloud omgeving stabiel en schaalbaar laten draaien. Omdat we graag standaarden gebruiken hebben we gekozen om Kubernetes te omarmen, kuber-wat? Kubernetes, ook wel k8s genoemd, is een opensource platform voor container orchestratie.
Waarom kiezen voor Kubernetes?
Kubernetes zorgt ervoor dat alle containers up-to-date blijven en blijven draaien over alle servers. Oke, maar wat zijn die containers dan en wat zit daar in?
De container is een deel van de klant applicatie, een stukje van de complete puzzel. Als voorbeeld; een gedeelte van de applicatie zorgt er voor dat de backend (PHP + Laravel) kan verbinden met de database om data van A naar B te verschuiven en dan te presenteren aan de gebruiker zijn webbrowser. Precies dit gedeelte pakken we in een container met alles wat daar voor nodig is, in dit geval dus PHP op een vaste versie, misschien nog wat andere benodigdheden zoals software voor het genereren van een PDF voor de factuur bijvoorbeeld. Dit alles wordt vastgezet in een manuscript, denk hierbij aan versienummers en instructies hoe de container gebouwd moet worden. Op die manier ben je 100% zeker van dat er precies in de container zit wat je verwacht, tevens kun je zo makkelijk upgraden naar een nieuwe versie van PHP bijvoorbeeld door gewoon een nieuwe container ernaast te bouwen. Deze containers zijn uitvoerbaar, net zoals bijvoorbeeld je calculator programma op jouw computer. Bij wijze van spreken zou je ook kunnen dubbelklikken op een container en jouw computer kan dan de ingepakte applicatie uitvoeren, alles wat die applicatie nodig heeft zit er namelijk in.
Kubernetes zorgt er dan voor dat die container ook daadwerkelijk twee keer uitgevoerd wordt, op het moment dat er onverhoopt toch een bug in de applicatie zit waardoor deze afsluit zal Kubernetes automatisch weer een nieuwe aanzetten om toch altijd die 2 lopende containers te behouden. Het mooie van deze opzet is dat Kubernetes dit heel goed kan doen over verschillende host machines, al deze hostmachines samen noemen we dan een cluster. Kubernetes kan dus die containers verdelen over een X aantal host machines.
Schaalbaarheid: Hoe Kubernetes een groeiende webshop met piekbelastingen voorziet
Een ander voordeel van deze opzet is schaalbaarheid; wanneer we meer performance nodig hebben; lees: wanneer er meer bezoekers komen. Kan Kubernetes automatisch een bepaalde container erbij aanzetten. In dit geval meestal de container die de bezoekers voorziet van de website. Dit kan aan de hand van verschillende statistieken, bijvoorbeeld CPU gebruik of geheugen gebruik. Maar ook aan de hand van eigen statistieken, denk hierbij bijvoorbeeld aan het aantal taken in de wachtrij, je hebt dan regels als: indien er meer dan 50 taken in de wachtrij staan, maak dan een nieuwe container aan die taken op de wachtrij afhandelt. Wanneer het weer rustig is op de wachtrij zal Kubernetes ook automatisch die nieuwe container(s) weer afschalen om zo weer resources (geheugen, CPU) vrij te geven voor andere containers.
De wereld verandert. De ene transitie volgt de volgende op. Sneller dan ooit. Waarbij alles draait om mensen. Door mensen, met mensen, voor mensen. Gestaafd op data. ondersteund door digitalisering. INOVA levert meer resultaat uit marketing en data. We werken volgens de unieke INOVA-roadmap. Onze samenwerking maakt jou en ons onderscheidend. Want hey… we are you.