暂存/AB测试CDN托管Javascript

6
假设我有一个JavaScript文件,类似于GA的*ga.js,并且我已经将其分发给了许多客户。由于该文件被加载的次数足够多,我必须将其托管在CDN上。
这种设置的问题在于,它使得“分阶段”新版本的JavaScript变得非常困难。理想情况下,当我拥有新版本的JS时,我希望将流量分配到CDN中,并将整个流量的1%(随机选择)发送到新的JS,或者仅将新的JS发送到特定的URL。
我遇到过这个问题多次,但没有找到好的解决方案。一种可能的解决方案是与CDN合作,但这是一个漫长的过程。另一种替代方案是让客户始终加载引导程序JavaScript,该JavaScript知道实际JS或分段JS的位置,并相应地分割流量。
我很想知道人们是否想出了其他替代方案。这对于像Google、Twitter、Facebook、LinkedIn等分发其JS的任何公司来说都是一个普遍的问题。

我认为你最好的选择是引导程序JavaScript,因为它允许你从你的端点保持控制。 - Scott A
1个回答

1

由于大多数CDN服务都依赖于您添加新的CNAME记录到您的域名,以指向CDN主机名。您可以使用DNS将流量分配给不同的CDN服务。

  1. 轮询DNS - 均匀地分割流量
  2. 地理负载平衡 - 允许根据用户位置设置到特定主机的映射。

可能是一种选择,但我们DNS缓存的TTL相当大,因此准备分段设置需要很长时间。此外,依赖DNS传播会很麻烦。最后,使用轮询获取99%/ 1%的分配需要在DNS文件中添加100个条目,这可能会变得难以控制 :) - daniyalzade

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接