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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.