How one startup got from docker-compose to Kubernetes

In this article, I would like to talk about how we changed the approach to orchestration on our startup project, why we did it, and what problems we solved along the way. This article can hardly claim to be unique, but still I think that it can be useful to someone, since in the process of solving the problem the material was collected by us with a decent creak.  

What did we have and what are we talking about? And we had a start-up project with an approximately 2-year history of development from the advertising area. The project was originally built as a microservice, and its server part was written in Symfony + a little Laravel, Django and native NodeJs. The services are basically an API for mobile clients (there are 3 of them in the project) and our own SDK for IOS (built into the applications of our customers), as well as web interfaces and various dashboards of these same customers. All services were initially dockerized and run by docker-compose.

True, docker-compose was not used everywhere, but only in the local environment of developers, on the test server and inside the pipeline when building and testing services. But in the production environment, the Google Kubernetes Engine (GKE) was used. Moreover, we did the GKE configuration at the start of the project completely through its web interface, which was quite fast and, as it seemed to us then, convenient. Only the process of building docker images to run services in GKE was automated here.

Read More