IBM Cloud Docs
针对细分市场的特征标志

针对细分市场的特征标志

作为应用程序所有者,创建和管理功能标志,将其添加到集合,并使用 SDK 在应用程序中使用这些标志。 您还可以通过在运行时启用或禁用功能部件来控制该功能部件的适用性。

您可以使用 ServiceNow 集成为通过 App Configuration 环境启动的任何配置更改添加核准流程流。 核准过程流适用于 App Configuration 环境,例如 dev,stage 和 production。 有关更多信息,请参阅 管理工作流程

可以对所有集合用户,特定用户和设备集合或特定用户和设备集合的特定百分比启用或禁用功能部件。

可通过定义开始和结束的时间和日期来协调功能的推出。 此外,还可以选择启用或禁用已定义功能的具体日期。

默认情况下,功能标志页面显示在 App Configuration 服务实例的当前环境中创建的功能标志列表,以及记录的详细信息,如名称 、类型 、上次更新 、上次评估目标细分。 标志类型分类为 Boolean,Numeric 或 String。

  • Boolean 标志有两个值,您可以将缺省值设置为 "true" 或 "false"。
  • 字符串 类型标志支持文本格式的数据以及 JSON 或 YAML 文件。
  • 数字 标志支持整数。

地物标志列表
地物标志列表*地物
列表

观看并学习

视频文字记录

什么是功能标志?

在开始播放视频之前:在这段视频中,解说员会在展板上画出一些代表图像来解释概念。 [Draw(绘制])用于表示叙述者绘制表象的时间。 [写作]用于表示叙述者写下一些文字。

如果可以在不部署的情况下向不同用户组发布功能,会怎样? 是否有办法在生产中有效地测试功能,并在需要时立即将其回滚?

我将通过讨论功能标志(有时也称为功能切换或开关)来回答这些问题。

功能标志是包含功能代码的条件,允许您随意打开或关闭它们。 好吧,我们来举个例子。 [绘制]假设我们有一家冰淇淋店加盟店,希望扩展到一个新的城市,我们想在网站上展示一个 我们想在网站上展示一个[绘图]横幅。 我们称之为“开放式横幅”。 我们只想向在新冰淇淋店附近[画图]的用户显示这个横幅,我们可以通过使用特征标志来实现这一点。

使用特征标志有几个好处。 第一,我们可以在不部署的情况下打开或关闭这些[设备]。 [写作]二是我们可以直接在生产中进行测试。 [写作]第三,我们可以根据不同的属性对用户进行细分。

好的,有几种方法可以做到这一点,一种方法是使用 JSON 文件或配置映射中的属性。 不过,还有一种更好的方法,那就是使用功能标志服务。

[写作]使用功能标志服务有几个好处。 第一,你可以为你的功能(不好意思,是你的功能标志)设置一个基本的管理位置。 [写法]二是你可以在未来的应用程序或网页中打开或关闭这些功能,而无需修改属性。 [写作]第三,你可以获得审计和使用数据。 使用 JSON 文件更难获取审计和使用数据。

好了,现在让我们回到我们的示例,我们已经有了开放横幅功能,现在让我们用一些功能标志代码来包装它。

下面是一个示例,有点像伪代码,如果启用了商店开放功能,就可以使用这个示例。

[写入]if (storeopen is Enabled()){ 然后我们要显示打开横幅 [Writing]show Open Banner();}

因此,这个伪代码代表了我们的功能代码和可能包含它的标志。

现在,让我们把它实际投入生产,"[绘制]让它向一些用户展示。

因此,现在我们的功能已经投入生产,但现在还不能对任何用户使用,这是一个典型的显示功能标志的想法,称为黑暗启动。 黑暗启动是指一项功能已投入生产,但任何或所有用户或任何或部分用户(不好意思)都看不到。

现在,我们要介绍一下“[写作]分段”的概念。

所以,我们已经说过,我们只希望一定数量的人,也就是我们新店附近的人,能看到这个视频。 这将是我们的分段 A,而分段就是与之绑定属性的用户或用户组。

因此,第一个选项可能包含“[写作 "]当前位置和["写作]”邮政编码。

