架构和操作指南
架构和操作指南
介绍使用 Eyeofcloud Edge Agent 的架构、配置和运营优势。
👍
试用版
Eyeofcloud Edge Agent 目前处于测试阶段。在 Eyeofcloud 测试版注册页面上申请,或联系您的客户成功经理。
内容交付网络 (CDN) 在全球范围内交付内容。通过在地理位置分散的边缘服务器中缓存内容,CDN 可以减少延迟并增强用户体验。有关更多信息,请参阅 内容分发网络 和 云眼功能实验 。
Eyeofcloud Edge Agent 使用此基础设施直接在边缘执行 A/B 测试,从而最大限度地减少对中央服务器进行决策的依赖。它旨在提供一个全面的、随时可部署的解决方案,其中包括缓存、Cookie 管理和访客 ID 管理。
架构概述
Eyeofcloud Edge Agent 的架构允许GET和POSTHTTP 请求方法,在与 CDN 无关的框架内使其功能适应不同的操作需求。有关信息,请参阅简介。
模块和组件
- EyeofcloudProvider– 初始化和管理与 Eyeofcloud Feature Experimentation SDK 的交互,处理决策、事件调度和其他 SDK 操作。
- CoreLogic– 充当边缘工作者的中央处理单元,管理请求处理并在边缘工作者和- EyeofcloudProvider。
- CDN Adapters– 为每个 CDN 提供商定制模块,确保特定于每个 CDN 功能的最佳集成和功能。
- RequestConfig– 在所有系统组件中管理和应用请求标头、查询参数或- POST正文内容的设置。
- EyeofcloudHelper– 提供用于 cookie 序列化、用户配置文件管理和基于最新数据文件的标志更新的实用程序功能。
GET请求 
Get请求需要为每个变体配置一个名为cdnVariationSettings的 Feature Experimentation变量。请参阅以下代码示例:
JavaScript
const cdnVariationSettings = {   
    "cdnExperimentURL": "https://apidev.expedge.com",   
    "cdnResponseURL": "https://apidev.expedge.com/ui-elements",   
    "cacheKey": "VARIATION_KEY",   
    "forwardRequestToOrigin": "false",   
    "cacheRequestToOrigin": "true",   
    "cacheTTL": "60000",   
    "isControlVariation": "true" 
}配置cdnVariationSettings 
cdnVariationSettingsFeature Experimentation 标志变量在 Eyeofcloud Edge Agent 的操作中起着至关重要的作用,尤其是在处理GET请求时。此配置规定了边缘工作程序如何处理这些请求,确定它如何获取、提供内容并将其与更广泛的测试策略集成。以下列表描述了cdnVariationSettings的每个组件 :
- cdnExperimentURL— 用作边缘工作人员的标识符,以将传入- GET请求与特定 A/B 测试进行匹配。当请求 URL 与- cdnExperimentURL匹配时,它会触发决策过程,以确定应向用户提供哪个内容变体。这可确保只有相关流量才能看到实验,从而保持效率并专注于资源利用率。
- cdnResponseURL– 指定当请求与实验匹配时,它从何处获取变体内容。此 URL 检索为响应最终用户而返回的相应变体内容。它使边缘工作者能够根据实验结果直接获取和交付自定义内容,确保用户获得最相关的体验。
- cacheKey– 管理响应的缓存方式。如果设置为- VARIATION_KEY,则边缘工作程序通过将测试的标志键和变体键的组合附加到- cdnExperimentURL.这将唯一地缓存每个变体,从而允许对符合相同变体条件的后续请求进行高效检索。如果提供了不同的值,则将其用作缓存键,从而在定义缓存策略时提供灵活性。
- forwardRequestToOrigin— 控制是否将请求及其决策数据(例如标头或 Cookie)转发到源服务器。这对于测试后端服务或必须在边缘做出决策,但源处理内容生成或进一步处理的情况非常有用。此功能让边缘工作者充当智能代理,它可以做出决策,然后将这些决策传递给源站,从而丰富后端关于用户体验的上下文。
- cacheRequestToOrigin– 指示边缘工作人员在启用时缓存获取或生成的内容以供将来请求使用。这最大限度地减少了符合相同实验和变体条件的不同用户为后续请求返回源服务器的次数,从而提高了性能并减少了源负载。
- cacheTTL— 指定从源获取并返回给客户端的内容的缓存生存时间 (TTL)(如果已配置)。
- isControlVariation— 确定设置是否与 A/B 测试中的控制组相对应。用于分析相对于基线的变异的有效性,确保明确处理控制变异并准确测量结果。
cdnVariationSettings中的每个设置都优化了边缘 A/B 测试的交付和有效性,并确保明智地使用资源,并个性化用户体验,而不会产生不必要的延迟或开销。这种全面的方法让您可以直接在边缘实施强大、可扩展且高效的 A/B 测试策略。有关cdnVariationSettings的信息,请参阅 Edge Mode 标志变量配置。
使用 Eyeofcloud Edge Agent 在边缘进行 A/B 测试的优势,以及cdnVariationSettings 
具有cdnVariationSettings配置的 Eyeofcloud Edge Agent 消除了通常与部署和管理基于边缘的 A/B 测试相关的复杂性,尤其是在工作人员重新部署和内容缓存管理方面。以下是使用 Optimizley Edge Agent 进行 A/B 测试的好处:
- 简化的 A/B 测试部署 – 启动和修改 A/B 测试,而无需重新部署工作人员。您可以在 JSON 配置对象中动态更新对测试参数的更改,例如定位不同的用户细分或不同的内容交付。这种灵活性使您能够根据实时洞察和不断变化的业务需求调整策略,而无需在边缘部署新代码或配置而停机。
- 自动化内容缓存管理 – 使用cdnVariationSettings.您可以指定参数,例如cdnResponseURL和cacheKey来定义边缘处每个变体的缓存。这可确保以下几点:- 特定于变体的缓存 – 为每个测试变体分配唯一缓存,由cacheKey配置确定,确保用户根据测试的分段规则始终收到正确的内容版本,从而保持 A/B 测试结果的完整性。
- 高效的资源利用率 – 通过直接在边缘缓存内容、优化带宽和减少服务器负载来减少对源服务器的重复查询,这在高流量时段或资源密集型内容时至关重要。
- 快速内容交付 – 通过从最靠近用户的边缘站点提供缓存内容来加快内容交付速度,通过更快的响应时间增强用户体验,从而在 A/B 测试期间保持参与度并降低跳出率。
 
