参考架构与落地路线图
实验平台的难点不是建一个能开实验的网站,而是让结论可信、组织愿用、成本可控。
10.1 六条设计原则#
决策与度量解耦
决策层(Flag/定向/分流 SDK)追求低延迟、高可用、可离线求值;度量层(曝光、指标、统计)追求口径一致、可回溯、可重算。两层通过统一 exposure schema 连接,而不是通过某个厂商的 SDK 强耦合。控制面薄、数据面厚
控制面负责「实验/Flag 的定义、审批、版本、权限、审计」,可以买、可以开源二次开发;数据面负责「分流、曝光、指标、统计」,必须与业务口径深度耦合,建议自建或深度定制。配置下发「最终一致 + 快速收敛」
SDK 本地缓存全量规则,启动时拉取、运行时订阅变更;配置服务不可用时 fail-open 到默认值/上次版本。不要在下游请求链路里同步调用配置服务。曝光是实验的第一公民
没有曝光日志,就没有可信的实验。曝光事件必须包含:experiment_id、variant、unit_id、timestamp、context、assignment_source、config_version。曝光去重、采样、延迟上报都要设计。统计引擎可替换
统计层通过「指标数据 + 实验配置」的标准输入对接,允许频率派/贝叶斯/序贯多引擎并存;不要把统计逻辑写死在业务代码里。实验元数据是资产
实验定义、分层、互斥、Holdout、指标口径、历史结论必须可导出、可版本化、可重放。选型/自建时,元数据模型比 UI 更重要。
10.2 目标架构#
模块说明:
| 模块 | 职责 | 关键设计 | 建议 |
|---|---|---|---|
| OpenFeature SDK | 统一求值接口,屏蔽供应商 | provider 可插拔;本地缓存;默认值 | 自建薄封装 + 采用 OpenFeature 规范 |
| 配置分发 | 规则版本、灰度、订阅 | 全量快照 + 增量推送;版本号;回滚 | 自建(Redis/etcd + SSE/长轮询) |
| 分流服务 | 哈希、分层、互斥 | 无状态、确定性、salt 隔离、单元测试 | 自建 |
| Flag 服务 | 定向、放量、kill switch | 与实验共享规则模型;审计 | 自建或复用 LaunchDarkly/Unleash |
| 实验管理 | 假设、设计、生命周期 | 状态机;模板;预注册;冻结 | 开源二次开发或自建 |
| 指标注册表 | 口径、版本、owner | 指标 DSL;血缘;口径变更审批 | 自建(与数仓指标平台统一) |
| 曝光采集 | 事件收集、去重、采样 | schema 校验;幂等;延迟容忍 | 自建(Kafka + 数仓) |
| 统计引擎 | 检验、CUPED、序贯、SRM | 输入标准化;可重算;多方法 | 复用 GrowthBook/Eppo 或自研 |
| 报表 | 实验结论、护栏、下钻 | 置信区间、effect size、segment | 开源/自建 |
| 治理 | 审批、权限、审计、冻结 | 多租户;实验冲突检测 | 自建 |
10.3 分阶段路线图#
阶段 0:0-90 天,MVP(一个业务、一个端)#
目标:让 10-20 个实验跑起来,且结论可信。
- 范围:服务端实验 + 一个客户端(Web 或 App);单层分流;A/B 两变体;基础指标(转化率、人均值);频率派 + SRM 检测。
- 必做:
- 统一 exposure schema 与埋点 SDK;
- 确定性哈希分桶(MurmurHash3 + salt),单测覆盖均匀性/独立性;
- 实验管理最小闭环:创建 → 审批 → 上线 → 曝光 → 报表 → 归档;
- AA test 与 SRM 自动告警;
- 护栏指标(崩溃率、延迟、收入)接入;
- 分流服务 p99 < 20ms,可用性 99.9%,fail-open。
- 不做:可视化编辑器、MAB、CUPED、跨业务互斥、实时指标。
- 验收:至少 10 个实验上线;AA test 通过率 >95%;SRM 告警可在 5 分钟内定位;业务方愿意用。
阶段 1:90-180 天,规模化(多业务、多端)#
目标:支持 5+ 业务线、月实验 100+,建立治理。
- 范围:iOS/Android/服务端多端 SDK;正交分层;互斥实验;Holdout;比率指标;CUPED;序贯检验;warehouse-native 指标;RBAC/审批/审计。
- 必做:
- 层/域模型:不同业务用不同 layer + salt,保证正交;
- 互斥组:同一链路实验不能叠加,冲突检测前置;
- Holdout:按用户长期保留 1%-5%,衡量体系整体增量;
- 指标注册表:口径、owner、版本、血缘;
- 实验评审:高风险实验(收入、合规、推荐)强制评审;
- 数据质量:曝光去重、机器人过滤、延迟监控、回填。
- 验收:月实验 100+;跨业务冲突率 <1%;指标口径争议 <5 个/月;实验结论复核通过率 >90%。
阶段 2:180-365 天,智能化与规模化#
目标:从「能跑实验」到「实验驱动决策」。
- 范围:实时指标(分钟级);MAB/Interleaving;CATE/异质效应;AI/LLM 实验;多区域/私有化;成本优化。
- 必做:
- 实时链路:Flink/ClickHouse,曝光到报表 <5 分钟;
- 高级实验:Switchback(双边市场)、Cluster(地理)、Interleaving(搜索/推荐)、MAB(流量分配);
- AI 实验:prompt/模型版本因子设计、非确定性输出的样本单位、延迟/成本护栏、LLM-as-judge 的偏差校准;
- 实验知识库:历史结论、可复用假设、失败案例;
- 成本:数仓分区/列裁剪、曝光采样、报表预聚合。
- 验收:实验周期缩短 30%;高价值实验占比 >30%;实验结论被产品/运营引用率 >50%;平台月活用户 >300。
10.4 团队与预算#
| 阶段 | 编制 | 年成本量级(人民币) | 说明 |
|---|---|---|---|
| MVP | 1 PM + 3 后端 + 1 前端 + 1 数据/统计 + 1 SRE = 7 人 | 300-500 万 | 统计可先用外部顾问 |
| 规模化 | 12-15 人:平台、SDK、数据、统计、产品、SRE | 600-1000 万 | 统计团队 2-3 人 |
| 智能化 | 18-25 人 | 1000-1800 万 | 含实时链路、AI 实验、治理 |
这是「自建」的人力成本,不含服务器/数仓。若采用「自建分流 + 采购统计」,人力可压缩到 6-8 人,年成本 300-600 万,但需要接受供应商的统计边界。
10.5 平台成功指标(不要只看实验数量)#
| 指标 | 定义 | 目标(12 个月) |
|---|---|---|
| 实验速度 | 从提出假设到上线的时间 | 中位数 < 5 天 |
| 实验吞吐 | 每月完成的实验数 | 100+ |
| 可信度 | AA test 通过率;SRM 率 | >95%;<2% |
| 决策影响 | 有明确「上线/回滚/迭代」决策的实验占比 | >80% |
| 护栏覆盖 | 带护栏指标的实验占比 | 100%(高风险) |
| 平台采用 | 月活实验用户 / 目标用户 | >60% |
| 性能 | 分流 p99;配置下发 p99 | <20ms;<1s |
| 成本 | 单实验数仓查询成本 | 同比下降 30% |
10.6 风险清单#
| 风险 | 表现 | 缓解 |
|---|---|---|
| 统计不可信 | SRM 频发、结论反复 | 曝光校验、AA test、SRM 自动归因、统计评审 |
| 数据口径分裂 | 平台报表与数仓报表对不上 | 指标注册表、单一事实源、口径变更审批 |
| 组织不信任 | 业务方绕过平台自己跑 | 早期赢单案例、实验评审、培训、把平台指标纳入考核 |
| 供应商锁定 | SDK 无法替换、数据导不出 | OpenFeature、曝光落数仓、合同写入导出/退出条款 |
| 性能事故 | 分流服务超时拖垮业务 | 本地缓存、fail-open、旁路开关、压测 |
| 实验冲突 | 同一用户被多个实验影响 | 分层/互斥、冲突检测、全局实验看板 |
| 新颖效应 | 短期涨、长期跌 | Holdout、长期指标、重复实验 |
| AI 实验偏差 | LLM 输出非确定性、评估偏差 | 固定 seed/温度、人工校准、多评委、成本护栏 |
| 合规 | 数据出境/隐私 | 私有化、脱敏、同意管理、数据保留策略 |
本章结论:实验平台的难点不在「建一个能开实验的网站」,而在「让实验结论可信、让组织愿意用、让成本可控」。路线图应该按「可信度 → 规模化 → 智能化」推进,而不是一上来就做可视化编辑器和 MAB。