Releasing new versions of your software can be nerve wrecking. Doubly so when the update contains new features or a large number of changes for your users. Of course, you always strive to release successful updates, and to help improve your release cycle process, you can use a system called Staged Rollouts.
What is a staged rollout?
A Staged Rollout is a method of releasing updates to your software to only a defined percentage of users, as opposed to releasing the update to all of your users at the same time. Instead of an “everyone or no one” approach, you can gradually distribute your latest update to some of your users. For example, when first released you may choose to only show the update to 10% of users, and over the course of a few days.
Used by numerous software companies world wide, you may have been part of a staged rollout without even knowing it. Common real world examples are mobile phone app releases as well as sites like Netflix and Uber.
The benefits of using staged rollouts.
A staged rollout can serve many purposes depending on the type of software you build. By using a staged rollout, you can take the time to analyze the real world performance impacts of your update, identify any unforeseen bugs, and verify the releases stability prior to giving to all of your users.
As always, we know that you take every precaution to release stable and bug free software to your users, but we live in the real world, where there are some things we just cannot account for. Conflicts with other software, server configurations, and user behavior are all things that organically become apparent as you release an update.
With a Staged Rollout, you can slow down the exposure of your changes to users by only releasing to a specified percentage of them, in order to impact as few people as possible. A bug is much better controlled when only 10% of your users experience it than 100%. If you’ve created a new user interface, getting it in the hands of 25% of users before making it widely available, gives you the time to take feedback from real world users, and release follow up improvements based on this feedback.
How to use staged rollouts with Software Licensing
The Software Licensing extension for Easy Digital Downloads allows you to quickly and easily configure a staged rollout for your releases. When editing your licensed product, you have the ability to do the following:
- Enable staged rollouts.
- Define the percentage of sites that get the update.
- Release the update to sites based on the current installed version.
Staged rollouts is available to all users of our Software Licensing extension who are on version 3.8 or greater. Thanks to the work by Thomas Maier and the team at WP AdvancedAds for inspiring this feature and writing the first proof of concept, which allowed us to quickly integrate this directly into Software Licensing for all users.
A great feature, until now we did this by not changing the version number, which effectively made it available to new customers only. This makes it much more flexible.
Some questions spring to mind: if I first set it to 10%, is there a way to know when that 10% has been reached?
And if I push it to 60%, will the system keep counting from overall users, or will it restart the count, taking 60% of the remaining 90%?
Right now we don’t have a way to let you know that the stage has been completed, however I’ll log that as a feature request so our team can look into it.
If you increase from 10% to 60%, the system will keep counting from overall users, it will not reset the count.
This feature is great addition and we plan to use it soon.
However we have the same question about the status of the deployment. Once we know 10% of users received the update, we will wait for a few weeks and then increase it to 20% and so on.
Second question – what happens if out of 10% of users having available the update, only 5% decides to update? Again we need to know how many users updated to the new version so that we can increase the reach to more users if the intake rate is initially low.
Thanks for the feedback on being able to identify the process of the staged rollouts that are in effect.
I’ll add another feature request as well 🙂
What would be really great, if the increase in percentage could be automated, e.g.
– initial: 10%
– after 5 days, increase to 25%
– another 5 days: 100%
This way, only if issues are encountered the process will be stopped (e.g. by increasing the number of days for the next stage).
In all other situations, you don’t have to remember to keep upgrading the percentage, and the plugin will be gradually get released.
Thanks for the feedback on the feature Rogier.