– All at once – Deploy the new version to all instances simultaneously. All instances in your environment are out of service for a short time while the deployment occurs.

– Rolling – Deploy the new version in batches. Each batch is taken out of service during the deployment phase, reducing your environment’s capacity by the number of instances in a batch.

– Rolling with additional batch – Deploy the new version in batches, but first launch a new batch of instances to ensure full capacity during the deployment process.

– Immutable – Deploy the new version to a fresh group of instances by performing an immutable update.

– Blue/Green – Deploy the new version to a separate environment, and then swap CNAMEs of the two environments to redirect traffic to the new version instantly.

(See my deeper write-up on AWS.)

Method Impact of Failed Deployment Deploy Time Zero Downtime No DNS Change Rollback Process Code Deployed To
All at once Downtime 1 No Yes Manual Redeploy Existing Instances
Rolling Single batch out of service; any successful batches before failure running new application version 2.5 Yes Yes Manual Redeploy Existing Instances
Rolling with additional batch Minimal if first batch fails; otherwise, similar to Rolling 3.5 Yes Yes Manual Redeploy New and Existing Instances
Immutable Minimal 4 Yes Yes Terminate New Instances New Instances
Blue/green Minimal 4 Yes No Swap URL New Instances