属性 "允许当前在该位置或已指定住在附近的用户查看该功能,但在此之前,我们想在自己的员工身上测试一下该功能。 [写作] So we would have segment Bof our testers because we want them to be our employees the attribute might be [写作] email ID.

现在,我们可以通过 {Draw] 打开这个切换开关,在生产中有效地测试我们的功能。 因此,现在我们的测试人员开启了这项功能,也许是出了什么问题,所以我们要把它关掉,修复它,然后我们再为 B 段开启它。

一旦我们确认一切正常,就可以开始工作了。 然后,我们就可以为我们的[绘图]段 A 打开这个功能。

现在,所有这一切都无需部署,因为我们的功能已经投入生产。 我们所做的只是让某些用户看到或看不到它。

一旦投入生产。 [绘制]我们实际上可以在此基础上增加一些自动化功能

但有了功能标志,我们就可以添加时间元素。 比方说,我们只想在[写作的]三周内看到这个内容、

新店盛大开张前两周,盛大开张后一周。 三周后,这部分用户将被打开,然后自动关闭或不可见。

好了,现在我们已经非常擅长使用功能标记了,所以我们的“[绘制]功能标记”有可能开始堆积起来,我们可能有几个应用程序和几个网站,它们都有几种不同类型的功能标记。

因此,我们这里可能有[写作]应用程序一、[写作]应用程序二,还有一个[写作]网页。

有了功能标记服务,我们实际上就可以将这些功能标记归类到集合中,这样我们就可以更有条理地确定哪些功能标记与哪些应用程序和网页相关联。

因此,今天我们已经了解了如何在不直接在生产环境中进行部署测试的情况下打开或关闭功能标志,然后根据用户属性对这些功能进行细分。

感谢您的收看。 如果您有任何问题,请在下方给我们留言。 如果您希望今后看到更多类似视频,请点赞和订阅。 别忘了,您可以通过IBM CloudLabs,基于浏览器的免费交互式 kubernetes 实验室)提高技能并获得徽章。

创建功能标志

要创建特征标志,请完成以下步骤:

  1. 在 App Configuration 控制台中,单击 功能标志

  2. 选择 当前环境 以显示该环境中的功能标志列表。

  3. 单击创建。 这样会打开侧面板,其中包含用于创建新功能标志的字段。

    创建地物标志
    创建新的地物
    *

  4. 提供功能标志详细信息:

    • Name-功能部件标志的名称。
    • 功能部件标志标识-根据输入的功能部件名称自动建议功能部件标志标识值。 如果需要,您可以修改相同。 使用 功能部件标志标识 值作为 SDK 或 API 代码中的标识。
    • 标志类型-指定功能部件标志的类型。 支持的类型包括 :Boolean,String 和 Numeric。 有关标志类型和缺省值的更多信息,请参阅 选择功能部件标志类型
    • 缺省值-指定所选功能部件标志类型的缺省值。 有关标志类型和缺省值的更多信息,请参阅 选择功能部件标志类型
    • (可选) 立即选择用于应用功能标志的集合。 否则,您需要先添加集合,然后再切换功能标志。 您可以通过在 跨集合的标志可用性 列表中进行选择,将功能标志添加到一个或多个集合。
    • 功能部件转出-使用滑块指定 Rollout percentage。 有关百分比转出的更多信息,请参阅 配置功能转出百分比
    • 描述-添加功能部件标志的描述,这是可选的。
    • (可选) 定义可帮助您识别功能标志的 标记
  5. 单击创建

缺省情况下,创建新功能部件标志时,已启用 切换开关设置为 OFF

选择功能标志类型

您可以具有与功能部件标志关联的下列其中一种标志类型:

  • 布尔值
  • 字符串
  • 数值

每种标志类型都具有缺省值。

  • 当您将切换开关设置为 ON时,需要 已启用的值 的值,在以段为目标时可以覆盖该值。
  • 将切换开关设置为 OFF时,已禁用值 的值是必需的,在以段为目标时可以覆盖该值。

布尔值

选择 标志类型 作为 布尔值时,将显示 缺省值 详细信息:

