编程

什么是 Feature Flags 及其应用场景

780 2023-02-15 02:46:15

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

1. 在生产环境下测试
2. 基于 Feature 细粒度的渐进式发布、灰度发布
3. 无需重新部署,基于 Feature的秒级版本回滚
4. 随时部署上线,准备好时再发布
价值:缓解发布压力,降低发布风险,提高交付质量,提前试错时间,加快反馈速度

应用场景举例:

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