diff options
author | John Cai <jcai@gitlab.com> | 2022-10-31 20:03:39 +0300 |
---|---|---|
committer | John Cai <jcai@gitlab.com> | 2022-11-02 17:10:01 +0300 |
commit | 5d6dd8ff64998f1eb0ef434fa23658bf7c430230 (patch) | |
tree | a776ee50b7fb8a75048f10f36c7af4041a3e176b /doc | |
parent | 5886ff8b850be199762d35e658f478b3f5dd4f7b (diff) |
PROCESS: Instruct gradual rollout for feature flags
When we roll out feature flags, we always want to roll out gradually
rather than all at once. Additionally, when turning on feature flags, we
should use certain Slack channels for maximum visibility. Explicitly
include these instructions in the PROCESS.md doc.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/PROCESS.md | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/doc/PROCESS.md b/doc/PROCESS.md index c7b190b48..dd7a477c6 100644 --- a/doc/PROCESS.md +++ b/doc/PROCESS.md @@ -152,7 +152,7 @@ repository, and manually test from there. Manually use the feature in whatever way exercises the code paths being enabled. -Then enable `X` on staging, with: +Then enable `X` on staging, run the following in the `#staging` Slack channel: ```shell /chatops run feature set gitaly_X --staging @@ -176,12 +176,20 @@ environment? Good! #### Steps -To enable your `X` feature at 5/25/50 percent, run: +Feature flags must be rolled out in production systems gradually to +reduce risk of incidents. Use percentage based actors instead of enabling a +feature flag fully. The concrete percentages depend on the scope of the feature +flag as well as its inherent risk. In general, add more fine-grained steps the +higher the risk and the broader the scope of the gated feature. + +To enable your `X` feature at 5/25/50 percent, run the following in the +`#production` Slack channel. As Gitaly does not reliably support feature +flag actors, you need to do a fully-randomized rollout: ```shell -/chatops run feature set gitaly_X 5 -/chatops run feature set gitaly_X 25 -/chatops run feature set gitaly_X 50 +/chatops run feature set gitaly_X 5 --random +/chatops run feature set gitaly_X 25 --random +/chatops run feature set gitaly_X 50 --random ``` And then finally when you're happy it works properly do: |