Como uma startup passou do docker-compose para o Kubernetes

Neste artigo, gostaria de falar sobre como mudamos a abordagem de orquestração em nosso projeto de inicialização, por que fizemos isso e quais problemas resolvemos ao longo do caminho. Este artigo dificilmente pode ser considerado único, mas ainda assim acho que pode ser útil para alguém, pois no processo de solução do problema o material foi recolhido por nós com um rangido decente.  

O que tínhamos e do que estamos falando? E tínhamos um projeto de start-up com aproximadamente 2 anos de história de desenvolvimento na área publicitária. O projeto foi originalmente construído como um microsserviço, e sua parte do servidor foi escrita em Symfony + um pouco de Laravel, Django e NodeJs nativos. Os serviços são basicamente uma API para clientes mobile (são 3 no projeto) e nosso próprio SDK para IOS (embutido nos aplicativos de nossos clientes), além de interfaces web e diversos dashboards desses mesmos clientes. Todos os serviços foram inicialmente dockerizados e executados pelo docker-compose.

É verdade que o docker-compose não era usado em todos os lugares, mas apenas no ambiente local dos desenvolvedores, no servidor de teste e dentro do pipeline ao criar e testar serviços. Já no ambiente de produção, foi utilizado o Google Kubernetes Engine (GKE). Além disso, fizemos a configuração do GKE no início do projeto totalmente por meio de sua interface web, que foi bastante rápida e, ao que nos pareceu na época, conveniente. Apenas o processo de criação de imagens docker para executar serviços no GKE foi automatizado aqui.

Leia mais