Kako je jedan startup stigao od docker-compose do Kubernetesa

U ovom članku želio bih govoriti o tome kako smo promijenili pristup orkestraciji na našem startup projektu, zašto smo to učinili i koje smo probleme usput riješili. Ovaj članak teško može tvrditi da je jedinstven, ali ipak mislim da nekome može biti od koristi, jer smo u procesu rješavanja problema materijal prikupili uz pristojan trud.  

Što smo imali i o čemu smo razgovarali? I imali smo startup projekt s otprilike 2 godine povijesti razvoja iz područja oglašavanja. Projekt je inicijalno izgrađen kao mikroservis, a njegov serverski dio je napisan u Symfonyju + malo Laravela, Djanga i nativnog NodeJsa. Usluge su uglavnom API za mobilne klijente (ima ih 3 u projektu) i naš vlastiti SDK za IOS (ugrađen u aplikacije naših korisnika), kao i web sučelja i razne nadzorne ploče tih istih korisnika. Sve su usluge u početku bile dokerizirane i izvodile su se pod docker-compose.

Istina, docker-compose nije korišten svugdje, već samo u lokalnom okruženju programera, na testu poslužitelja i unutar cjevovoda prilikom izgradnje i testiranja usluga. U produkcijskom okruženju koristili smo Google Kubernetes Engine (GKE). Štoviše, GKE smo u potpunosti konfigurirali putem njegovog web sučelja na početku projekta, što je bilo prilično brzo i, kako smo tada mislili, praktično. Jedini automatizirani proces bio je izgradnja Docker slika za pokretanje usluga u GKE-u.

Opširnije