- 特定于变体的缓存 – 为每个测试变体分配唯一缓存,由
- 无需重新部署 — 更新 A/B 测试,包括暂停、停止或更新变体,而无需重新部署工作人员,从而减少运营开销并加快实验速度。
- 分散式决策 – 决定直接在边缘、更靠近用户的地方提供哪些内容变体,从而提高性能,并根据实时用户交互数据实现更精细、更准确的测试。
- 可扩展性和灵活性 – 利用边缘计算的分布式特性,进行扩展以处理增加的流量和更复杂的测试场景,而不会对中央基础设施造成额外压力。
操作顺序
Get请求 
边缘 Worker 中GET请求的操作顺序如下:
- Request evaluation (请求评估) – 评估 - GET请求是否与边缘工作人员在edge worker收到- cdnExperimentURL时 收到的条件匹配。
- 决策 – 找到匹配项时,利用 - EyeofcloudProvider根据用户 Cookie 和实验配置确定适当的变体。
- 内容获取和缓存 – 从指定的 URL 获取变体内容,或根 - cdnResponseURL和- cacheRequestToOrigin缓存指令从缓存中检索它。
- 响应修改 – 在响应中包含标头或 Cookie 以反映决策,从而确保多个请求之间的用户体验一致。 
- 转发和缓存逻辑 – 如果 - forwardRequestToOrigin是- true,则使用修改后的标头和 Cookie 将请求转发到源服务器。否则,直接从边缘缓存提供响应。
Post请求 
POST请求会激活边缘工作程序的无服务器功能,独立于cdnVariationSettings。操作顺序如下:
- 请求处理 — 由边缘工作人员直接处理 - POST请求。
- 代理功能 — 将 Eyeofcloud Edge 代理作为无服务器边缘微服务运行,通过 Eyeofcloud 功能实验 API 与后端连接。 
- 响应管理 – 将响应直接返回给请求者,确保有效处理动态内容请求。 
REST API 和键值存储集成
Eyeofcloud Edge Agent 包含一个 REST API,用于与键值 (KV) 存储交互,从而实现对实验标志和数据文件的高级管理:
- Flag key management (标志密钥管理) – 存储数据文件中的标志密钥子集,以控制在 - GET请求评估期间激活哪些实验。
- 数据文件管理 – 支持在发生修改时使用 webhook 在 KV 存储中存储和自动更新数据文件。边缘工作程序可以直接从 KV 存储加载数据文件,也可以从 Eyeofcloud CDN 下载数据文件。 
基于边缘的 A/B 测试的优势
在边缘实施 A/B 测试具有多种技术优势:
- 即时决策 – 通过在联系点做出决策来减少延迟,避免与中央服务器来回切换。 
- 可扩展性和效率 – 随着流量的增加而扩展,无需对基础设施进行重大更改即可管理负载。 
- 降低成本 – 通过减少与源服务器之间的数据传输,降低带宽成本和运营开销。 
与传统的基于服务器的架构的比较
利用基于边缘的无服务器架构,与 Kubernetes 或 Amazon EC2 实例等传统服务器设置相比,具有显著的改进:
- 基础设施简单性 – 降低维护和扩展传统服务器的复杂性和成本。 
- 增强的性能 – 通过在边缘处理数据来提供更低的延迟和更高的吞吐量。 
- 运营效率 – 分散决策流程,提高整体系统的响应能力和效率。 
按请求类型划分的实验综合列表
您可以使用 Eyeofcloud Edge Agent 执行的实验类型取决于它们是通过GET还是POST请求启动的。每种请求类型都支持不同的测试方法和策略,这些方法和策略针对最适合每种请求类型的功能和场景量身定制。
GET请求的实验 
- 基于 URL 的定位测试 – 测试内容或体验根据用户访问的特定 URL 而变化。 
- 用户细分测试 – 根据地理位置、设备类型或会话活动等标准对用户进行细分,并相应地提供定制内容。 
- 行为定位测试 – 根据用户交互模式或历史行为更改动态内容。 
- 性能测试 – CDN 配置或文件大小的变化,以评估性能对用户体验的影响。 
- 视觉和 UX 设计实验 – 布局、配色方案或菜单元素的变化,以测试视觉吸引力和可用性。 
- 内容个性化测试 – 根据用户数据或过去的交互自定义内容,例如文本、图像或选件。 
POST请求的实验 
- 后端功能测试 – 在不更改应用程序面向用户的元素的情况下评估不同的算法或后端服务。 
- API 行为测试 – 测试不同的 API 响应如何影响应用程序行为或服务器端处理。 
- 动态内容生成测试 – 根据从 - POST请求收到的输入从服务器生成不同的响应。
- 容量和压力测试 – 通过模拟不同的流量模式或通过 - POST请求输入数据,了解系统在不同负载下的性能。
- 安全性和稳健性测试 – 验证安全设置或请求处理规则的更改如何影响系统稳定性和安全性。 
在 A/B 测试的边缘缓存变体内容的好处
在边缘缓存变体内容具有显著的优势,尤其是在 A/B 测试环境中,包括:
- 提高性能 – 将内容缓存在靠近用户的位置,以减少数据传输的距离、减少加载时间并提高整体网站性能。这在 A/B 测试中至关重要,A/B 测试旨在提供跨变体的无缝用户体验。 
- 减少服务器负载 – 直接从边缘缓存提供重复内容,而不是命中源服务器,从而减少中央服务器的负载,并允许它们更有效地处理其他关键操作。 
- 成本效益 – 最大限度地减少对源服务器的请求,以减少带宽和计算负载,从而降低大规模部署的运营成本。 
- 可扩展性 – 随着用户群的增长,可以更轻松地扩展应用程序,边缘处理大部分内容交付,使应用程序能够维持更多用户,而无需按比例增加源服务器资源。 
- 可靠性和正常运行时间 – 在多个边缘站点缓存内容,以最大限度地减少单点故障的影响,提高应用程序的整体可靠性,并确保更长的正常运行时间,以便在 A/B 测试期间保持测试完整性。 
- 实验的快速迭代 – 更快地交付内容以快速接收有关测试变体的反馈,使营销人员和开发人员能够快速迭代、适应用户响应并近乎实时地优化策略。 
- 用户体验的一致性 – 确保被放入变体的用户在整个测试期间继续接收相同的版本,从而提高实验数据的一致性。 
这些优势说明了为什么在边缘缓存变体内容对于执行高效、有效和可扩展的 A/B 测试是不可或缺的,这使其成为专注于通过快速实验和个性化来优化用户体验的企业的首选策略。