Search code examples
amazon-web-servicesamazon-elastic-beanstalk

Difference between rolling, rolling with additional batch and immutable deployments in AWS?


I am using Elastic Beanstalk to handle my deployments.

I read the explanation for these deployment options but it was not quite clear to me.

Could someone explain it in simpler words?


Solution

  • I think this will help a little bit.

    Immutable – starts by deploying your application code to a single newly created EC2 instance. Once the deployment succeeds on the first instance, the remaining number of instances required to create a parallel fleet are created and the application code is deployed to them. After the deployment succeeds on the entire parallel fleet, instances running the old application version are terminated 25% at a time. This deployment policy ensures that the impact of a failed deployment is minimal (i.e.: a single EC2 instance) and enables your application to serve traffic at full capacity during an ongoing deployment.

    Rolling with an additional batch – starts by deploying your application code to a single batch of newly created EC2 instances. Once the deployment succeeds on the first batch of instances, the application code is deployed to the remaining instances in batches until the last batch of instances remains. At this point, the last batch of instances is terminated. This deployment policy ensures that the impact of a failed deployment is limited to a single batch of instances and enables your application to serve traffic at full capacity during an ongoing deployment.

    Rolling – starts by deploying your application code to a single batch of existing EC2 instances. Once the deployment succeeds on the first batch, the application code is deployed to the remaining instances, in batches. This deployment policy ensures that the impact of a failed deployment is limited to a single batch. However, since no new instances are created during the deployment, your application can serve traffic at a reduced capacity (i.e.: a single batch of instances are out of service at any given time during the deployment).