将暂存服务器与生产服务器设置相同的主要目的和意义是什么?

4
在我们公司中,我们有预发布和生产服务器。我试图在最新版本发布后使它们处于1:1的状态。我们有多个主机上运行的Web应用程序和许多实例。
问题是,我主张在预发布和生产服务器上拥有相同的Web应用程序架构(结构),以便轻松测试新功能并避免在新版本中创建新错误。
但并不是每个人都同意我的观点,对他们来说,在预发布应用程序实例之间具有不同的连接并不是一个大问题。甚至可能在预发布服务器上比在生产服务器上拥有更多的应用程序和应用程序之间的连接。
我想问一下这种方法的利弊?我的意思是有一些好的观点可以支持我的观点,或者一些不好的观点为什么我可能是错误的。一些后果的例子等等。
4个回答

7
如果你的测试服务器与生产服务器有很大的差异,那么在测试服务器上成功部署和测试并不能告诉你当你最终部署到生产服务器时是否会出现问题。
我不认为你的同事倾向于混乱的情况有任何真正的优势,以弥补这个明显的劣势。他们声称让测试服务器的配置完全不同于生产服务器的配置有什么好处呢?!

他们抱怨部署一个应用程序会影响其他实例的访问。我的建议是不仅改进暂存环境,还要改进生产环境,并修复暂存结构,使配置1:1。这是可以做到的。成本只是时间,而时间总是太短。 - truthseeker
1
如果你没有时间以正确的方式去做事情(即,如你所建议的),那么你将会更加没有时间去修复由于以草率的方式去做事情(即,如他们所建议的)而导致的灾难。他们的方法是削减不应该被削减的角落,这会产生技术债务,可能会导致你的毁灭,请参见http://martinfowler.com/bliki/TechnicalDebt.html。 - Alex Martelli

5
Staging就像是部署的彩排。如果你没有穿上晚上要穿的服装,你怎么知道它是否合适,或者你不会绊倒在突出的部位上。
更正式地说,您尝试使staging环境尽可能接近生产环境,以最小化可能导致或隐藏部署问题的差异。请注意,我说“尽可能接近”,因为并不总是可能拥有相同型号的磁盘或相同的网络互连,但您可以在可用资源范围内尽量减少这些东西。

4

Martin Fowler最近发表博客,谈到了如何创建相同的环境,并从一个环境切换到另一个环境,使你的测试环境变成生产环境。他说:

自动化部署的一个挑战是切换本身,将软件从最终测试阶段转移到实际生产中。您通常需要快速完成此操作以最小化停机时间。蓝绿部署方法通过确保您拥有尽可能相同的两个生产环境来解决这个问题。任何时候,其中一个环境(例如蓝色)是活动的。当您准备好软件的新版本时,您在绿色环境中进行最终测试。一旦软件在绿色环境中正常运行,您就可以切换路由器,使所有传入请求都发送到绿色环境 - 蓝色环境现在处于闲置状态。

我认为这样的方法是一个很好的替代方案,可以取代目前看起来混乱的环境。祝你成功地说服你的团队!


0
我也会选择“尽可能接近”的方法,就像ptomli建议的那样...这主要是由于成本因素。如果农场包含5个服务器,我永远不会建议暂存只使用一个独立服务器。这有助于涉及网络层的情况。如果有补丁由于任何原因(如安全性)影响网络连接,则单个框架暂存服务器可能无法反映修补程序的“真实影响”。

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