地物标志类型 - 布尔型*{: caption="型地物标志类型 - 布尔型地物标志类型 -" caption-side="bottom"}型

  1. 从列表中选择启用值。 缺省情况下,当切换开关针对功能标志设置为 ON 时,将返回此值。 该值可在定位到分段时重写。

  2. 从列表中选择禁用值。 当切换开关设置为功能标志的 OFF 时,缺省情况下会返回此值。

字符串

选择 标志类型 作为 字符串时,将显示 缺省值 详细信息:

特征标志类型 - 字符串*{: caption="特征标志类型 - 字符串特征标志类型 - 字符串*特征标志类型 -" caption-side="bottom"}

  1. 从列表中选择字符串标志类型的 格式。 支持的格式为“文本”,"JSON" 和 "YAML"。 选择 JSON 或 YAML 格式时,请提供所选格式的 已启用值已禁用值

  2. 指定启用值。 缺省情况下,当为功能标志将切换开关设置为 ON 时,将返回此值。 该值可在定位到分段时重写。

  3. 指定禁用值。 当切换开关设置为功能标志的 OFF 时,缺省情况下会返回此值。

数值

选择 标志类型 作为 数字时,将显示 缺省值 详细信息:

特征标志类型 - 数值*{: caption="特征标志类型 -" caption-side="bottom"}

  1. 从列表中选择启用值。 只支持整数值。 缺省情况下,当为功能标志将切换开关设置为 ON 时,将返回此值。 该值可在定位到分段时重写。

  2. 从列表中选择禁用值。 只支持整数值。 当切换开关设置为功能标志的 OFF 时,缺省情况下会返回此值。

目标集合到功能部件标志

(可选) 立即选择用于应用功能标志的集合。 否则,您需要先添加集合,然后再切换功能标志。 您可以在创建功能部件标志期间或在编辑功能部件标志详细信息期间向一个或多个集合添加功能部件标志。

要将集合添加到功能标志,对于 跨集合的标志可用性 字段,请从列表中选择集合。

如果尝试将未链接到集合的功能标志作为目标,那么将显示一个窗口以向集合添加功能标志。

配置功能转出百分比

您可以使用 0 到 100 范围内的转出百分比来配置功能标志,以表示该功能部件对部分用户或设备集的适用性。

百分比转出有助于为一小部分随机用户或实体子集启用功能,从而提供对发布周期的更多控制,并实现渐进交付。 当您对要推广的功能有信心时,请按预期增加一段时间内的百分比。

百分比转出使用散列算法,该算法根据规则集生成散列。 SDK 使用此散列为该用户生成百分比值。 将为该用户生成的百分比值与为百分比转出值设置的值进行比较,确定该用户是否有资格接收该功能部件。

例如,散列具有从 1 到 100,000 的分区。 分配功能标志时,散列会将 1 中的值分配给每个分区中的用户 100,000。 例如,当您将 25% 分配给功能部件标志时,App Configuration SDK 会将该功能部件交付到从 1 到 25,000 的散列分区。 如果将接收该功能部件的用户百分比从 25% 更改为 50%,那么会将分区 25,001 添加到已接收该功能部件的分区集。

可用于轻量套餐和企业套餐的百分比推广功能。

以下是一些百分比转出方案:

  • 如果功能标志已禁用,那么 SDK 将返回缺省 已禁用值
  • 如果在没有任何分段规则的情况下启用了功能标志,并且未设置百分比转出,那么 SDK 将返回缺省 已启用值
  • 如果在不使用任何分段规则的情况下启用了功能标志,并且百分比转出设置为 0%,那么 SDK 将针对所有用户返回 已禁用值
  • 如果在没有任何分段规则的情况下启用了功能标志,并且百分比转出设置为百分比 (例如 50%),那么 SDK 会检查用户是否属于配置的百分比转出大小,如果用户属于转出条件,那么 SDK 会返回 已启用值。 如果用户不属于转出条件,那么 SDK 将返回 已禁用值
  • 如果使用分段规则启用了功能标志,那么 SDK 首先会根据配置的规则对用户进行求值。 如果用户是已配置规则的一部分,那么 SDK 将评估用户是否有资格进行百分比转出。
    • 如果配置了多个规则,并且在第一个匹配之前会检查用户是否存在规则匹配。 如果找不到匹配项,那么 SDK 将根据缺省转出进行求值。
    • 如果用户被评估为细分市场的一部分,并且细分市场百分比转出为 0%,那么即使用户是细分市场的一部分,用户也不会收到细分市场值。 SDK 返回缺省 已禁用值
    • 如果用户被评估为段的一部分,并且段百分比转出设置为百分比 (例如 50%),那么 SDK 会检查用户是否属于已配置的转出大小,如果用户属于转出条件,那么 SDK 会返回段覆盖值。 如果用户不属于转出条件,那么 SDK 将返回 已禁用值

