All at once = deploy to all instances at once, loses all capacity during deployment
Rolling = take a batch of instances out of service, deploy and put them back, repeat until all instances are updated, loses a batch of capacity during deployment
Rolling with additional batch = create an extra batch and do rolling deployments, do not lose capacity during deployment
Immutable = deploy to a fresh group of instances, do not lose capacity during deployment, traffic is shifted after deployment
Traffic splitting = deploy to a fresh group of instances, shift a percentage of traffic to new instances, when everything goes well, shift all traffic
aka. Canary testing
vs. Configuration changes
When you change resource configuration (instance type, key pair, environment variables etc.), new instances needs to be provisioned
Otherwise configurations may get applied directly to instances
2 options
Rolling = similar to “Rolling with additional batch” deployment, but this time it’s about instances not the application on it
Immutable = this is the mechanism used by “Immutable” deployment
Cannot change resource and deploy application in one go, must be done separately