What Are the Pros and Cons of Rolling Deployments? hero graphic

What Are the Pros and Cons of Rolling Deployments?

May 26, 2023 by Anna Daugherty

Rolling deployments use a software release strategy that delivers new versions of an application in phases to minimize downtime. Anyone who has lived through a failed update knows how painful it can be. If a comprehensive update fails, there are hours of downtime while it is rolled back. Even if the deployment happens after hours, failures can disrupt processes that impact operations. 

While phased deployment can reduce downtime, it is not without drawbacks. Because deployments can be complex and may encounter compatibility issues, extensive planning is a necessity. Organizations should evaluate the pros and cons of rolling deployment to ensure it is the right strategy for their business. 

How Do Rolling Deployments Work? 

Rather than deploying an entire update across an enterprise at once, IT gradually replaces the older version with the new update — one instance at a time. This incremental approach allows for more controlled delivery. For example, each deployment receives a health check to ensure performance before moving forward. When the new software passes its checks, the older software is removed, and the new version is placed in production. 

IT personnel have the option to keep the older version in reserve while they monitor the system. If a problem occurs, rolling back is straightforward because the software is readily available. The process continues until all instances are replaced. 

What Are the Pros of Rolling Deployment? 

Rolling deployments can reduce costs and downtime as compared to more traditional deployment strategies. They provide flexibility, making it easier to monitor the process. The following list highlights the pros of rolling deployments. 

Monitoring 

Rolling patterns are incremental, so each deployment is carefully monitored for unusual behavior. Some strategies deliver a subset of the total targets, while others replace the older version one node at a time. Through continuous monitoring, IT can discover errors quickly and correct them before the next deployment is scheduled. 

Health Checks 

Checking the health of each instance enables personnel to assess operational efficiency. If the new software doesn’t perform as expected, the developers can correct the problem before the software is deployed elsewhere. 

Customizable 

Rolling deployments are dynamic and scalable. Automated deployments can establish a plan and ensure its execution. However, without scripting, load balancers, environments, and applications must be configured. 

Cost Efficient 

Unlike other deployment strategies, rolling deployments do not require duplicate resources. Eliminating virtual or physical machines reduces the demand on existing infrastructure, which makes for more efficient deployments. 

Rollback 

Unexpected behaviors can throw comprehensive deployments into chaos as entire updates are backed out and older versions restarted. With rolling deployments, an anomaly in one instance can be readily rolled back and investigated before continuing. If needed, earlier deployments can be rolled back until a fix is available. 

Implementation 

With the right tools, deployment can be as simple as setting a few configuration flags. Proper planning ensures that known limitations are addressed before the deployment begins. 

What Are the Cons of Rolling Deployment? 

No strategy is flawless; however, understanding its limitations makes it easier to ensure an error-free deployment. The following list highlights the limitations of a rolling deployment strategy. 

Limited Instances 

Many services and shared resources may reach their maximum connections as instances are deployed. Careful planning that contains the rolling pattern can minimize the risk of unavailable resources during delivery. 

Increased Vulnerability 

Security risks increase in a rolling environment unless the process is carefully monitored. Misconfigurations can expose the environment to cyberattacks. The process can consume resources that, if not handled correctly, can increase the attack surface during deployment. 

Higher Complexity 

Planning is essential to successful rolling deployments. Plans need to identify the initial node or subset of nodes to be updated. It should outline the configuration requirements for each environment and stipulate the monitoring efforts. When possible, the plan should identify specific areas of concern to help focus monitoring and health checks. 

Shared Environment 

Rolling deployments share the same infrastructure as the existing software. When new software is deployed, the old and new instances would share the same database and access many of the same services. There is no way to isolate the environment, so monitoring is essential. 

New software must be backward compatible for it to operate in a shared environment with older solutions. Without compatibility, rolling deployments would not work, as the newest software might not operate in an existing infrastructure. 

Long and Slow Process 

Rolling deployments can be a slow process depending on the complexity and the number of nodes requiring the new solution. Obviously, the more points for updating means a longer process. The monitoring period can also be extended if bugs are found or the update is extensive. 

When to Use Rolling Deployments 

Rolling deployments only require enough resources for a single instance. If your environment has sufficient resources, you can take one server offline to deploy the update while leaving the remaining servers to support existing traffic. When the new instance has been tested, traffic can be routed to the updated server. The process repeats until all instances are complete. This approach avoids system-wide downtime. 

Businesses may not have the resources to maintain multiple environments. In those situations, rolling deployment can help. Because updated software should be backwards compatible, the new and old versions can co-exist until testing is complete and any flaws are addressed. 

Small, incremental changes can benefit from rolling deployments. With automated tools, the updated software can be quickly delivered and tested before anyone notices a change in performance. Instead of long deployment windows, small changes can be tested and corrections can be applied without disruption to business operations. 

Rolling Deployment with Armory 

Rolling deployments go hand-in-hand with continuous integration and deployment. Platforms such as Armory have the ability to automate much of the process, making for a faster and more transparent process. If you are interested in learning more about the pros and cons of rolling deployments, explore our deployment solutions to learn how we can help find the right deployment strategy for your needs. 

Share this post:

Recently Published Posts

Continuous Deployment KPIs

May 31, 2023

Key SDLC Performance Metrics for Engineering Leaders Engineering leaders must have an effective system in place to measure their team’s performance and ensure that they are meeting their goals. One way to do this is by monitoring Continuous Deployment Key Performance Indicators (KPIs).  CD and Automated Tests If you’re not aware, Continuous Deployment, or CD, […]

Read more

What is DevSecOps?

May 23, 2023

Before agile development became an accepted approach to delivering software, companies waited until software contained all desired features before releasing it. Imagine waiting a year before a needed feature became available. Yet, that was how most software releases occurred.  Once the software was released, companies prepared an annual or semi-annual update that incorporated new features […]

Read more

Automate! (Wherever Possible.) – An Excerpt from Cybernews

May 11, 2023

This interview with Jason McIntosh, Principal Engineer at Armory, originally appeared on Cybernews. Read it in full here. https://cybernews.com/security/jason-mcintosh-armory-with-the-current-developer-workload-the-best-practice-is-to-automate-wherever-possible/ What would you consider the main challenges development teams run into nowadays? A primary challenge is a continuous growth in complexity introducing friction into the innovation process. As organizations accelerate their transition to cloud-native architectures, developers […]

Read more