Paano napunta sa Kubernetes ang isang startup mula sa docker-compose

Sa artikulong ito, nais kong pag-usapan kung paano namin binago ang diskarte sa orkestrasyon sa aming proyekto sa pagsisimula, kung bakit namin ito ginawa at kung anong mga problema ang nalutas namin sa daan. Ang artikulong ito ay halos hindi masasabing natatangi, ngunit iniisip ko pa rin na maaari itong maging kapaki-pakinabang sa isang tao, dahil sa proseso ng paglutas ng problema, nakolekta namin ang materyal na may isang disenteng dami ng pagsisikap.  

Ano ang mayroon kami at ano ang aming pinag-uusapan? At nagkaroon kami ng isang startup na proyekto na may humigit-kumulang 2 taon ng kasaysayan ng pag-unlad mula sa larangan ng advertisement. Ang proyekto ay unang binuo bilang isang microservice, at ang bahagi ng server nito ay isinulat sa Symfony + isang maliit na Laravel, Django at katutubong NodeJs. Ang mga serbisyo ay pangunahing isang API para sa mga mobile client (mayroong 3 sa kanila sa proyekto) at ang aming sariling SDK para sa IOS (built in sa mga application ng aming mga customer), pati na rin ang mga web interface at iba't ibang dashboard ng parehong mga customer na ito. Ang lahat ng mga serbisyo ay unang na-dockerize at tumakbo sa ilalim ng docker-compose.

Totoo, ang docker-compose ay hindi ginamit sa lahat ng dako, ngunit sa lokal na kapaligiran lamang ng mga developer, sa isang test server, at sa loob ng pipeline kapag nagtatayo at sumusubok ng mga serbisyo. Ngunit sa kapaligiran ng produksyon, ginamit ang Google Kubernetes Engine (GKE). Bukod dito, na-configure namin ang GKE sa simula ng proyekto nang buo sa pamamagitan ng web interface nito, na medyo mabilis at, tulad ng sa tingin namin noon, maginhawa. Tanging ang proseso ng pagbuo ng mga docker na imahe para sa paglulunsad ng mga serbisyo sa GKE ang naka-automate dito.

Magbasa nang higit pa