In questo articolo vorrei parlare di come abbiamo cambiato l'approccio all'orchestrazione del nostro progetto di startup, perché lo abbiamo fatto e quali problemi abbiamo risolto lungo il percorso. Questo articolo difficilmente può pretendere di essere unico, ma penso comunque che possa essere utile a qualcuno, poiché nel processo di risoluzione del problema, abbiamo raccolto il materiale con un discreto impegno.
Cosa avevamo e di cosa stavamo parlando? E avevamo un progetto di avvio con circa 2 anni di storia di sviluppo nel campo della pubblicità. Il progetto è stato inizialmente realizzato come microservizio e la sua parte server è stata scritta in Symfony + un po' di Laravel, Django e NodeJs nativi. I servizi sono principalmente un'API per client mobili (ce ne sono 3 nel progetto) e il nostro SDK per IOS (integrato nelle applicazioni dei nostri clienti), nonché interfacce web e vari dashboard di questi stessi clienti. Tutti i servizi erano inizialmente dockerizzati e funzionavano con docker-compose.
È vero, docker-compose non è stato utilizzato ovunque, ma solo nell'ambiente locale degli sviluppatori, durante il test server e all'interno della pipeline durante la creazione e il test dei servizi. Nell'ambiente di produzione, abbiamo utilizzato Google Kubernetes Engine (GKE). Inoltre, abbiamo configurato GKE interamente tramite la sua interfaccia web all'inizio del progetto, il che è stato piuttosto rapido e, come ritenevamo all'epoca, comodo. L'unico processo automatizzato è stata la creazione di immagini Docker per il lancio dei servizi in GKE.
