云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

香港带宽_服务器不_促销

小七 141 0

使用Cloudflare Workers增强优化的实验平台

这是Optimizely的高级产品经理Whelan Boyd和Cloudflare的产品营销经理Remy Guercio联合发布的工人。实验是推动业务增长的重要因素:无论您是在迭代产品还是测试新消息,在野外进行严格的实验收集到的数据和见解是无法替代的。Optimizely是世界领先的实验平台,全世界有成千上万的客户每天为超过1.4亿的访问者运行测试。如果优化的话,它将是美国第三大流量网站。当需要尝试重振他们自己的平台时,优化地选择了Cloudflare工人。改善Cloudflare Workers的性能和灵活性Cloudflare Workers是一个全球分布的无服务器计算平台,运行在Cloudflare全球180个地点的网络中。worker的设计具有灵活性,有许多不同的用例,从定制Cloudflare服务和特性的配置到构建完整、独立的应用程序。在这篇文章中,我们将关注如何使用工人来提高性能和提高更复杂应用程序的灵活性。Workers的一个关键好处是,它允许开发人员将决策逻辑和数据移动到一个高效的运行时中,在接近最终用户的情况下运行,从而带来显著的性能优势和灵活性。这就给我们带来了优化…每周优化工作如何优化提供数十亿的经验,以帮助A/B团队测试新产品、降低新功能发布的风险,并验证替代设计。优化客户端布局和功能更改,如客户端测试卷展。让我们将从Optimizely的客户端A/B测试或Optimizely Web开始,探讨如何让员工克服这两种挑战,产品。使用案例:Optimizely Web——Optimizely的客户端测试框架——的主要好处是,它通过在网页上直接插入一个JavaScript标签来支持A/B测试。测试是通过优化的所见即所得编辑器设计的,并且在几分钟内就可以运行。常见的用例包括样式更新、图像交换、标题和其他文本更改。您还可以编写任何自定义JavaScript或CSS。在客户端A/B测试中,浏览器下载JavaScript,在加载时修改页面。为了避免"非样式内容的闪现"(FOUC),开发人员需要在他们的标记中同步实现这个JavaScript。不过,这种限制可能会导致页面性能问题,尤其是在连接速度较慢和设备速度较慢的情况下。在浏览器中下载和执行JavaScript是有成本的,如果JavaScript量很大,这个成本就会增加。对于普通的Optimizely Web实现,所有的实验都包含在加载到每个页面上的JavaScript中。传统的Optimizely与Workers一起实现,Optimizely可以支持许多相同的用例,但会将关键逻辑提升到边缘,以避免太多的性能成本。事情是这样的作品:实施测试对于Optimizely和Cloudflare Workers,此图显示Optimizely客户如何通过Cloudflare Worker执行点击式UI中创建的实验。处理HTTP/S请求的工作线程调用Optimizely的工作线程,而不是下载大型JavaScript文件。Optimizely的工作线程确定该页上哪些A/B测试应处于活动状态,并将少量JavaScript返回给工作线程。事实上,它是在特定页面负载上执行A/B测试变体所需的JavaScript。您的工作人员在页面中内联代码并将其返回到访问者的浏览器。这不仅避免了下载大量数据的浏览器瓶颈,而且要执行的代码量只是普通客户端实现的一小部分。由于实验与任何其他Web实验一样都是在Optimizely界面中设置的,所以您可以根据需要运行任意多个实验,而无需等待代码部署周期。更好的是,您的非技术(例如市场营销)团队仍然可以运行这些测试,而无需依赖开发人员进行每个测试。这是一次性的实施。使用案例:Optimizely Full Stack是Optimizely的服务器端实验和功能标记平台,用于网站、移动应用程序、聊天机器人、API、智能设备和任何其他具有网络连接的设备。您可以部署代码隐藏功能标志,试验A/B测试,并立即推出或回滚功能。Optimizely Rollouts是完整堆栈的免费版本,支持关键功能的展开功能。全栈SDK通常直接在应用程序中实现和实例化密码。安优化的全栈实验设置高速服务器端测试的主要障碍是实验和特性的推出必须经过代码部署周期—而且为了进一步增加头痛,许多站点在CDN上缓存内容,所以在原点运行的实验或卷展栏永远不会执行。在本例中,我们将考虑一个您希望逐步推出的新特性,在代码部署之间的一段时间内暴露出越来越多的用户。对于Workers,您可以通过在边缘运行优化JavaScript SDK来实现特性卷展。工人实际上是一个决策服务者。不要在每个应用程序服务中安装JS-SDK,在这些应用程序服务中,您可能需要选择或推出特性,而是将实例化集中在工人。来自您的应用程序,只需点击Worker,响应就会告诉您是否为该特定用户启用了某个功能。在下面的示例中,我们通过查询参数提供一个userId、feature和特定于帐户的SDK密钥,Worker在result中用它的决策进行响应。下面是一个Cloudflare示例工人:导入{createManager}来自"../index"//////addEventListener('fetch',(event:any)=>{事件响应(手柄请求(事件请求))})/***获取并记录请求*@param{Request}请求*/异步函数handleRequest(request:request):Promise{const url=新url(请求.url)常量键=url.searchParams.get("键")const用户标识=url.searchParams.get('userId')常量特征=url.searchParams.get("特征")如果(!特色| |!钥匙| |!用户ID){throw new Error('必须提供"feature"、"userId"和"key"')}试试看{const manager=创建管理器({钥匙,})等待经理。onReady().catch(错误=>{返回新响应(JSON.stringify({status:'错误'}))})常量客户端=管理器.getClient()const result=等待客户端.feature({关键:功能,用户名,})返回新响应(JSON.stringify(结果)}接球(e){返回新响应(JSON.stringify({status:'错误'}))}}这种设置在React应用程序中很常见,它可以根据Worker返回的决策更新存储值。不需要强制请求一直返回到起源。全部总共,使用Workers作为集中的决策服务可以降低整个堆栈实现的复杂性,并支持依赖于缓存。如何为了改进您的实验设置,上面的两个例子演示了worker如何为实验和特性标记提供速度和灵活性。但这只是冰山一角!还有很多其他方法可以将这两种技术结合使用。我们很乐意听到你的消息,一起探索它们!您是一个开发人员,正在寻找功能标记或服务器端测试解决方案吗?Optimizely Rollows产品是免费的,您可以注册!或者你的营销团队需要高性能的a/B测试解决方案吗?优化的Web用例在developer中预览。Cloudflare企业客户:联系专门的Cloudflare客户经理了解更多信息并启动过程。优化客户和Cloudflare客户(不在企业计划中):联系您的Optimizely联系人以了解更多信息并启动过程。你可以注册在这里了解有关使用Cloudflare Workers的更多信息!