4

在我们公司,我们有登台和生产服务器。在最新版本之后,我试图让它们处于 1:1 状态。我们已经在多个主机和它的许多实例上运行了 Web 应用程序。

问题是我提倡在登台和生产服务器上使用相同的 Web 应用程序架构(结构),以便轻松测试新功能并避免在新版本中产生新错误。

但不是每个人都同意我的观点,对他们来说,在暂存应用程序实例之间建立不同的连接并不是什么大不了的事。甚至可能在登台上比在生产服务器上拥有更多的应用程序和应用程序之间的连接。

我想问一下这种方法的利弊?我的意思是一些好的观点同意我,或者一些不好的为什么我可能没有权利。后果的一些例子等等。

4

4 回答 4

7

如果您的登台服务器与您的生产服务器有很大不同,那么在登台服务器上成功部署和测试并不能告诉您当您最终部署到生产服务器时世界是否会崩溃。

我认为你的同事偏爱的混乱局面没有任何真正的优势来弥补这一明显的劣势。他们声称通过让登台服务器的配置与生产服务器的配置完全不同步可以获得什么......?!

于 2010-03-06T07:05:52.050 回答
5

分期就像部署的彩排。如果你没有穿你晚上穿的那套服装,你怎么知道它会合身,或者你不会被晃来晃去的地方绊倒。

更正式地说,您尝试使暂存环境尽可能接近生产环境,以最大程度地减少可能导致或隐藏部署中问题的差异。请注意,我说“尽可能接近”,因为并非总是可以拥有相同型号的磁盘或相同的网络互连,但您可以尝试在可用资源范围内尽量减少这些事情。

于 2010-03-06T07:06:47.380 回答
4

Martin Fowler最近在博客中谈到拥有可以从一个环境切换到另一个环境的相同环境,因此您的登台环境在测试后成为您的生产环境。他说:

自动化部署的挑战之一是切换本身,将软件从测试的最后阶段带到现场生产。您通常需要快速执行此操作以最大程度地减少停机时间。蓝绿部署方法通过确保您拥有两个尽可能相同的生产环境来做到这一点。在任何时候,其中一个,例如蓝色,是实时的。当您准备软件的新版本时,您将在绿色环境中进行最后阶段的测试。一旦软件在绿色环境中运行,您切换路由器,以便所有传入请求都进入绿色环境 - 蓝色的现在空闲。

我认为这样的方法将是您今天看似混乱的环境的一个很好的替代方案。祝你好运说服你的团队!

于 2010-03-11T21:35:51.543 回答
0

正如 ptomli 建议的那样,我也会采用“尽可能接近”的方法......这主要是由于成本因素。如果它是一个包含 5 台服务器的场,我绝不会建议暂存仅为 1 台独立服务器。这也有助于涉及网络层的场景。如果存在由于任何原因(如安全性!)而影响网络连接的补丁程序,单台登台服务器可能无法反映补丁程序的“实际影响”。

于 2010-03-06T07:13:47.710 回答