Flagr 核心概念速记

原文:openflagr.github.io/flagr/#/REA...

官方释义

假设我们想要向美国用户推出一个新的按钮,颜色可能是红🟥、绿🟩、蓝🟦,但我们不知道哪种颜色效果最好。

Flag 和 variant

这个按钮就是一个 flag(可理解为特性),三种颜色就是这个 flag 的三个 variant(变种)。

Segment 片段

我们可能希望先将按钮展示给一小部分用户,例如加州的用户。

那么加州的用户就是一个 segment(可理解为用户片段或者用户群体)。

Constraint 约束条件

同时,我们了解到加州的用户喜欢绿色按钮🟩,纽约的人喜欢粉色按钮🟥,华盛顿的人喜欢蓝色按钮🟦。 那么,我们就有三个 segment,我们通过 constraint(约束条件)所在州 == ? 来区分三个 segment

另外,segment 也可以由多个 constraint 定义。例如, 所在州 == 纽约 AND 年龄 >= 21

Distribution 分布

要对这个 flag 进行A/B测试,我们可以尝试以 50%/50% 的比率来分布绿色🟩和蓝色🟦 ,这个 50%/50% 就是 distribution

Rollout 推出

并且我们仅针对 20% 的加州用户进行测试。这个 20% 就是 Rollout Percent(推出率)。

之后,我们可以将推出率设置为 100% ,以便加州的每个用户都有 50% 的机会获得绿色或蓝色按钮。

另外,如果你想让所有用户都看到绿色按钮,那么你可以把绿色/蓝色的 distribution 设置为 100%/0%,把推出率设置为 100%。

伪代码

代码中遇到一个 entity(实体,一般可以是用户)时,先让 flagr 对它进行评估,得到评估结果之后,看看它属于哪一个变体,根据变体的不同执行不同的业务逻辑:

perl 复制代码
evaluation_result = flagr.post_evaluation( entity )

if (evaluation_result.variant_id == treatment1) {
    // do the treatment 1 experience
} else if (evaluation_result.variant_id == treatment2) {
    // do the treatment 2 experience
} else if (evaluation_result.variant_id == treatment3) {
    // do the treatment 3 experience
} else {
    // do the control experience
}

对应的设置如下:

markdown 复制代码
Variants
  - control
  - treatment1
  - treatment2
  - treatment3

Segment
  - Constraints (state == "CA")
  - Rollout Percent: 20%
  - Distribution
    - control: 25%
    - treatment1: 25%
    - treatment2: 25%
    - treatment3: 25%
Segment
  - Constraints (state == "NY" AND age >= 21)
  - Rollout Percent: 100%
  - Distribution
    - control: 50%
    - treatment1: 0%
    - treatment2: 25%
    - treatment3: 25%
相关推荐
matrixlzp2 天前
K8S Gateway AB测试、蓝绿发布、金丝雀(灰度)发布
kubernetes·gateway·ab测试
Cachel wood1 个月前
大数据开发知识1:数据仓库
android·大数据·数据仓库·sql·mysql·算法·ab测试
得物技术1 个月前
DPP推荐引擎架构升级演进之路|得物技术
java·算法·ab测试
Cachel wood2 个月前
Mysql相关知识:存储引擎、sql执行流程、索引失效
android·人工智能·sql·mysql·算法·前端框架·ab测试
bjwuzh3 个月前
软件的生命周期有哪些阶段?
功能测试·单元测试·测试用例·ab测试·模块测试·测试覆盖率·安全性测试
周粥粥ph6 个月前
面试_ABtest原理简介
ab测试
字节数据平台7 个月前
数据飞轮赋能科学决策:火山引擎 DataTester 升级 A/B 大模型评测
大数据·人工智能·语言模型·ab测试
字节跳动数据平台8 个月前
数据飞轮赋能科学决策:火山引擎 DataTester 升级 A/B测试大模型评测
后端·ab测试
软件测试微课堂9 个月前
接口框架辅助类的深度解析(上篇)
单元测试·测试·ab测试
得物技术10 个月前
得物AB实验平台数据驱动决策实践
大数据·架构·ab测试