Progressive rollout
The Progressive Rollout solution automates the release process of new features to your users by gradually providing the flag variation you choose as the default strategy to a larger percentage of your users. This approach helps you detect problems early on and reduce the impact.
How rollout works
The flag must have two variations to use the rollout feature. For example, consider that you have a boolean flag with two variations: true
and false
. This flag determines whether new content is available to users or not.
Currently, the false
variation is the OFF variation, meaning users can't see the new content. However, you want to make the content available to all users within ten days. In this case, you can use the rollout feature to progressively roll out the true
variation to 10% of your users daily.
On the first day of the rollout, 10% of your users will see the new content. On the second day, 20% will see it, and so on. After ten days, the rollout will be complete, and all users will have access to the new content. The image below summarizes the rollout process described.
Creating a rollout
To add a rollout to a feature flag, you need to follow the steps below:
- Go to the Auto Operation tab on the feature Flag page details.
- Click the + New Operation and select Progressive Rollout.
- Configure the rollout and click Submit. Check the Template rollout or Manual rollout sections to learn how to configure the rollout.
The progressive rollout only works for flags with two variations and no running experiment.
You can have only one active rollout out for each feature flag.
If the flag is disabled when a progressive rollout is created, the progressive rollout automatically enables the flag as soon as it starts.
Please remember that the progressive rollout will be stopped in the following scenarios:
- If you disable the flag manually.
- If a Schedule is configured to disable the flag.
- If a Kill Switch is configured and matches the conditions to disable the flag.
The rollout provides two main options when setting it up:
- Template: With this option, you define the percentual increment and the frequency of the rollout. The weight of each phase and the execution time are automatically defined until the rollout reaches 100%.
- Manual: In this case, you are responsible for defining each rollout phase's percentual weight and release time.
Template rollout
If you choose to use the Template rollout, you need to define the following configurations before submitting it:
- Variation: Choose the variation to roll out. You should not choose the same variation selected as OFF variation. Otherwise, it could affect what the end users see.
- Start Date: The rollout starting date and time.
- Increment: The percentual increment used at each rollout release phase. This option will define, as a result, the total number of rollout releases. If you choose 10%, ten stages are required to reach the total rollout.
- Frequency: The frequency of each rollout phase (hourly, daily, weekly) will be released. The first phase will depend on the Start Date value you selected, and the remaining phases will rely on this starting point.
Notice that when using the Template rollout, all phases increment the percentage of users accessing the new variation by the same amount, defined by the Increment parameter. The image below summarizes an example of a configuration using the Template configuration.
Manual rollout
When using the Manual rollout, the configurations required to submit the rollout differ from those used on the Template rollout. In this case, you need to set the following parameters:
- Variation: Choose the variation to roll out. You should not choose the same variation selected as OFF variation. Otherwise, you will receive an error message.
- Weight: The percentual value of users receiving the selected variation at the selected date.
- Execute at: The date and time when the rollout phase will be released, updating the percentage of users accessing the selected variation.
Using the Manual rollout, you do not need to follow an incremental rule for each rollout phase. The only restriction is that each new rollout phase must have a higher weight than the previous one and more than 5 minutes between the rollouts.
Another important point related to the Manual option is that you don't need to reach 100% to submit the rollout. Suppose the last entry to the Manual configuration is 90%. In this case, the rollout will be concluded, and only 90% of your users will have access to the new variation. The remaining 10% will continue receiving the OFF variation, the same as before the rollout.
The image below summarizes an example of a configuration using the Manual configuration.
Managing rollouts
After creating a rollout, it becomes active and is available in the Auto Operation panel. You can identify the rollout by the Progressive Rollout tag or the Enable Operation type. The rollout progress information displays all rollout phases, including the respective dates, times, and the total percentage released at each phase. The progress information also includes:
- Increment: The percentage increment used at each rollout release phase (only available for Template rollouts).
- Start Date: The date when the progressive rollout will start.
- Variation: The flag variation being released.
- Frequency: The frequency of each rollout phase (hourly, daily, weekly), (only available for Template rollouts).
The following image shows an example of progress information for a progressive rollout:
Updating or editing a progressive rollout is not supported in Bucketeer. You can only delete or stop the rollout.
While active, you can stop or delete the rollout:
- Stop Progressive Rollout: Stops the rollout, moving it to the finished tab, where you can check the last rollout state or use it as a reference for future rollouts.
- Delete Rollout: Stops and removes the rollout information from the server. Use this option carefully. Only logs will be reported on the operations related to that rollout on the Audit Logs page.
Roullout lifecycle
When you create a rollout, it will be active and available in the Active tab of the Auto Operation panel. The first rollout stage (0%) displays the date and time of its creation. As each stage is reached, the progress information panel updates, providing clear visual information about the current rollout progress. After all rollout stages are completed, the rollout moves to the Finished tab. The following image presents an example of progress information for a running rollout.
Combining auto operations
You can combine the usage of available auto operations from Bucketeer. For example, you can define a progressive rollout, a schedule, and a event rate conditions for the same flag.
It's vital to note that turning off a flag by schedule or event rate conditions has a higher priority than the progressive rollout. Therefore, if your flag has a running progressive rollout and an Auto Operation is triggered, the system will stop the progressive rollout. The progressive rollout will be moved to the Finished tab, where you can check the last rollout state or use it as a reference for future rollouts.
Restrictions and rules
Creating and using progressive rollout features have certain restrictions to ensure smooth implementation and usage.
Restrictions when creating a rollout
The progressive rollout is designed to work exclusively with flags having two variations and no running experiment.
If you create a progressive rollout and the flag default strategy uses a rollout percentage, the existing rollout rules will be overridden. The default strategy will be reset according to the settings defined during the progressive rollout creation.
You can use the progressive rollout with all feature flag types.
Restriction when updating a flag
If you need to update a flag that has a running progressive rollout associated with it, be aware of the following restrictions:
- The default strategy on the Targeting tab can't be modified.
- You're not able to add or remove variations to the flag. However, you can edit the values, names, and descriptions of the existing variations.
Other Auto Operations
Progressive rollouts can be created for flags, whether they're enabled or disabled.
If either manual intervention or Auto Operations turn OFF a flag, the default strategy percentage will remain the last progressive rollout update value. Consequently, if the flag is turned back on in the future, the default strategy percentage will be the last updated value when the progressive rollout is stopped.