我希望有一个平台将Beta功能推广到我的网站用户的一小部分。我不确定最佳做法是什么做这个和寻找您的建议。构建一个Beta站点以镜像生产站点
选项1:我考虑的第一个选项是创建一个非生产环境,它将镜像实时应用程序。然后,我可以向用户提供一个新的测试版DNS,以便他们可以采样最新功能。这种方法的缺点是可维护性和可靠性。生产环境中的数据需要刷新到Beta数据库,以确保用户体验与生产一致。由于此Beta环境将处于非生产性基础架构中,因此会因连续构建而更容易中断等。
选项2:将其他服务器部署到生产环境,使用测试版子域指导用户到现场。过时的数据没有问题,因为它可能指向与现有生产环境相同的来源。缺点是发布到现场制作环境的频率会较低,以保持应用程序的稳定性和可靠性,并且这是为生产支持团队维护的额外节点。
选项3:将Beta功能部署为主代码分支的一部分,并在代码中具有逻辑以显示某些用户的Beta功能。这种方法需要在稳定代码中实现Beta变更,释放次数较少,并且可以在不影响现有代码库稳定性的情况下测试更改类型,从而减少灵活性。
过去的经验对我应该如何进行的任何建议?
谢谢
谢谢。我对Option 2的另一个担忧是,如果我使用相同的数据库作为实时应用程序,那么我将缺乏大规模实验的灵活性。为了支持这些大型的变化,我需要为Beta站点创建一个新的数据库来实现分离,以防止活动站点的任何污染。支持这种额外配置的开销几乎将我推向选项1,正如你所提到的那样将会潜在地不稳定 – cduggan
是的,我建议将beta用户的数据迁移到beta数据库并从生产数据库中删除它们,但是当测试版服务器失败并且测试版用户故障转移到生产数据库时,情况就会出错。我所能想到的只是向beta数据库添加触发器,以便在它接收到更新时还会更新生产数据库,以便故障转移无缝。 –
我们对AWS项目所做的更改均为附加更改,因此生产服务器仍可以毫无问题地查询Beta数据库。 –