Come una startup è passata da docker-compose a Kubernetes

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, su un server di test e all'interno della pipeline durante la creazione e il test dei servizi. Ma nell'ambiente di produzione è stato utilizzato Google Kubernetes Engine (GKE). Inoltre, all'inizio del progetto abbiamo configurato GKE interamente tramite la sua interfaccia web, che era abbastanza veloce e, come ci sembrava allora, comoda. Qui è stato automatizzato solo il processo di creazione delle immagini docker per l'avvio dei servizi in GKE.

Per saperne di più