Following this Tweet:
I’m wondering, if Kubernetes is the solution to the complexity we introduced by using microservices, then 1/ what is the solution to the complexity introduced by using Kubernetes? and 2/ why are we using microservices anyway?
This document complete my previous « My opinionated project deployment guideline » document.
Note:
- between 2016 and 2019:
- I have deployed and managed one On-premises Kubernetes cluster (on baremetal servers)
- I have depolyed and managed one microservice app on this Kubernetes cluster
- I have depolyed and managed several monolithic apps on this Kubernetes cluster
- I was an member of Scaleway Kubernetes As A Service development team
First step
- deploy your app with docker-compose (Follow The Twelve-Factor App methodology)
- configure monitoring, instrumentation services:
Second step
- Configure Automatically update running Docker containers with watchtower.
- Configure your CI to automatically push your stable Docker Image to your private Docker Registry
Then when you merge to your Git stable branch your application will be automatically deployed.
Third step
- Deploy your service with Docker Swarm, see Sentry deployment with Swarm
Fourth step
Deploy your microservice app on Kubernetes only if:
- you master the first and second steps
- and your app need scalability
Fifth step
Don't try to directly go to fourth step before masterize previous steps.