先确定出错后怎么办
设想一个企业报表产品要上线“自动生成经营摘要”。页面已经完成,测试环境也能返回结果,交付前还需要回答三个问题:哪些客户先看到,出现错误由谁停用,停用后原来的工作能否继续。把这三个决定写清楚,才容易安排一次有人负责的发布。
小团队可以把发布范围和代码部署分别安排。新功能上线前,就把退出路径做出来,随后根据观察到的问题调整启用范围。这样每一步都有明确的检查对象。
用一个业务流程安排灰度
以报表摘要为例,可以先限定给测试租户,再邀请一个明确同意试用的客户。展示摘要时保留原始指标和普通导出入口,生成失败也不能阻断用户查看报表。这里的灰度单位最好与协作方式一致:同一客户的运营和管理者看见相同版本,排查问题时才能对齐上下文。
OpenFeature 的评估上下文文档允许把对象标识与其他属性用于开关判断。具体项目可以据此设计租户标识和版本记录,同时减少不必要的个人信息。把邮箱、合同内容一起送入开关服务,并不会天然改善发布判断。
开关只负责启用策略。请求进入后端后仍要独立验证权限,不能把“按钮隐藏了”当成访问控制。OWASP 授权指南明确要求逐次请求验证权限。这一点在企业产品里尤其值得单独测试。
验收要包含关闭的那一刻
一个可执行的发布清单可以只有五项:
- 写明首批试用对象、功能负责人和观察截止时间。
- 用同一批样例记录旧流程耗时、摘要错误和人工修改情况。
- 演练配置服务不可用时的默认行为。
- 关闭开关,确认已开始的任务、重试任务和导出入口仍能妥善处理。
- 达到预先约定的验收条件后扩大范围,同时安排移除临时分支。
观察指标应围绕用户任务。摘要生成成功,却把统计周期解释错了,仍然属于交付失败;请求很快返回,但运营每次都要重新核对,也未必节省了时间。小样本阶段可以逐条审阅,不必急着把结果包装成提升百分比。
还要区分停用与恢复:关闭新功能通常只能阻止后续使用,已经写入的错误数据仍需补偿处理。若新版会修改数据结构,应该提前验证旧版本能否读取,并准备独立的数据修复方案。
对独立交付者而言,一份包含试用范围、停止条件和恢复步骤的发布记录,能让客户看见风险如何被管理。演示时也可以现场关闭功能,再走完一次旧流程;这比口头保证“出了问题能回滚”更容易检验。