V tomto článku by som chcel prerozprávať, ako sme zmenili prístup k orchestrácii v našom startup projekte, prečo sme to robili a aké problémy sme počas cesty riešili. Na unikátnosť si táto práca asi nemôže robiť nárok, ale predsa len si myslím, že môže byť niekomu užitočná, pretože materiál sme po ceste zbierali s dostatočným úsilím.
Čo sme mali a o čom vlastne hovoríme? Mali sme startup projekt s približne 2-ročnou históriou vývoja v oblasti reklamného priemyslu. Projekt bol pôvodne navrhnutý ako mikroslužba a jeho serverová časť bola napísaná v Symfony + trošku Laravelu, Djanga a natívneho NodeJs. Služby sa väčšinou predstavovali ako API pre mobilných klientov (je ich v projekte 3) a naše vlastné SDK pre iOS (vložené do aplikácií našich zákazníkov), ako aj webové rozhrania a rôzne dashboardy týchto zákazníkov. Všetky služby boli pôvodne dockerizované a fungovali pod správou docker-compose.
Pravda, docker-compose sa nepoužíval všade, ale len v lokálnom prostredí u vývojárov, na testovacom serveri a v rámci pipeline pri zostavovaní a testovaní služieb. Avšak v produkčnom prostredí sme používali Google Kubernetes Engine (GKE). Navyše, nastavenie GKE na začiatku projektu sme robili úplne cez jeho webové rozhranie, čo bolo dosť rýchle a, ako nám vtedy prišlo, aj pohodlné. Automatizovaný bol len proces zostavenia docker obrazov pre spustenie služieb v GKE.
