功能管理概述

功能管理是一种软件开发实践,它将功能发布与代码部署分离开来,可以按需快速更改功能的可用性。 它采用一种称为 功能标志 的技术,动态管理功能生命周期,允许你开启或关闭功能,针对特定用户定位,或逐步推出功能,而无需重新部署应用。

关键功能

Azure 应用程序配置 Feature Management 支持三种主要的功能标志使用场景,基于你想要实现的目标:切换部署实验。 每个场景对应一个共同的功能管理目标,并解锁一套不同的功能,从简单的开关切换到有针对性百分比的推广,再到多变量实验。 在这三种场景中,你可以监控和分析功能标志的影响,以了解功能对应用指标的影响。 在深入了解各个筛选器、条件或变体的详细信息之前,请参考以下各节,选择与您的目标相匹配的场景。

开关(开/关)

Azure门户的截图,显示了创建功能标志功能——切换选项的基础标签页。

使用时间: 你需要一个简单、即时的开关控制,适用于所有用户。

功能:

  • 即时终止开关 - 在不重新部署代码的情况下,在几秒钟内禁用行为不当的功能或依赖项
  • 操作切换 - 按需打开或关闭短期状态,例如维护模式

例如,一个团队在名为 EnableNewCheckout 的 Switch 旗帜后面发布了一个新的结账算法。 如果错误率在启动后激增,值班工程师会关闭该标志,每个用户立即回到之前的检查流程,无需重新部署代码。 同样类型的标志也很好地作为操作开关,比如维护 模式 标志,运营团队在数据库迁移前开启,迁移完成后关闭。

了解详细信息:

推出

Azure 门户的屏幕截图,显示“创建功能标志”功能中“Rollout”选项的“受众”选项卡。

使用时间: 你希望逐步向一定比例的用户,或特定用户和群体展示某个功能,然后再让它普遍可用。

功能:

  • 基于百分比的逐步发布 - 仅对一小部分流量开放某项功能,并随着时间推移逐步提高流量占比(金丝雀发布或分阶段发布),以降低风险
  • 目标访问 - 仅针对特定用户、组或自定义属性(例如区域、设备类型或订阅层)启用功能
  • 基于计划的激活 - 在定义的时间范围内自动打开或关闭功能
  • 配置推出 - 在标志内提供配置,以便应用可以在标志推出时调整其行为,而无需进行新的部署。

例如,一个团队在推出新的 EnableNewCheckout 标记时,可能会先将默认比例设为 5%,再通过组覆盖将其内部 QA 和 Beta 测试组的覆盖比例设为 100%,并排除遗留账户。 接下来的几天里,他们会将默认百分比提高到25%,然后是50%,再到100%,同时观察错误指标。 他们可能还会添加一个排程,让该功能在维护窗口后自动关闭。

配置推出让你不再局限于布尔值:例如,你可以将 {"theme":"dark"} 附加到 EnableNewCheckout 标志,这样你的应用仅会在将该标志评估为已启用时采用新主题。 这种配置不同于通用的应用配置键值,后者不与任何标志的评估状态绑定。

了解详细信息:

实验

Azure门户的截图,显示了创建功能标志功能——实验选项的分配标签页。

使用时间: 你需要比较多个版本或 变体,衡量哪个表现最好。

功能:

  • A/B 测试 - 将特征的两个或两个以上的变体相互比较
  • 跨变体的流量分配 - 控制向每个变体公开的用户百分比

例如,一个正在测试结账页面两个版本的团队创建了一个变体功能标记,包含 ControlNewDesign 两个变体,并将一半用户分配给每个变体。

了解详细信息:

监测和分析影响

Azure门户的截图,显示了遥测标签页,包含总评估事件图表和指标评分卡。

使用时间: 你需要看到你的特征标志是如何被评估的,并了解它们的变体是否会影响对你应用重要的指标。

功能:

  • 收集和查看功能开关事件 - 捕获由应用发出的功能开关评估事件,并在 Azure 应用程序配置 门户的“遥测”选项卡中直接查看评估次数、唯一用户数以及变体分布或分配原因分布。
  • 使用指标记分卡(预览版)分析影响 - 自动分析应用程序发送到 Application Insights 的标准和自定义遥测数据,并显示哪些指标显示变体之间的统计显著差异,而无需编写自定义查询。

例如,继续进行结账页面实验时,每次功能标志评估都会发出一个遥测事件,团队会查看 Azure 应用程序配置 门户中的“遥测”选项卡,以确认 ControlNewDesign 之间的流量划分是否按预期运行。 他们在同一标签页打开指标评分卡,发现该 NewDesign 变体在自定义 PurchaseCompleted 指标上显示出统计学上显著的改善,且页面加载时间没有显著回归。 记分卡上的 “受影响 ”和 “未决 ”分组让队伍一目了然地确认了结果。 他们仍然可以深入应用洞察,进行更深入的分析,比如将评估事件与完成的购买联系起来。

了解详细信息:

后续步骤

要有效使用功能标志,你需要将应用中使用的所有特征标志外部化,这样你可以在不修改和重新部署应用的情况下更改它们的状态。 Azure 应用程序配置 提供了一个集中式的功能标志仓库:用它定义 Switch、Rollout 和 Experiment 标志,快速且自信地管理它们的状态,然后利用你的编程语言或框架的 App Configuration 库在运行时为应用添加功能标志评估。

从快速入门开始

要将功能标志评估添加到你的应用中,请继续参阅适用于你的应用所用语言或平台的快速入门指南。

创建和管理功能标志

  • 创建功能标志:在 Azure 门户中创建和管理 Switch、Rollout 和 Experiment 功能标志。

深入了解推广和实验功能

客户端库与SDK。

Azure 应用程序配置 为多种语言和平台提供功能管理库。 每个库都包含 NuGet、npm、PyPI 或 Maven 的软件包和样本。 有关支持库的完整列表及其发布说明,请参见 功能管理概览