Feature Flags
Deploy
DevOps
Releases
Experimentação
CI/CD

功能标志:安全发布完整指南

功能标志:安全发布完整指南

功能标志将部署与发布分开。代码投入生产,但功能在准备就绪之前处于关闭状态。本指南介绍了[功能标志0的实施、管理和用例。

什么是功能标志

定义

在运行时打开或关闭功能的设置。

同义词

功能切换、功能开关、功能门。

目的

无需重新部署即可控制用户所看到的内容。

为什么使用功能标志

安全部署

代码正在生产中,功能已关闭。风险较小。

逐步推出

1%→10%→50%→100%。监视步骤之间。

终止开关

发现问题了吗?立即关闭。

实验

原生 A/B 测试。比较变体。

基于主干的开发

每个人都致力于主要。隐藏不完整的功能。

标志类型

释放标志

暂时的。隐藏功能直至准备就绪。

实验标志

A/B 测试。比较变体。

行动标志

控制操作行为。断路器。

权限标志

按层划分的功能。高级版与免费版。

终止开关

紧急情况。立即关闭。

基本实现

旗帜服务

返回标志状态的中央服务。

SDK

咨询服务的应用程序中的库。

缓存

避免每个请求出现延迟。

后备

服务不可用时的行为。

架构

简单

配置文件或环境变量。

集中化

竭诚服务。管理仪表板。

分布式

本地缓存,异步同步。

标记评估

布尔值

打开或关闭。

多变量

多种变体。 A、B、C。

定位

按用户、细分、百分比。

上下文

基于运行时的属性。

旗帜管理

命名约定

图案清晰。 feature_xyz_enabled。

文档

该标志的作用是什么、谁创建了它、何时删除它。

所有权

负责每面旗帜。

###生命周期

创建→使用→删除。不要积累死标志。

工具

启动黑暗

市场领导者。稳健、进取。

分裂.io

功能交付平台。

###释放

开源。自托管。

旗匠

具有云选项的开源。

配置猫

简单易用。

统计

综合实验。

推出策略

推出百分比

获得功能的用户百分比。

用户定位

特定用户(beta 测试人员)。

细分目标

按属性:计划、区域、版本。

基于时间

在特定日期/时间激活。

最佳实践

临时标志

完成推出后删除。不要让它累积。

安全默认值

如果标志失败,则安全行为。

带标志的测试

测试两种状态:开和关。

监控

按船旗国划分的指标。

审核日志

谁改变了、什么时候改变了、什么改变了。

移动中的标志

注意事项

应用程序需要时间来更新。基本的远程标志。

离线缓存

以最后已知状态离线工作。

同步

后台同步更新。

风险与注意事项

标记债务

许多旗帜堆积起来。令人困惑的代码。

爆炸性组合

许多标志=许多可能的状态。

依赖关系

标志 A 取决于标志 B。复杂性。

性能

许多评估都会影响延迟。

##清理

何时删除

功能 100% 推出 → 删除标志。

流程

  1. 标记为已弃用 2.删除条件代码 3.删除服务标志

自动化

旧标志警报。强行拆除。

标志和测试

单元测试

测试两条路径。

集成测试

标志打开和关闭。

端到端

具有不同状态的场景。

标志和 CI/CD

部署!= 发布

部署放置代码。标志控制激活。

管道

生产环境中默认关闭标志。

自动化

功能分支→合并→标记→逐步推出。

结论

功能标志是现代软件的重要工具。它们将部署与发布分开,允许安全部署并支持实验。严格执行,积极管理并在不再需要时删除标记。

##常见问题解答

1) 功能标志会影响性能吗? 至少要充分实施。缓存有帮助。

2) 我需要付费工具吗? 首先,不。就规模而言,工具有很大帮助。

3) 多少个标志太多? 这取决于产品的尺寸。几十个是正常的,几百个就令人担忧了。

4) 如何避免旗帜债务? 去除过程。旧标志警报。

5) 标志可以在移动设备上使用吗? 是的。具有离线缓存功能的特定 SDK。

另请阅读

  • [在生产中实施功能标记和逐步推出1
  • [功能标志:工具以及在公司采用之前要考虑的事项2
  • [初创公司的功能标志:值得投资的工具3
  • [带有模块联盟的微前端:实用指南4
  • [现代 CI/CD:自信部署的艺术5
  • [应用中的AB测试-企业完整指南6