About Rolling Deployments

This release strategy allows to reduce downtime by installing the new version of an Application on one server or subset of servers (endpoint) at a time.

Scenario

Let us imagine you have read the Deploying a 3-Tier Application scenario to deploy your Application and now you want to roll out a new version. Your Application comprises three components: front end, back-end and database. Each component is deployed into three Targets which receive traffic from a load balancer. If you want to upgrade your Application with a rolling deployment approach you can configure the load balancer to temporary direct traffic to only two Targets (which run the existing version) and upgrade the third one in the meantime.

You can decide how many Targets you want to upgrade simultaneously (this is called "window size"). For example, if you define a window size of two, the new version will be deployed to two Targets simultaneously. A new deployment will start only after the deployment to one or both of the Targets has finished.

If you do not feel confident enough with the new version deployed, you can test its performance by limiting the traffic directed to this node with the load balancer.

Graphic depicting logic of rolling deployments

See also: