Skip to main content

Gradually Release Your Changes

A rollout is a type of experiment that lets you gradually introduce a change to users instead of releasing it immediately to everyone. A rollout enables monitoring of the effect of the change on important metrics to make sure that the change is working correctly when releasing it. If needed, you can roll back the change instantly without having to do a new release. In summary, a rollout gives you:
  • Monitoring of a set of metrics that you choose to track, including business metrics, performance metrics, and user-behavior metrics
  • Alerts if any of your metrics move in the wrong direction or if there’s a sign that there’s a problem with your setup
  • Recommendations for how to proceed with the rollout
This guide requires a feature flag and at least one metric. In what follows, the guide uses the flag tutorial-feature with a treatment variant, and the metric Page views per visitor for the Visitor entity. Use other flags, variants, metrics and entities whenever the guide refers to these if yours have different names. If necessary, follow the flags quickstart to create the tutorial-feature flag, and the metrics quickstart to create the Page views per visitor metric.
Some sections link to associated videos and documentation. Make use of these resources as they contain important information that the guide doesn’t cover.

Step 1: Create a Rollout

Time to get started and create your rollout. Open Confidence and select Rollout on the left sidebar. The overview page shows all draft, live, and ended rollouts that you have permission to view. Click + Create in the upper right corner to create a new rollout.

Step 2: Name, Entity, and Owner

You first need to give your rollout a name and assign an owner. Use a descriptive name that others understand. You need to decide the entity that you want to rollout to. The rollout uses the entity to randomly assign treatment and to aggregate metrics. For this exercise, use:
  • Name: aa-rollout-<your-name-and-date>
  • Entity: Visitor
  • Owner: Select yourself
Click Create. You’re now on the rollout configuration page.

Step 3: Feature

The feature you choose for your rollout determines what you want to roll out. The feature you want to release must exist as a variant on a feature flag. Feature flags define a configuration for an aspect of your app, website, or backend service. This step is where you select precisely what you want to control in your rollout. In this guide, you don’t want to roll out a real feature or change for your users. Instead, you want to use the tutorial-feature flag. This flag changes nothing in your code, but only serves the purpose of testing the rollout functionality. Click add variant and select:
  • Feature flag: tutorial-feature
  • Variant: treatment
The variant selected here is the variant you want to roll out. Before you reach 100% with your rollout, not everyone receives the new variant. The users that don’t receive the new feature instead get their variant set from other experiments, flag rules or the defaults defined by the clients that use the flag.

Step 4: Audience

The Audience section is where you define what your rollout should target. The treatment randomization unit field determines what field in the evaluation context of the flag that your rollout randomizes treatment assignment on. Confidence pre-populates this field with the entity you selected in the creation step. The context schema maps the entity ´Visitor´ to the field visitor_id (shown in parenthesis). This means that the rollout randomizes on the value passed in the feature flag’s evaluation context field visitor_id. You decide the target audience for your rollout. For example, add country is Sweden as an inclusion criterion if you want to target users in Sweden. The information available in the evaluation context of the flag determines what you can target on. Read more on the Audiences page. In this case, target everyone and leave the inclusion criteria empty.
The evaluation context is information that you pass in when making the resolve call to Confidence to ask what variant to serve. This means what’s available in the evaluation context depends on what you pass in. Confidence lists recently used attributes available in the evaluation context when you enter the name of the attribute.
This video gives a quick overview of how targeting and evaluation contexts work in 2 minutes and 10 seconds.

Step 5: Metrics

In this step you select the metrics you want to track to make sure that your rollout isn’t negatively affecting the user experience or performance in any way. Confidence calls such metrics guardrail metrics.
Confidence uses the entity you selected in the creation step to decide which metrics you can select. Any metric based on the Visitor entity is available. You need to use a fact table that includes the Visitor entity if you want to create a new metric for it.
In the metric section, click Add metric and select:
  • Metric: Page views per visitor metric.
  • Non-desired direction: Decrease. If you use a metric other than Page views per visitor, set this to the direction you don’t want your metric to move in.
  • Non-inferiority margin: 0.
You have successfully configured your rollout, great job!

Step 6: Launch

Now it’s time to launch your rollout!
This step launches your rollout. Make sure that you have selected the tutorial-feature flag to avoid changing a real experience.
Click Launch in the top right corner.

Step 7: Scale Up

When you’ve launched your rollout, you can scale up the reach to what you want. Use the slider to scale it up to 5%. Click Save for the new reach to apply. You’re now serving the treatment variant of the tutorial-feature flag to 5% of your users.
If there are other live rollouts or A/B tests that use the tutorial-feature flag, you may not receive 5% of the traffic. Click Flags on the left sidebar and go to the tutorial-feature flag. In the Rules section, you see what rules exist on the flag. If other rules have higher priority than yours and use all traffic, you receive no traffic. If you want to receive traffic, you need to adjust the priority of your rule and move it up in the list. Read more about order of rules.
Congratulations, you have launched your first rollout!

Step 8: Monitoring and Results

When you launch the rollout, Confidence calculates exposure for the rollout at repeated short intervals to make sure that the rollout is working as expected, and that you are seeing some traffic. Hover the Live status on the right sidebar to see the current status of the checks run for the rollout. You can end the rollout by clicking End in the upper right corner. Keep it running for longer and check back in tomorrow to see your first results.
Remember to end your rollout within a couple of days to waste resources.

Bonus Step: Automate the Ramp-up of Your Rollout

Confidence lets you automate the ramp-up of your rollout. The rollout schema allows you to define the reach steps that the rollout should take and at what time points the increases in reach should happen. Read more about it in the rollout documentation.