You need to enable JavaScript to run this app.
导航
典型应用场景
最近更新时间:2023.06.09 16:02:40首次发布时间:2023.06.09 16:02:40

Feature Flag有着丰富的使用场景,为研发、运营、运维、QA等各个角色提供针对性解决方案。

一. 缓解上线发布风险

新功能发版可逐步灰度扩量,先让小部分用户体验新功能,观察用户反馈和数据表现,再初步扩量,潜藏问题及时发现快速止损。

  • 蓝绿发布:对于有两个相同的生产环境中的软件发布方式(优点是易于故障转移,并且避免发布停机),FeautreFlag提供了较大版本中的单个功能有问题,则无需回滚所有功能的能力,针对特定用户,可以将内部QA/测试人员,外部Beta测试人员或用户群的特定细分受众群暴露给新的Feature。

  • 金丝雀发布:许多组织要同时测试/使用Canary版本,属于程序包级别的工作,因此需要FeatureFlag来打开/关闭每个部分的功能。

  • 渐进式交付:灵活的发布排期管理+关键操作审核+发布回滚,为降低新功能爆炸半径的风险提供了基础,Feature flag将FeatureFlag与运营和客户数据配对,实时监控新代码的推出。

  • 生产测试:在生产中直接测试代码是验证Feature正常工作的最可靠方法之一,Feature flag允许直接在生产环境中圈选一小部分用户执行功能QA和性能测试,从而提供了一种安全有效的扩展方式,如果出现问题,错误跟踪和性能监控的数据会提醒用户注意对应功能,可以立即关闭任何Flag而无需回滚代码。

  • Beta测试:通常由产品经理或工程师运行,试图验证新功能的性能,可用性和功能参数,是软件发布生命周期中的关键阶段,使开发团队有机会运行受控的用户测试。通常在进行QA和内部测试人员的Alpha测试之前。

典型场景1 AB实验安全快捷全量

典型场景2 新功能灰度发版降低风险

二. 减少开发周期
  • 持续交付:采用基于主干的开发流程(确保共享分支始终可释放的唯一方法是将未完成的功能隐藏在默认关闭的Flag后面,通过关闭该标志并随时将其部署到主服务器上来构建新功能,防止新功能完成之前发生合并冲突 ),减少部署和发布的代码量,加快部署并降低发布风险。

  • 暗启动:一种在其中部署新功能而不将其暴露给用户的上线策略,准备就绪后再打开,Feature Flag可简化暗启动功能的过程。将代码包装在Flag中,保持Flag关闭,释放新功能。

  • 微服务改造:跨服务的大型特性更改通常存在依赖性,利用FeatureFlag来打开和关闭功能,可以使传统架构向微服务架构下的过渡安全且受控。

典型场景 多feature并行持续开发提升迭代效率


三. 精细化运营
  • 功能个性化:可根据不同人群特点展示不同的功能,比如安卓用户推荐QQ登录,iOS用户推荐微信登录,提升不同人群的个性化体验

  • 差异化运营:运营活动时,可针对不同地域、人群采用差异化的运营策略,实现细分人群的精细化运营

  • 定制化发布:Feature Flag支持按公共属性、用户分群、画像分群、事件流圈人等多种圈人群方式,并支持用户自定义人群受众,满足业务定制化的定向发布需求。


典型场景 千人千面精细化运营