灰度发布与功能开关方案提示词(按比例 / 白名单放量、关键指标监控、一键回滚、开关清理)

重要功能上线想先给一小部分用户试用、出问题能马上关掉,或者想让未完成的功能先合入主干而不影响用户时用:AI 设计功能开关的数据结构与判断逻辑、放量节奏和观察指标、回滚条件,以及开关用完后的清理机制。

NNathaniel bigo··原创首发·AI 辅助撰写
通用大模型 对话模型通用
你是一名负责线上发布质量的技术负责人。请为下面的功能设计灰度发布方案。

- 功能描述:[功能描述](例:新的结算页面)
- 影响范围与风险:[影响与风险](例:直接影响下单转化,涉及支付)
- 用户分群需求:[分群需求](例:先内部员工,再 5% 用户,再按城市放量)
- 现有基础设施:[基础设施](例:已有配置中心,没有专门的开关平台)
- 前后端技术栈:[技术栈]

请输出:
1. 开关设计:
   - 开关的类型:发布开关(临时)、实验开关、运维开关(降级用,长期保留)、权限开关;这次属于哪种;
   - 数据结构:开关名称、默认值、规则(白名单、按比例、按属性)、负责人、创建时间、计划清理时间;
   - 判断逻辑:按用户编号做稳定的哈希分桶,保证同一个用户每次看到的结果一致,放量比例提高时已经在新版本中的用户不会被移出;
   - 开关读取失败时的默认行为(通常回到旧版本)。
2. 放量计划:每个阶段的范围、持续时间、进入下一阶段的条件。
3. 观察指标:业务指标(如转化率、支付成功率)、技术指标(错误率、延迟)、用户反馈;新旧两组如何对比;样本量太小时如何避免误判。
4. 回滚:触发回滚的条件与阈值;关闭开关的生效时间(配置推送需要多久);关闭后正在进行中的用户操作如何处理(例如结算到一半)。
5. 前后端一致:同一个用户在前端和后端读到的开关结果必须一致,说明如何保证。
6. 清理:全量后多长时间内删除开关和旧代码;如何防止开关越积越多(例如定期列出过期开关)。
7. 给出开关判断的核心代码与测试。

高亮处换成你自己的内容:[功能描述]、[影响与风险]、[分群需求]、[基础设施]、[技术栈]

ChatGPT Plus 充值

已被复制 0 次

使用说明

怎么填变量:[影响范围与风险] 决定放量节奏:涉及支付和下单的功能,每个阶段要观察更长时间、指标阈值更严格;纯展示类的改动可以放得快一些。[现有基础设施] 没有专门的开关平台时,AI 会给出基于配置中心或数据库的简单实现。

常见坑:

  • 用随机数决定用户是否进入新版本,同一个用户刷新一次就在新旧版本之间来回切换。要按用户编号稳定分桶。
  • 前端和后端各自判断开关,结果前端显示了新页面,后端却按旧逻辑处理。
  • 功能全量后开关一直不删,代码里到处都是新旧两套逻辑,几年后没人知道哪个开关还能动。

追问技巧:追问「把这个开关改造成 A/B 实验,需要补充哪些埋点和分析方法」(可配合 350 号 A/B 测试提示词)。

示例输出

示例,仅供参考(节选)
阶段范围持续进入下一阶段的条件
1内部员工白名单2 天无严重问题
25% 用户3 天支付成功率与旧版相差不超过 0.5 个百分点,错误率无上升
330% 用户3 天同上,且转化率无显著下降
4100%—全量两周后删除开关与旧代码
ts
import { createHash } from 'crypto'

// 稳定分桶:同一用户、同一开关,结果固定;提高比例时原有用户保持在新版本
export function inRollout(flag: string, userId: string, percent: number): boolean {
  const hash = createHash('sha256').update(`${flag}:${userId}`).digest()
  const bucket = hash.readUInt32BE(0) % 10000      // 0 到 9999
  return bucket < percent * 100                     // percent 取 0 到 100
}

同款作品

用这条提示词做出来的作品;原作者会因此获得积分

做同款

还没有同款,来做第一个。

Nathaniel 的更多内容

同主题

同模型

0 条评论

登录 后参与评论

还没有评论,来抢沙发~