功能管理是一种软件开发实践,它将功能发布与代码部署分离开来,可以按需快速更改功能的可用性。 它采用一种称为 功能标志 的技术,动态管理功能生命周期,允许你开启或关闭功能,针对特定用户定位,或逐步推出功能,而无需重新部署应用。
关键功能
Azure 应用程序配置 Feature Management 支持三种主要的功能标志使用场景,基于你想要实现的目标:切换、部署和实验。 每个场景对应一个共同的功能管理目标,并解锁一套不同的功能,从简单的开关切换到有针对性百分比的推广,再到多变量实验。 在这三种场景中,你可以监控和分析功能标志的影响,以了解功能对应用指标的影响。 在深入了解各个筛选器、条件或变体的详细信息之前,请参考以下各节,选择与您的目标相匹配的场景。
开关(开/关)
使用时间: 你需要一个简单、即时的开关控制,适用于所有用户。
功能:
- 即时终止开关 - 在不重新部署代码的情况下,在几秒钟内禁用行为不当的功能或依赖项
- 操作切换 - 按需打开或关闭短期状态,例如维护模式
例如,一个团队在名为 EnableNewCheckout 的 Switch 旗帜后面发布了一个新的结账算法。 如果错误率在启动后激增,值班工程师会关闭该标志,每个用户立即回到之前的检查流程,无需重新部署代码。 同样类型的标志也很好地作为操作开关,比如维护 模式 标志,运营团队在数据库迁移前开启,迁移完成后关闭。
了解详细信息:
推出
使用时间: 你希望逐步向一定比例的用户,或特定用户和群体展示某个功能,然后再让它普遍可用。
功能:
- 基于百分比的逐步发布 - 仅对一小部分流量开放某项功能,并随着时间推移逐步提高流量占比(金丝雀发布或分阶段发布),以降低风险
- 目标访问 - 仅针对特定用户、组或自定义属性(例如区域、设备类型或订阅层)启用功能
- 基于计划的激活 - 在定义的时间范围内自动打开或关闭功能
- 配置推出 - 在标志内提供配置,以便应用可以在标志推出时调整其行为,而无需进行新的部署。
例如,一个团队在推出新的 EnableNewCheckout 标记时,可能会先将默认比例设为 5%,再通过组覆盖将其内部 QA 和 Beta 测试组的覆盖比例设为 100%,并排除遗留账户。 接下来的几天里,他们会将默认百分比提高到25%,然后是50%,再到100%,同时观察错误指标。 他们可能还会添加一个排程,让该功能在维护窗口后自动关闭。
配置推出让你不再局限于布尔值:例如,你可以将 {"theme":"dark"} 附加到 EnableNewCheckout 标志,这样你的应用仅会在将该标志评估为已启用时采用新主题。 这种配置不同于通用的应用配置键值,后者不与任何标志的评估状态绑定。
了解详细信息:
实验
使用时间: 你需要比较多个版本或 变体,衡量哪个表现最好。
功能:
- A/B 测试 - 将特征的两个或两个以上的变体相互比较
- 跨变体的流量分配 - 控制向每个变体公开的用户百分比
例如,一个正在测试结账页面两个版本的团队创建了一个变体功能标记,包含 Control 和 NewDesign 两个变体,并将一半用户分配给每个变体。
了解详细信息:
监测和分析影响
使用时间: 你需要看到你的特征标志是如何被评估的,并了解它们的变体是否会影响对你应用重要的指标。
功能:
- 收集和查看功能开关事件 - 捕获由应用发出的功能开关评估事件,并在 Azure 应用程序配置 门户的“遥测”选项卡中直接查看评估次数、唯一用户数以及变体分布或分配原因分布。
- 使用指标记分卡(预览版)分析影响 - 自动分析应用程序发送到 Application Insights 的标准和自定义遥测数据,并显示哪些指标显示变体之间的统计显著差异,而无需编写自定义查询。
例如,继续进行结账页面实验时,每次功能标志评估都会发出一个遥测事件,团队会查看 Azure 应用程序配置 门户中的“遥测”选项卡,以确认 Control 和 NewDesign 之间的流量划分是否按预期运行。 他们在同一标签页打开指标评分卡,发现该 NewDesign 变体在自定义 PurchaseCompleted 指标上显示出统计学上显著的改善,且页面加载时间没有显著回归。 记分卡上的 “受影响 ”和 “未决 ”分组让队伍一目了然地确认了结果。 他们仍然可以深入应用洞察,进行更深入的分析,比如将评估事件与完成的购买联系起来。
了解详细信息:
后续步骤
要有效使用功能标志,你需要将应用中使用的所有特征标志外部化,这样你可以在不修改和重新部署应用的情况下更改它们的状态。 Azure 应用程序配置 提供了一个集中式的功能标志仓库:用它定义 Switch、Rollout 和 Experiment 标志,快速且自信地管理它们的状态,然后利用你的编程语言或框架的 App Configuration 库在运行时为应用添加功能标志评估。
从快速入门开始
要将功能标志评估添加到你的应用中,请继续参阅适用于你的应用所用语言或平台的快速入门指南。
- ASP.NET Core
- Aspire
- .NET/.NET 框架
- .NET 后台服务
- Java Spring
- Python
- JavaScript
- 去吧
- Go Gin
- Azure Kubernetes 服务
- Azure Functions
创建和管理功能标志
- 创建功能标志:在 Azure 门户中创建和管理 Switch、Rollout 和 Experiment 功能标志。
深入了解推广和实验功能
客户端库与SDK。
Azure 应用程序配置 为多种语言和平台提供功能管理库。 每个库都包含 NuGet、npm、PyPI 或 Maven 的软件包和样本。 有关支持库的完整列表及其发布说明,请参见 功能管理概览。