How to create a faster feedback loop through progressive deployment
Using continuous deployment and progressive deployment for software updates accelerate feedback loops to improve development speed and software quality, giving your company a competitive advantage. In our fast-paced world, early and frequent software deployments increase business performance and revenue. Automated deployments enable faster and more reliable updates.
Companies that have generated higher release rates outpaced growth in companies that have not, achieving four to five times faster revenue growth and 20 percent higher operating returns. But those software updates must be high-quality and satisfy users’ needs. An increasing number of customers aren’t giving brands a second chance -- 32 percent of all U.S. customers would stop doing business with a brand they loved after one bad experience. In addition, reliable software is imperative because outages and downtime caused by failed deployments can cost companies anywhere between $100,000 to $5 million per hour.
Let’s take a closer look at how continuous deployment and progressive deployment shorten the time from update release to data collection and improve your product.
The benefits of continuous deployment
Continuous deployment (CD) powers iterative development, which is the engine of a rapid continuous feedback loop.
- CD automates deployment of code releases. This ability makes pushing out updates simpler, more reliable, faster and repeatable. Developers don’t need to troubleshoot deployment issues. Instead, they can focus on coding new features and fixing bugs in the software, leading to better quality and more frequent updates.
- Combining CD with tools like Kubernetes allows your teams to regularly deploy improved updates with less effort. Rather than engineers sending code individually to each server, a tedious and error-prone process, the push of a button dispatches code to all servers at once.
- CD speeds up software development, improves quality, and accelerates the delivery of business value. The more often you release updates, the more feedback you can gather to guide the creation of additional features and bug fixes for the next release. The cycle repeats itself. Instead of waiting months for the next software version, users receive it within days or even hours.
Progressive deployment takes the feedback loop to the next level
Progressive deployment builds on continuous deployment with the addition of progressive rollouts. Progressive rollouts send the new application version to a small subset of users and run automated health checks. If the application appears to run well, the automated process slowly increases the percentage of production traffic receiving the update. If there are issues, the change is rolled back.
The progressive deployment update cycle follows these steps:
- Teams develop code, commit it and run tests in their continuous integration (CI) tools.
- The teams then deploy the code to a staging environment where automated integration tests are run.
- If the automated tests pass, progressive deployment to production begins.
- Observability tools gather relevant data, including logs, events, performance and errors. The tools evaluate the data to ensure the new application version is healthy.
- If everything is working correctly, the amount of traffic routed to the new version increases, and step 4 is rerun until traffic reaches 100 percent. If issues are detected at any point, the change is rolled back.
Progressive deployment utilizes deployment strategies like canary and blue/green and kickstarts the feedback chain from users, whether internal or external. The process allows developers to safely release new features and gather data in a live production environment without a huge impact.
Feedback loops are swift and informative when using progressive deployment. At each increase in traffic, tools gather feedback on the update’s performance to inform the next step of the rollout, whether it is a wider release or a complete rollback.
The regular information created by progressive deployment allows quick action to prevent issues. The process minimizes downtime for each release, eliminates the need for after-hours deployments and lessens the developers’ workload and stress. The resulting accelerated feedback loop enables developers to gather functionality data. These factors combine to maximize uptime and ensure happy customers.
Photo credit: niroworld / Shutterstock
Stephen Atwell is the principal product manager at Armory. He develops products to improve the life of technologists. Currently, his focus is on simplifying complex deployment patterns. Stephen was a speaker at CDCon in 2021, and the TBM Conference in 2015. Stephen started working in IT Operations in 1998 and transitioned to developing software in 2006. Since then he has focused on developing products that solve problems he experienced in his previous roles. Stephen holds a bachelors in computer engineering and has worn hats ranging from network administrator to software engineer, to product manager.