以表方式查看

百分比推广方案
功能部件标志 是否已配置目标? 转出百分比
已配置段的用户
部分

百分比转出
条件的用户
部分
SDK 返回了值
已禁用 不适用 任何% 转出集 不适用 不适用 禁用的值
已启用 0% 不适用 禁用的值
已启用 0% 禁用的值
已启用 0% 禁用的值
已启用 介于 0% 到 100% 之间 不适用 启用的值
已启用 介于 0% 到 100% 之间 不适用 禁用的值
已启用 Betweeen 0% 到 100% 覆盖值
已启用 Betweeen 0% 到 100% 禁用的值
已启用 介于 0% 到 100% 之间 启用的值
已启用 介于 0% 到 100% 之间 禁用的值
已启用 高出 不适用 启用的值
已启用 高出 覆盖值
已启用 高出 启用的值

以具有功能标志的分段为目标

您可以向一个或多个目标网段推出功能标志。 如果需要,可以为不同的分段设置不同的标志值。

  1. 从 App Configuration 控制台,转至 功能标志。 此窗格显示 App Configuration 服务实例的当前环境中可用的功能标志列表。

  2. 单击所需功能部件标志行中的 添加目标 以显示 目标标志到段 侧面板。

    目标标志至区段
    目标特征标志至
    *

  3. 功能部件转出 显示创建功能部件标志时定义的缺省 转出百分比 滑块。 如果需要,请修改转出百分比值。

  4. 规则 部分中,通过指定以下内容来定义规则:

    • 转出百分比中,可以将值定义为 覆盖从缺省值继承。 如果选择了 覆盖 选项,请使用滑块指定 转出百分比 覆盖值。
    • 从列表中选择片段。 如果没有可用于目标的客户细分,请单击 创建客户细分。 有关创建客户细分的更多信息,请参阅 创建客户细分
    • 对于 已启用值,您可以选择 覆盖 并修改值或选择 从标志继承
    • 点击保存规则

    您可以通过单击 添加规则来定义更多规则。

  5. 单击 添加目标

如果尝试将未链接到集合的功能标志作为目标,那么将显示一个窗口以向集合添加功能标志。

启用功能标志

将功能部件标志指向细分市场后,单击切换开关 (ON/OFF) 以启用或禁用功能部件标志。

功能部件标志-溢出菜单

每个功能部件标志 (三个垂直点) 的溢出菜单由 编辑复制删除 操作以及已成为目标的那些功能部件标志的 除去目标 组成。

功能标志的溢出菜单
功能标志的溢出菜单* 功能
的溢出菜单

  • 选择 编辑 选项时,可以更改 名称描述,添加或删除 标记,更改 标志类型缺省值,并为 跨集合的标志可用性 字段信息添加或除去集合。
  • 选择 复制 选项时,将复制功能部件标志信息,您需要修改功能部件标志的 名称。 (可选) 根据您的需要修改其他详细信息。
  • 选择 删除 选项时,将显示确认窗口以寻求确认以删除所选功能标志。 删除选项将永久删除该功能标志,并且无法撤销该操作。
  • 在功能部件标志列表中,在功能部件标志中,单击 复制到剪贴板 图标时,功能部件标志的 功能部件标志标识 值将复制到剪贴板。
  • 除去目标 将功能部件标志的目标指向段。