后端团队的功能开关 (feature flag) 发布最佳实践
功能开关本应让发布更安全,但我见过它们演变成了一个没人真正负责的第二套配置系统。简单之处在于添加"如果启用则运行新路径"的代码。困难之处在于要记住,现在两条路径都需要进行测试、监控、记录文档,并最终删除。 有一次发布改变了我对功能开关的看法,那是一个基于百分比发布的功能,涉及计费变更。代码在审查时看起来没问题。我们有开关、紧急停止机制,以及从内部用户到 5%,再到 25% 的发布计划。但我们没有明确的指标来决定何时停止发布。错误率太笼统。收入事件有延迟。支持工单很嘈杂。当我们注意到发票总额出现微小差异时,该开关已经影响了足够多的用户,回滚不仅仅是拨动开关那么简单。我们仍然必须协调来自新路径的数据。 从那以后,我只在团队写下枯燥细节的情况下才喜欢使用功能开关。谁负责该开关,哪个仪表板证明它运行正常,每条路径写入什么数据,如果开关在请求过程中发生变化会怎样,以及该开关应该在什么日期被移除。我…