– 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.

MethodImpact of Failed DeploymentDeploy TimeZero DowntimeNo DNS ChangeRollback ProcessCode Deployed To
All at onceDowntime1NoYesManual RedeployExisting Instances
RollingSingle batch out of service; any successful batches before failure running new application version2.5YesYesManual RedeployExisting Instances
Rolling with additional batchMinimal if first batch fails; otherwise, similar to Rolling3.5YesYesManual RedeployNew and Existing Instances
ImmutableMinimal4YesYesTerminate New InstancesNew Instances
Blue/greenMinimal4YesNoSwap URLNew Instances