Blue-Green Deployments

The DevOps Deployment Comedy Corner

Blue/Green Deployment Meeting:

PM:     "How's the deployment going?"
Dev:    "Well, Blue works fine..."
Ops:    "And Green is ready..."
PM:     "So we're good to switch?"
Dev:    "Theoretically..."
Ops:    "Practically..."
Both:   "Maybe we should test it one more time?"
PM:     ¯\_(ツ)_/¯

*3 hours and 15 coffee cups later*

Monitor: [99.99% uptime achieved]

Remember: In DevOps, we don't have problems, we have "unplanned learning opportunities"

Suppose we have a PaymentService:v1.0.0 (that is called Blue) running on our kubernetes cluster:

PaymentService:v1.0.0 serving the users requests

From here, the new version PaymentService:v1.1.0 (that is called Green) is deployed next to the old version without affecting its:

PaymentService:v1.1.0 is deployed next to the old version without affecting its

The new version of the application is deployed and can be tested for functionality and performance.

Once the testing results are successful, application traffic is switched from blue to green:

Green then becomes the new production

Let’s try it now!

What is Argo Rollouts?

Argo Rollouts is a Kubernetes controller and set of CRDs which provide advanced deployment capabilities such as blue-green, canary, canary analysis, experimentation, and progressive delivery features to Kubernetes.

We use Terraform and an argo terraform module that I have implemented in order to deploy Argo products.

Terraform-Argo-Module

modules/kubernetes_modules/argo/argo_rollouts.tf

Last updated