Van Docker tot Kubernetes: wanneer heb je orchestratie nodig?
Van Docker tot Kubernetes: wanneer heb je orchestratie nodig?
Je hebt waarschijnlijk gehoord over containers en Kubernetes. Maar wat is het verschil? En belangrijker: heb je überhaupt Kubernetes nodig, of volstaat iets simpelers?
Na jaren ervaring met containers – van simpele Docker setups tot complexe Kubernetes productie-omgevingen – deel ik een eerlijk verhaal over wanneer je wat nodig hebt. Geen hype, gewoon praktische inzichten.
💡 Tip: Wil je direct naar platform-keuzes? Lees mijn
voor een complete vergelijking.
Containers 101: de basis
Voordat we over Kubernetes praten, moeten we begrijpen wat containers zijn en waarom ze zo populair zijn.
Wat zijn containers?
Een container is een gestandaardiseerde eenheid van software die:
- Code bevat (je applicatie)
- Dependencies bundelt (libraries, runtime)
- Configuratie meeneemt (environment settings)
- Consistent draait op elke machine (laptop, server, cloud)
De metafoor: Denk aan een container zoals een scheepvaartcontainer. Of je nu auto’s, meubels of elektronica vervoert, de container zelf is gestandaardiseerd. Zo werken software containers ook – of je nu Python, Java of .NET draait, de container-interface blijft hetzelfde.
Docker: de populairste container runtime
Docker is de meest bekende tool voor het bouwen en draaien van containers. Met Docker kun je:
- Een applicatie en al zijn dependencies verpakken in een image
- Die image overal draaien waar Docker geïnstalleerd is
- Snel starten en stoppen (seconden in plaats van minuten zoals bij VM’s)
Voorbeeld: Een Node.js webserver in Docker:
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["node", "server.js"]
Bouwen en draaien:
docker build -t my-web-app .
docker run -p 3000:3000 my-web-app
Dat is het! Je hebt nu een draaiende applicatie, zonder dat je Node.js op je systeem hoeft te installeren.
Waarom zijn containers zo populair?
- “Works on my machine” is verleden tijd - Als het in een container draait op je laptop, draait het ook in productie
- Snelle deployments - Containers starten in seconden, VM’s in minuten
- Efficiënt resource gebruik - Tientallen containers op één server, zonder VM overhead
- Isolatie - Elke container is geïsoleerd, crashes beïnvloeden andere containers niet
- Versioning - Container images zijn versionable en reproduceerbaar
Het beslispunt: wanneer heb je orchestratie nodig?
Oké, containers zijn geweldig. Maar wanneer volstaat gewoon Docker, en wanneer heb je orchestratie nodig?
Scenario 1: Je hebt GEEN orchestratie nodig
Situatie:
- Je draait 1-5 containers
- Schaal verandert niet (of zelden)
- Downtime van een paar minuten is acceptabel
- Een enkel team beheert alles
- Eenvoudige architectuur
Voorbeelden:
- Een simpele website met database
- Een interne tool voor een klein team
- Een proof-of-concept of prototype
- Een side-project of portfolio site
Wat je WEL kunt gebruiken:
- Docker Compose voor lokale development
- Azure Container Instances (ACI) - run één container in de cloud
- Azure Container Apps (ACA) - serverless containers met auto-scaling
- Azure App Service - managed platform-as-a-service
💡 Mijn advies: Als je dit scenario herkent, lees dan verder bij
Containers zonder Kubernetes: ACA & ACI
Scenario 2: Je hebt orchestratie nodig
Situatie:
- Je draait 10+ containers (microservices)
- Schaalbaarheid is essentieel (van 10 naar 10.000 gebruikers)
- Zero-downtime deployments zijn vereist
- Meerdere teams deployen onafhankelijk
- Complexe networking tussen services
- Multi-cloud of hybrid-cloud strategie
Voorbeelden:
- E-commerce platform met piekbelasting
- SaaS applicatie met groeiende gebruikersbase
- Real-time applicaties (chat, gaming)
- Data processing pipelines
- Enterprise applicaties met compliance eisen
Wat je nodig hebt:
- Kubernetes - de industrie standaard voor container orchestratie
- Managed opties: AKS (Azure), EKS (AWS), GKE (Google)
- Enterprise: OpenShift (Red Hat)
Wat is Kubernetes eigenlijk?
Nu je snapt wanneer je orchestratie nodig hebt, wat is Kubernetes dan precies?
Kubernetes is een container orchestration platform dat oorspronkelijk binnen Google is ontstaan om hun schaalbaarheid-uitdagingen op te lossen. Het is uitgegroeid tot het de-facto platform voor het beheren van gecontaineriseerde applicaties – en dat niet zonder reden.
De kernfunctie: Kubernetes is een “autopilot” voor containers. Jij vertelt Kubernetes wat je wilt (declaratief via YAML), en Kubernetes zorgt dat het gebeurt en blijft gebeuren:
- “Ik wil 5 kopieën van mijn webserver”
- “Verdeel verkeer over deze kopieën”
- “Als een kopie crasht, start een nieuwe”
- “Schaal automatisch op bij hoge load”
Wat maakt Kubernetes zo bijzonder?
- Platform-agnostisch: Draai op Azure, AWS, Google Cloud, of je eigen datacenter
- Taal-onafhankelijk: PHP, C#, Python, Java, Go – maakt niet uit
- Vendor-soevereiniteit: Je bent niet vast aan één cloudprovider
- Enorm ecosystem: Duizenden tools en extensions (Helm, Istio, ArgoCD, etc.)
Waarom Kubernetes en niet Docker Swarm, Nomad, of Mesos?
Goede vraag! Er zijn alternatieven:
- Docker Swarm: Simpeler, maar minder features. Geen actieve development meer.
- Nomad (HashiCorp): Goede optie, maar kleiner ecosystem
- Mesos: Enterprise-grade, maar complexer en minder developer-friendly
Kubernetes won omdat:
- Google backing + CNCF governance - betrouwbare toekomst
- Grootste community - meer tools, meer expertise, meer support
- Cloud-provider support - AKS, EKS, GKE zijn volledig managed
- Enterprise adoption - Red Hat OpenShift, VMware Tanzu, Rancher
- De facto standard - meeste DevOps engineers kennen het
Conclusie: wat past bij jou?
Je hebt nu een goed beeld van containers, orchestratie, en wanneer Kubernetes zinvol is. Hier is mijn advies:
Start met containers, niet met Kubernetes
Begin met Docker en Docker Compose lokaal. Leer containers bouwen, debuggen en deployen. Als je 1-5 containers hebt, gebruik dan Azure Container Apps of Container Instances.
Overweeg Kubernetes als je groeit
Wanneer je 10+ microservices hebt, complexe networking nodig hebt, of multi-cloud wilt, is het tijd voor Kubernetes. Start met managed oplossingen zoals AKS – laat de cloud provider het moeilijke werk doen.
Kies het juiste pad
Zodra je weet wat je nodig hebt, kun je kiezen:
- Lightweight containers:
Containers zonder Kubernetes: ACA & ACI
- Managed Kubernetes:
- Self-hosted Kubernetes:
OpenShift on-premises - blog volgt binnenkort
Volgende stappen
Lees verder:
- Diepere duik in mogelijkheden
- Platform vergelijking en beslisboom
- Kubernetes overzichtspagina - Complete learning path
Kubernetes is krachtig, maar niet altijd nodig. Kies bewust, start klein, en schaal wanneer het echt toegevoegde waarde heeft.