移动应用 · 综合

灰度放量与功能开关

一句话: 先发给一小部分人,观察指标,再扩大——并且保留在不发版本的情况下关掉某个功能的能力。

为什么在移动端尤其关键

服务端可以在几分钟内回滚。应用里,已发布的版本就在用户手上,而一个修复要经过审核和分发时间。能远程关掉某个功能的开关,是唯一能立即生效的安全网。

怎么做才对

从百分之几开始,等到足以看到真实数据,再扩大。事先定好停止阈值:崩溃激增、流程完成率下降、网络错误暴涨。

开关需要一个在服务端无响应时的安全默认值——一个因为配置服务不可用而卡住的应用,只是用一个问题换了另一个问题。

卫生

开关是临时的。给每个开关定一个到期日并清理。一个有一百个旧开关的系统会变得不可预测,而且没人知道用户设备上真正跑的是哪种组合。

深入一层

把每个开关绑到一个有度量的实验上,而不只是开和关:谁在实验组、指标是什么、什么时候做决定。否则「灰度放量」就只剩下一个停止机制,而不是一种了解「什么真正有效」的方法。