编程

什么是 Feature Flags 及其应用场景

407 2023-02-15 02:46:15

Feature flags是种软件开发技术,旨在运行时控制功能模块(Feature)的发布与回滚。通过If/else或更复杂的决策树声明,解耦Feature的部署与发布,解耦大版本发布为多个Feature独立发布,从而实现:

1. 在生产环境下测试
2. 基于Feature细粒度的渐进式发布、灰度发布
3. 无需重新部署,基于Feature的秒级版本回滚
4. 随时部署上线,准备好时再发布

价值:缓解发布压力,降低发布风险,提高交付质量,提前试错时间,加快反馈速度

应用场景举例:

  • 生产环境中测试Feature,缓解发布压力
  • Feature的渐进式发布(金丝雀、灰度)
  • 系统移植 - 数据处理架构变更的移植场景
  • 系统移植 - 数据库迁移场景
  • 使用Feature flags管理客户订阅权限
  • 多版本管理与持续交付
  • 链路灰度
  • 基于主干开发