Hvordan en oppstart kom fra docker-compose til Kubernetes

I denne artikkelen vil jeg gjerne snakke om hvordan vi endret tilnærmingen til orkestrering på oppstartsprosjektet vårt, hvorfor vi gjorde det og hvilke problemer vi løste underveis. Denne artikkelen kan neppe hevde å være unik, men jeg tror likevel at den kan være nyttig for noen, siden vi i prosessen med å løse problemet samlet materialet med en anstendig mengde innsats.  

Hva hadde vi og hva snakket vi om? Og vi hadde et oppstartsprosjekt med ca 2 års utviklingshistorie fra annonsefeltet. Prosjektet ble opprinnelig bygget som en mikrotjeneste, og serverdelen ble skrevet i Symfony + litt Laravel, Django og native NodeJs. Tjenestene er hovedsakelig en API for mobile klienter (det er 3 av dem i prosjektet) og vår egen SDK for IOS (innebygd i våre kunders applikasjoner), samt webgrensesnitt og ulike dashboards til de samme kundene. Alle tjenester ble opprinnelig dockerisert og kjørte under docker-compose.

Riktignok ble docker-compose ikke brukt overalt, men bare i det lokale miljøet til utviklere, på en testserver og inne i rørledningen når du bygger og tester tjenester. Men i produksjonsmiljøet ble Google Kubernetes Engine (GKE) brukt. Dessuten konfigurerte vi GKE i starten av prosjektet helt gjennom webgrensesnittet, som var ganske raskt og, som det virket for oss da, praktisk. Bare prosessen med å bygge docker-bilder for lansering av tjenester i GKE ble automatisert her.

Les mer