Appontwikkelaars kunnen niet meer om Kubernetes heen. Het open-source project van Google stelt je in staat om containerized applicaties te orkestreren. Veel mensen schreven er over, maar ik ging ermee aan de slag! 

Onze testomgevingen deployden we voorheen op één dockeromgeving. 'It did the trick', zoals ze soms zeggen, maar we liepen regelmatig tegen problemen aan. Verouderde code zorgde soms voor haperingen binnen het deployen en deze aanpak was niet zo dynamisch als we wilden. Tijd om op zoek te gaan naar een alternatief en ons te wagen aan Kubernetes.

Dankzij Kubernetes versimpelden het opzetten van de servers waar we testomgevingen op draaien en maakten het dynamisch. Maar we kozen ook voor dit platform omdat het nieuw en goed onderhouden is voor het opzetten van clusters, die je ook weer makkelijk kan verwijderen zonder voor een volledige server te betalen. 

Dockeromgevingen binnen clusters met Kubernetes

Kubernetes draait dockeromgevingen binnen een cluster. De zogenaamde pods. Verder zitten er een aantal handige snufjes in om makkelijk IP forwarding te regelen. Bijvoorbeeld load balancing. Met load balancing distribueren we het netwerkverkeer efficiënt over meerdere backend-services, wat belangrijk is voor het maximaliseren van schaalbaarheid en beschikbaarheid.

Inmiddels hebben we ook onze git omgevingen zo ingericht dat we met één druk op de knop een omgeving kunnen opzetten met onze pipelines. Ansible is hier het sleutelwoord. Met deze software voorziening voeren we de scripts uit voor de platformen. Het is overzichtelijk en maakt de ontwikkeling een fluitje van een cent. Lokaal hoef je dus niks meer te draaien. Updates van clusters worden daardoor automatisch naar de testomgeving gedeployed.

Voor- en nadelen Kubernetes

Kubernetes kun je draaien bij elke partij die dit systeem ondersteunt. Hoewel het niet noodzakelijk is, kozen we toch voor Google Cloud (in onze ogen het meest stabiele platform). Kubernetes is snel, flexibel en uitstekend schaalbaar, maar je kan er ook de creativiteit van de ontwikkelaar mee ondersteunen. Helaas heeft Kubernetes een steile leercurve. Load balancing en IP-allocatie blijven een flinke uitdaging, zelfs na het inrichten van de beschikbare storage en infrastuctuur. 

Nee, Kubernetes is niet het makkelijkste systeem om mee te beginnen, toch ben ik van mening dat containerized apps de toekomst hebben. De enige reden om je niet te wagen aan Kubernetes is omdat je bang bent nieuwe technieken te leren. Hoe je het ook wendt of keert, Kubernetes heeft heel veel voordelen ten opzichte van de huidige dockersystemen.

Ook interessant

Native, Hybride of PWA

Magento 1 migratie naar Magento 2