功能开关不只是简单的开关,它把部署和发布解耦,让团队在代码上线后仍能控制功能暴露范围。工程团队常用它做金丝雀发布、A/B 测试、熔断开关、内测和暗发布,核心都是降低生产事故风险。
金丝雀发布:先让 1% 用户尝鲜,出问题立刻关掉开关排查,没问题再逐步放量。对高流量系统尤其有用,小 bug 也可能影响成千上万用户,慢速放量能拿到真实生产信号。
A/B 测试:用开关把流量分到不同版本,让数据决定哪个方案胜出。实验结束删掉失败分支即可。理论简单,但实验跑几个月后容易忘了当初在测什么。
熔断开关:第三方 API 返回垃圾数据、数据库查询锁死、新功能内存泄漏时,值班工程师几秒就能关掉问题功能,不用回滚部署或半夜叫醒发布经理。
内测与抢先体验:给核心用户、内部测试者、Beta 客户提前开放新功能,收集真实反馈。反馈差就只对测试组关闭,反馈好就全量发布。用 Web UI 管理测试组比改配置文件方便得多。
暗发布:新代码在生产环境运行但不展示给用户,结果写入日志或监控系统。适合验证新数据库查询、算法替换、基础设施迁移等高风险后端变更,在提交全量前拿到生产级验证。
功能开关的价值在于把发布风险拆小,让团队在真实流量下逐步验证。想省去自建管理后台的功夫,可以试试 FeatureFlags.app 这类现成工具。
@DevToolboxHub
