diff --git a/website/docs/availability.md b/website/docs/availability.md index a394e86aca..dcca92f00e 100644 --- a/website/docs/availability.md +++ b/website/docs/availability.md @@ -16,7 +16,11 @@ This is an example of a feature that is only available to Enterprise customers w - [Open Source](https://www.getunleash.io/pricing) - Available on [GitHub](https://github.com/Unleash/unleash) under an Apache 2.0 license. - Pro - Currently not offered. -- [Enterprise](https://www.getunleash.io/pricing) - Available as Pay-as-you-go or as an annual contract. +- [Enterprise](https://www.getunleash.io/pricing) - Available as Pay-as-you-go or as an annual contract, as cloud-hosted or self-hosted. + +## Beta features + +Some new Unleash features are tagged as `BETA` in the documentation. This means that the feature may be subject to change or discontinuation. Unleash may decide to enable such features for a select number of customers only. If you're interested in trying out a beta feature, please reach out to Customer Success at customersuccess@getunleash.io. ## Versioning diff --git a/website/docs/reference/release-management.mdx b/website/docs/reference/release-management.mdx new file mode 100644 index 0000000000..6ed71a13fa --- /dev/null +++ b/website/docs/reference/release-management.mdx @@ -0,0 +1,102 @@ +--- +title: Release management +--- + +:::note Availability + +**Plan**: [Enterprise](https://www.getunleash.io/pricing) cloud-hosted | **Version**: `6.8+` in [BETA](/availability#beta-features). + +::: + +
+ Share your feedback + + We're currently gathering feedback for release templates and release plans. + + To provide feedback using the Admin UI, go to **Configure > Release management**, and click **Share your feedback**. + + Future iterations of the feature may include: + - An overview of ongoing releases and currently running milestones + - Automated transitions between different milestones +
+ + +## Overview + +[Release templates](#release-template) help you standardize your approach to rolling out new features. By predefining a set of release milestones, you can ensure consistency across all your feature rollouts. + +Instead of manually configuring the same [activation strategies](/activation-strategies#rollout-percentage) across different feature flags, you can define release templates once, and apply them to any feature flag to initiate a rollout. + +[Milestones](#milestone) rely on activation strategies to give you full flexibility when it comes to customizing your release templates. Each milestone executes sequentially, ensuring a structured release process. + +For example, you might define 3 milestones for a release: +- **Milestone 1**: Enable the feature for internal teams to test functionality and resolve initial issues. +- **Milestone 2**: Expand the rollout to 20% of beta users to gather feedback and monitor performance. +- **Milestone 3**: Release the feature to all users after confirming stability and addressing earlier feedback. + +#### Release template + +A predefined sequence of [milestones](#milestone) that structures a feature release. + +#### Milestone +Sequential stages within a [release template](#release-template). Each milestone must contain at least one [activation strategy](/activation-strategies#rollout-percentage), which determines when a feature flag is enabled. +You can combine multiple activation strategies in a single milestone. Unleash evaluates each strategy independently, enabling the flag if any strategy resolves to true. + +#### Release plan + +An instance of a [release template](#release-template) applied to a specific feature flag in a specific environment. You can combine a release plan with additional activation strategies. + +## Create a release template + +To create a release template, do the following: + +1. In the Admin UI, go to **Configure > Release management**, and click **New template**. +2. Enter the template name and an optional description. +3. For the first milestone, click **Add strategy**. +4. Choose a strategy type and configure your [rollout percentage](/activation-strategies#rollout-percentage), [targeting](/activation-strategies#targeting), and [variants](/reference/strategy-variants). +5. Click **Add strategy**. +6. Optional: Add, rename or reorder milestones as needed. +7. Click **Create template**. + +## Configure a gradual rollout with release templates + +Milestones are designed to be flexible and do not inherit the configurations of previous milestones. To build a gradual rollout where each milestone expands on the previous one, you must manually configure the progression of the constraints. + +For example, suppose you want to structure your rollout as follows: +- **Milestone 1**: Enable the feature for 50% of users on the *Basic* plan. +- **Milestone 2**: Keep the same 50% of *Basic* users from Milestone 1 and add 25% of *Premium* users. + +To achieve this, you need to configure Milestone 2 with both constraints: +- A 50% *Basic* users constraint. +- A 25% *Premium* users constraint. + +The configuration would look something like this: + +![Example of progressive milestones](/img/progressive-milestones.png) + +## Apply a release template to a feature flag + +To apply a release template to a feature flag, do the following: + +1. In the Admin UI, open a feature flag and select your target environment. +2. Click **More strategies** (triple-dot icon) and select one of the available release templates. +3. Click **Add release plan**. + +If the environment is enabled, the first milestone starts automatically. + +## Perform a release using a release plan + +Release plans apply per feature and environment. To add a release plan, [apply a release template](#apply-a-release-template-to-a-feature-flag). + +### Start the release +If the environment is enabled, the first milestone begins automatically upon adding the release plan. Otherwise, enable the environment to start the first milestone. + +### Pause the release +Pause the release at any time by disabling the environment for the feature flag. + +### Progress to the next milestone +To progress to the next milestone, click **Start** on the milestone you want to run. + +### Revert to a previous milestone + +To return to a previous stage of the rollout, click **Restart** on the milestone you want to revert to. diff --git a/website/sidebars.ts b/website/sidebars.ts index 8c9771f694..69be2718d8 100644 --- a/website/sidebars.ts +++ b/website/sidebars.ts @@ -379,6 +379,7 @@ const sidebars: SidebarsConfig = { 'reference/segments', 'reference/unleash-context', 'reference/stickiness', + 'reference/release-management' ], }, { diff --git a/website/static/img/progressive-milestones.png b/website/static/img/progressive-milestones.png new file mode 100644 index 0000000000..a47be8df74 Binary files /dev/null and b/website/static/img/progressive-milestones.png differ