Zero-Downtime Deployments: Blue-Green vs Rolling Upgrades

The Cost of Deployment Downtime

In high-availability web applications, taking the site offline or returning HTTP 502 errors to active users during a software release is unacceptable. Zero-downtime deployment strategies solve this.

Case Study: Release-Time Cart Dropouts

An e-commerce platform reported that users got checkout errors during weekly release windows. Logs showed that the Nginx gateway returned 502 Bad Gateway errors for about 30 seconds while containers restarted.

The Bug: Abrupt Container Cutover

The deployment script killed the old application process before the new version was fully booted and ready to receive traffic, creating a service gap.

The Fix: Configuring Readiness Probes

We implemented a rolling deployment strategy on Kubernetes and added explicit readiness probes to ensure the gateway only directs traffic to new containers once they are fully initialized:

# Kubernetes Deployment Spec
spec:
  replicas: 3
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
  template:
    spec:
      containers:
      - name: web-app
        readinessProbe:
          httpGet:
            path: /healthz
            port: 8080
          initialDelaySeconds: 5
          periodSeconds: 5

This rolling upgrade strategy kept the site fully operational throughout subsequent deployments.

Scroll to Top