Kubernetes Namespace Blue/Green Deployment
Context To give some brief context, we had several tightly coupled microservices — to the point where deploying a new version of a particular microservice would require others to be patched as well. This kind of tight coupling is sometimes described as a “distributed monolith”. Regardless, in this scenario we wanted to achieve a seamless zero-downtime deployment, given that we hosted the application in a Kubernetes cluster. Challenge Traditionally, blue/green strategies rely on deploying two versions of the same service, such as live and preview — as seen in Argo Rollouts. However, this wasn’t compatible with our case, as we needed to deploy an entire stack, which could include some services at newer versions while others remained at their current version, according to the release plan. ...