paulund
#deployments #devops #best-practices

Blue/Green Deployment

Blue/green deployment is a release strategy designed for zero downtime. It works by running two identical production environments — one serving live traffic (blue), one idle (green). When you deploy a new version, you deploy it to the idle environment and then switch traffic across.

How It Works

  1. Blue is live and serving all user traffic
  2. Deploy the new version to Green (idle, no user traffic)
  3. Run smoke tests and checks against Green
  4. Switch the load balancer to point traffic at Green
  5. Green is now live — Blue becomes the idle standby
  6. If anything goes wrong, switch back to Blue immediately

Next deployment, the roles reverse: you deploy to Blue (now idle) and switch from Green.

Benefits

  • Zero downtime — users never see the old version mid-swap
  • Instant rollback — flip traffic back to the previous environment if something breaks
  • Testable in production — the new version runs on real infrastructure before receiving traffic
  • Clean cutover — no partial deploys or mixed versions serving traffic simultaneously

Challenges

  • Cost — you pay for two full production environments at all times
  • Database migrations — schema changes need to be backwards-compatible so both environments can run against the same database during the transition
  • State — session data, caches, and queued jobs need to be environment-agnostic or shared

Traffic Switching

You can switch traffic gradually rather than all at once. Route 5% of users to Green, monitor error rates and response times, then increase to 25%, 50%, 100%. This is closer to a canary deployment but using the same blue/green infrastructure.

Tools and Platforms

Platform Blue/Green Support
AWS Elastic Beanstalk Built-in blue/green swap
AWS CodeDeploy Native blue/green support
Kubernetes Blue/green via service selector updates
Laravel Forge Manual environment switching via zero-downtime deploys
Cloudflare Pages Preview deployments + production promotion

When to Use It

Blue/green is a good choice when:

  • Your application cannot tolerate any downtime
  • Your team needs a safe, fast rollback option
  • You are deploying significant changes and want production-level validation before switching