What is a blue/green deployment?
Blue/green is a deployment strategy with two identical environments. Blue runs the current version, and green runs the new version.
Process:
- Deploy the new release to the idle environment and run smoke tests.
- Shift traffic to it, usually by switching a router, load balancer, or DNS.
- If something breaks, switch traffic back to the old environment almost instantly.
- Keep the old environment until the new one is proven, then reuse it for the next release.
aws elbv2 modify-listener --listener-arn arn:... \
--default-actions Type=forward,TargetGroupArn=arn:...green
Benefits: near-zero downtime, fast rollback, and the ability to test in production-like conditions. Drawbacks: double the infrastructure cost and tight data or schema compatibility between versions. It works best with stateless services and backward-compatible database migrations.