构建Beta站点以镜像生产站点

时间:2013-04-15 16:42:47

标签: java architecture beta

我想要一个平台,将Beta功能推广到我的网站用户的一小部分。我不确定这样做的最佳做法是什么,并寻找你的建议。

选项1:我考虑的第一个选项是创建一个非生产环境,它将镜像实时应用程序。然后,我可以为用户提供新的测试版DNS,以便他们可以采样最新功能。这种方法的缺点是可维护性和可靠性。生产环境中的数据需要刷新到Beta数据库,以确保用户体验与生产一致。由于此Beta环境将位于非prod基础架构中,因此可能会因连续构建等而更容易中断。

选项2:将其他服务器部署到生产环境,使用beta子域将用户引导至该网站。这里没有问题陈旧数据,因为它可能指向与现有生产环境相同的来源。缺点是,为了保持应用程序的稳定性和可靠性,向实时生产环境的发布将不那么频繁,并且它是为生产支持团队维护的额外节点。

选项3:将Beta功能部署为主代码分支的一部分,并在代码中包含逻辑,以显示特定用户的Beta功能。这种方法要求在稳定代码中实现Beta更改,发布频率较低,并且可以在不影响现有代码库稳定性的情况下测试更改类型的灵活性。

过去有关我应如何进行的经验的任何建议?

由于

1 个答案:

答案 0 :(得分:1)

使用选项2)。您希望尽可能地将beta代码与生产代码隔离开来,这样一来,如果最糟糕的情况发生,并且beta代码会崩溃服务器,那么beta用户就会故障转移到生产服务器。

1)如果你的beta环境太不稳定,那么用户根本就不会使用它。 3)你冒着污染生产代码的风险。

我对这种事情的大多数经验都来自于亚马逊AWS,其中获取新的“服务器”就像获得新的EC2实例一样简单。我假设您设置新服务器的成本并不高。