All At Once - New version deployed on all instances at once. This can cause outage
Rolling - Application is deployed in batches of instances. A batch is taken out of environment, new version is deployed. Once health checks are passed only then next batch is deployed. This reduces possibility of outage but the capacity is lower till all th batches are completed. The Batch Size can be decided by the user.
Rolling with Additional Batch - Same as above but the new version is deployed on additional batch . When it passes healthchecks one of the existing batches is removed. This ensures that there is no reduction in capacity during deployments. Both Rolling approaches mean that multiple version will be live till all batches are replacd
Immutable - A new Temp ASG is creted with new instances running new version. Only when all healthchecks have passed and you have verified things are working fine, new instances are moved into old ASG, old instances are removed and temp ASG is removed
Traffic Splitting - Same as Immutable but in this scenario traffic can be split between old and the new ASG. This can be used for A/B testing for example