Feature Flag功能开关
一句话:用功能开关控制新功能对哪些用户开放,降低上线风险并支持灰度发布。
它是什么
Feature Flag是把功能发布和代码部署拆开。代码可以先上线,但功能只对内部用户、部分用户或特定客户打开。它常用于灰度测试、A/B实验、紧急回滚和会员功能控制。
适合干什么
- 做SaaS和Web产品的团队
- 需要灰度发布的人
- 经常担心新功能影响全部用户的开发者
- 要区分免费和付费功能的产品
不适合干什么
- 非常简单且没有用户分层的小Demo
- 没有任何配置管理能力的项目
- 不愿意维护开关生命周期的团队
普通人怎么用
- 确定要控制的功能
- 设计开关名称
- 设置默认关闭
- 先对内部账号开放
- 验证稳定后逐步扩大范围
进阶用户怎么用
- 按用户、组织、套餐、地区设置开关
- 把功能开关和A/B测试结合
- 配置紧急关闭通道
- 定期清理过期Feature Flag
常见误区
- 开关越来越多但没人清理
- 默认对所有人开放导致失去灰度意义
- 只在前端控制付费功能,后端不校验
- 开关名称混乱看不懂
和相似工具的区别
- Feature Flag vs 环境变量:环境变量偏部署配置,Feature Flag偏业务功能是否对用户开放。
- Feature Flag vs A/B测试:Feature Flag控制开关,A/B测试用于比较不同版本效果。
入门步骤
- 选择一个风险较高的新功能
- 创建功能开关
- 只给测试账号开放
- 观察日志和反馈
- 逐步开放给更多用户
推荐工具(第三方)
LaunchDarkly、PostHog、Statsig、Unleash、Supabase