什么是 Feature Flags 及其应用场景
Feature flags 是种软件开发技术,旨在运行时控制功能模块(Feature)的发布与回滚。通过 If/else 或更复杂的决策树声明,解耦 Feature 的部署与发布,解耦大版本发布为多个 Feature 独立发布,从而实现:
1. 在生产环境下测试
2. 基于 Feature 细粒度的渐进式发布、灰度发布
3. 无需重新部署,基于 Feature的秒级版本回滚
4. 随时部署上线,准备好时再发布
价值:缓解发布压力,降低发布风险,提高交付质量,提前试错时间,加快反馈速度
应用场景举例:
- 生产环境中测试 Feature,缓解发布压力
- Feature 的渐进式发布(金丝雀、灰度)
- 系统移植 - 数据处理架构变更的移植场景
- 系统移植 - 数据库迁移场景
- 使用 Feature flags 管理客户订阅权限
- 多版本管理与持续交付
- 链路灰度
- 基于主干开发