De webapplicaties die we ontwikkelen worden in Docker containers geplaatst. Deze containers zijn volledig geïsoleerd met als grote voordeel dat er geen invloeden van buitenaf zijn. De Docker container bevat alle informatie en instructies die er nodig zijn (inclusief werkende code, besturingssysteem et cetera) om de applicatie stabiel te kunnen draaien. Het grote voordeel hiervan is dat een Docker container lokaal dan ook exact hetzelfde werkt als een container die in de cloud draait. Immers, alle instructies zitten binnen de container. Hierdoor kunnen we snel (automatisch) opschalen in capaciteit – voor applicaties die nieuwe servers nodig hebben.
Deze containers kunnen zelfs op verschillende locaties en in verschillende landen worden geplaatst, waarmee een wereldwijd netwerk ontstaat die de zogeheten ‘requests’ af kunnen handelen per regio. Dit maakt onze cloud oplossingen vrij ongevoelig voor storingen. Met deze werkwijze kunnen we kwaliteit garanderen en voldoen aan de hoogste standaarden die er zijn voor hosting. Eventuele calamiteiten worden op deze manier zoveel mogelijk voorkomen maar kunnen – indien ze toch onverhoopt optreden – razendsnel worden opgelost.
Testen is eenvoudiger met Docker
Een van de grootste problemen met testen is reproductie, een probleem wat ergens op een server ontstaat ook lokaal te reproduceren, om het vervolgens aantoonbaar te kunnen oplossen.
Omdat Docker containers lokaal dus exact op dezelfde wijze functioneren als dat het gehost zou worden in Berlijn bestaat dit verschil eigenlijk niet. Een incident die op een server optreedt zal ook lokaal op een laptop in Amsterdam voorkomen.
Kubernetes (k8s)
Het verdelen van Docker containers over verschillende servers doen wij middels Kubernetes (kortweg k8s). Kubernetes biedt de mogelijkheid om containers te “orchesteren”. Dit gaat uit van het principe dat het niet uitmaakt wáár een Docker container draait; of dit nu op Amazon Web Services (AWS), Google Cloud Platform (GCP) óf Microsoft Azure is. Een combinatie van deze verschillende cloud aanbieders is zelfs mogelijk met Kubernetes.
Kubernetes draait bovenop Docker en zorgt ervoor dat containers in groepen kunnen worden geactiveerd of opgeschaald.