核心概念
核心概念
以下主题介绍功能实验的重要核心概念。
云眼灰度发布(特性标帜)AB实验 SDK 提供了一个通用接口,用于在整个应用程序和服务中运行实验。由于开发者可能有许多团队在堆栈的不同部分运行具有不同要求的实验,因此我们设计了功能实验以实现最大程度的自定义。可以使用 项目、环境、标帜、数据文件 和 客户端 来使功能实验 SDK 适应开发工作流。
灰度发布(特性标帜)
灰度发布(特性标帜)不仅仅是用于公开功能的简单开/关切换。可以添加远程配置变量来标记 变体,并在灰度发布(特性标帜)之上构建 A/B 测试。可以使用 Decide 方法访问 SDK 中特定用户的标帜决策的所有信息,包括标帜的开/关状态、变量值、变体键以及标帜是否调度决策事件以触发实验结果中的展示等。
标帜规则
标帜规则是启用和运行标帜投放和实验的方式。
标帜规则 | 描述 |
---|---|
定向交付 | 将标帜交付给与特定受众相匹配的访客。可以向一定比例的一般用户群(或特定受众)推出标帜,或者在遇到错误时回滚。详细了解举报配送。 |
A/B 测试 | 测试标帜的多个变体以找到最佳变体。详细了解 A/B 测试。 |
多臂老虎机优化 | 使用机器学习将流量动态分配给效果最佳的变体。了解有关通过多臂老虎机优化最大化提升力的更多信息。 |
项目
通过功能实验项目,可以将每个团队或应用程序隔离在其自己的单独共享工作区中。项目是团队构建实验、管理灰度发布(特性标帜)、定义目标受众等的地方。每个项目都有自己的一组权限。
项目与应用程序堆栈具有多对多关系。可以使用许多不同的项目来管理单个应用程序的不同部分,也可以使用单个项目来管理网站后端和移动应用程序中的全渠道实验。
由于帐户已包含一个项目,因此创建另一个项目是可选步骤。
环境
无论是否使用正式部署环境,在显示对生产网站的更改之前,使用 云眼 中的环境在内部开发和验证实验。每个项目可以有一个或多个环境。
例如,在 云眼 中同时设置暂存环境和生产环境是很常见的。你通常会在暂存中开发和 QA 实验,并在准备就绪时部署到生产环境。可以为谁可以在其中每个环境中进行更改设置不同的权限。
数据文件 (云眼配置)
项目中的每个环境都有一个相应的 云眼Config,它被序列化为数据文件。此文件以 JSON 格式捕获所有实验的配置数据,例如灰度发布(特性标帜)和事件跟踪。在项目中进行更改时,每个环境的数据文件都会使用新配置自动更新。通过同步此数据文件的本地副本,SDK 可以运行实验,而无需阻止对外部 API 的网络请求,从而确保接近零延迟。
数据文件更改也会上传到 云眼 内容交付网络 (CDN),此过程通常需要几分钟。
📘 注意
云眼何时实际从 CDN 获取更新的数据文件取决于特定的 SDK 和版本、同步方法和本地缓存副本版本。
云眼为您在帐户上配置的每个环境生成不同变体的数据文件。这允许在一个环境中切换灰度发布(特性标帜),同时在另一个环境中保持暂停。您无需复制代码、云眼 项目或项目中的实验。
客户端
客户端是使用特定数据文件和其他配置设置运行的 云眼 SDK 实例。若要使用 SDK,请获取相应的数据文件,然后使用它实例化客户端。此客户端公开了激活实验、跟踪事件和执行其他任务所需的所有方法。
Android 和 Swift SDK(也称为_移动 SDK_)提供了客户端管理器的额外抽象。管理器处理同步数据文件并为您生成关联的客户端,以及有关事件调度和在设备上保留用户状态的其他优化。使用管理器是可选的,如果希望完全控制,可以直接实例化客户端。
展示和决策
展示是标帜使用情况的度量单位。云眼灰度发布(特性标帜)AB实验会在 SDK 每次发送决策事件时统计一次展示。有关以下内容的更多信息,请参阅展示次数:
- 什么时候发送展示,什么时候不发送?
- 如何使用展示次数来计算结果页面的数据?
- 对于某些用例,使用哪种方法来生成或不生成展示次数?
我们的支持文章什么是 云眼 中的展示提供了有关展示次数的其他信息,包括 云眼 功能实验与 云眼 Web 实验中展示次数的计数方式之间的差异。
后续步骤
有关核心概念和参考主题的说明,请参阅以下链接: