Selles artiklis sooviksin rääkida, kuidas me muutasime lähenemist orkestreerimisele meie idufirmaprojektis, miks me seda tegime ja milliseid probleeme me selle teekonna jooksul lahendasime. Selle artikli ainulaadsusele on raske loota, kuid arvan siiski, et see võib kellelegi kasulik olla, kuna materjal kogunes ülesande lahendamise käigus meie poolt korraliku vaevaga.
Mida me omasime ja millest see kõik räägib? Oli meil idufirmaprojekt, millel on umbes 2-aastane arenduse ajalugu reklamitehnoloogia valdkonnas. Projekt ehitati algselt mikroteenustena ja selle serveripool oli kirjutatud Symfony + veidi Laravelit, Django ja kohalikku NodeJs-i. Teenused on peamiselt API-d mobiiliklientidele (need on projektis 3) ja meie enda SDK iOS-ile (sisaldatakse meie kliendi rakendustesse), samuti veebiliidesed ja erinevad armatuurlauad nendele klientidele. Kõik teenused olid algselt dockerdatud ja töötasid docker-compose'i halduses.
Tõsi, docker-compose'i kasutati mitte igal pool, vaid ainult arendajate kohalikus keskkonnas, testimisel serveris ja sisese torujuhtme jooksul teenuste koostamisel ja testimisel. Kuid tootmiskeskkonnas kasutati Google Kubernetes Engine'i (GKE). Projektide alguses konfiguratsioon GKE osas tehti täielikult läbi selle veebiliidese, mis oli üsna kiire ja nagu me siis arvasime, mugav. Automaatne oli ainult konteineripiltide koostamisprotsess teenuste käivitamiseks GKE-s.
