暂存/AB测试承载Javascript的CDN

暂存/AB测试承载Javascript的CDN,javascript,testing,cdn,staging,Javascript,Testing,Cdn,Staging,让我们假设我有一个javascript文件,我已经分发给了我的很多客户机,类似于GA的*GA.js,这个文件的加载次数足够高,我必须将其托管在CDN上 我在这个设置中遇到的问题是,它使“准备”新版本的javascript变得非常困难。理想情况下,当我有一个新版本的JS时,我希望将传入的流量拆分到CDN,并将整个流量的1%发送到新的JS(随机选择),或者可能只将新的JS发送到特定的URL 我已经多次遇到这个问题,并没有找到一个好的解决方案。一个可能的解决方案是使用CDN,尽管这是一个漫长的过程。另

让我们假设我有一个javascript文件,我已经分发给了我的很多客户机,类似于GA的*GA.js,这个文件的加载次数足够高,我必须将其托管在CDN上

我在这个设置中遇到的问题是,它使“准备”新版本的javascript变得非常困难。理想情况下,当我有一个新版本的JS时,我希望将传入的流量拆分到CDN,并将整个流量的1%发送到新的JS(随机选择),或者可能只将新的JS发送到特定的URL

我已经多次遇到这个问题,并没有找到一个好的解决方案。一个可能的解决方案是使用CDN,尽管这是一个漫长的过程。另一种解决方案是让客户始终加载引导程序javascript,它知道实际JS或分段JS的位置,并相应地分割流量


我很好奇人们是否提出了其他解决方案。这对于任何发布JS(如Google、Twitter、Facebook、Linkedin等)的公司来说都是一个常见的问题。

因为大多数CDN服务都依赖于您在域中添加新的CNAME记录以指向CDN主机名。您可以使用DNS在不同的CDN服务之间分割流量

  • -大致均匀地分割交通
  • -允许根据用户位置设置到特定主机的映射

  • 我认为您最好的选择是引导程序Javascript,因为它允许您从您的终端维护控制。这肯定是可能的,但我们DNS缓存上的TTL相当大,因此准备登台设置需要很长时间。此外,依赖DNS传播将是一个令人头痛的问题。最后,使用循环法获得99%/1%的拆分需要DNS文件中的100个条目,这可能会变得很麻烦:)