如何在A / Btesting模式下部署Web应用程序

我正在寻找有关如何部署Web应用程序的想法,并将一定比例的用户无缝地抽取到新应用程序,同时仍然将其余用户发送到旧应用程序。 我正在寻找的是类似于谷歌,例如,推出了对Gmail的变化 – 并不是所有的用户立即得到新的版本; 相反,用户群开始很小,然后慢慢增长。

任何想法都表示赞赏。 我有我自己的一些想法,但不想不恰当地影响回应。

您可以根据用户的某些特性(如guid)计算分区cookie pt。 例如,可以将guid转换为整数,然后计算mod N,其中N是服务器的数量,然后将该值设置为pt cookie。 在负载平衡器级别,分析分区pt cookie并将其指向适当的服务器。 许多负载平衡器 (如Zeus ZXTM)允许在负载平衡器脚本中实现这种types的智能路由。

另外,你可以在你的代码库中build立A / B拆分function,而不是在负载均衡器上进行。

那么,有很多方法可以回答这个问题… 99.9%的问题很大程度上取决于您的Web应用程序。 有http负载均衡器可以执行不相等的负载,例如,可以将一个服务器上的负载的5%放在一个服务器上,而其余的95%放在正常的服务器上……负载均衡器可以跟踪会话所以有限的用户将不断得到一个特定的服务器…但这不是谷歌如何运作。

你所寻找的不仅仅是一个负载平衡的问题,而是账户pipe理。 Google为升级用户所做的只是升级后台的数据(如果需要),然后将与新升级的帐户关联的用户帐户调整为新的应用程序。 这与将一个全新的function与用户帐户相关联,然后删除另一个function(除了“function”可能是“gmail version 1”和“gmail version 2”)不同。 authentication服务器负责将用户“redirect”到其框架内的适当应用程序。 他们干的很干净。 他们在后端有脚本,使整个过程非常无缝。 (即安装应用程序版本2 …两个帐户并行运行,然后删除应用程序版本1)