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.
Det er sant at docker-compose ikke ble brukt overalt, men bare i utviklernes lokale miljø, på testen. server og innenfor prosessprosessen når vi bygde og testet tjenester. I produksjonsmiljøet brukte vi Google Kubernetes Engine (GKE). Dessuten konfigurerte vi GKE utelukkende gjennom webgrensesnittet ved prosjektets start, noe som var ganske raskt og, som vi trodde den gangen, praktisk. Den eneste automatiserte prosessen var å bygge Docker-bilder for å lansere tjenester i GKE.
