有一个标准的暂存环境定义吗?

21
据我所知,一个合法的暂存服务器的目的是为了测试部署过程,而不是你的代码接受或功能。然而,我几乎从未遇到过有人分享这种理解,最常见的替代方案是将暂存服务器视为UAT服务器。通过谷歌搜索得到的答案,我发现暂存服务器被定义为:
  • UAT服务器
  • QA服务器
  • 集成服务器
  • 内容服务器
我发现的可能是最糟糕的定义是在维基百科上,由于那里内容的短暂性和读者可能去修复维基百科,使我提供的任何链接都变成反例而不是我所说的例子,因此我在这里引用一下。
在网站设计中,暂存站点是一个用于汇集、测试和审查新版本的网站,以便在将其转移到生产环境之前进行。此阶段遵循开发阶段。软件生命周期的暂存阶段通常在模拟生产环境使用的硬件上进行测试。暂存站点通常与开发站点不同,并提供与开发或生产环境分离的QA区域。

通常,在将更新后的软件部署到生产环境之前,会在暂存环境中对更新进行测试。暂存服务器将类似于客户端可以进行用户验收测试活动的生产环境。应该在Live服务器,即生产环境上部署系统之前通过暂存服务器/站点上的测试。

实际上,我所理解的正确使用术语的唯一例子是在StackOverflow上。例如,这个问题的主要答案,和这个答案

我希望向我的同事演示(对于那些了解的人来说),staging与UAT和QA等不同。是否有一些经典的定义,例如在第一次定义该术语的书籍中?显然,我找到的所有这些次要来源似乎都反映了常见的用法,但我认为常见的用法大多是由更感兴趣于抛弃流行词汇而不是精确使用单词的人塑造的。


1
好问题,+1。我可以问一下,你对暂存环境的理解是从哪里得来的,为什么你不在这里指出它呢?是什么让你相信你的理解是正确的? - Madbreaks
1
我的理解来自于多个方面,包括我提到的 Stack Overflow 上的答案、常见理解之间的冲突、这个术语在其他常见理解中是多余的事实,以及(在我看来)最好的部署方式是有多台服务器并将其中一些从池中取出升级,然后交换其中的内容。这样可以使从旧版转换为新版瞬间完成,并且没有停机时间。这些服务器一定有一个名称,而“staging”非常合适,并解释了粗心的讲话者如何误用所描述的词语。 - iconoclast
此外,需要有一个测试部署过程的地方,而唯一100%可靠的测试是在生产服务器上进行(您应该始终拥有不止一个!)。 - iconoclast
1个回答

13

关于持续交付的书籍已成为该主题的事实上的权威文本。它与您对分阶段理解的一致。

分阶段环境是一个完全相同于生产环境的测试环境 (第110页)

他们确实指的是部署过程的测试,因为书中有一个图10.1,其中分阶段环境位于QA和客户签名之后,运营签名之前。


谢谢。你提到的图表支持了共同理解,但是引用似乎并没有,因为有人可能会对UAT甚至QA说同样的话。你有更明确的引用吗?或者你能包含这个图表吗? - iconoclast
这本书有很多句子暗示了你所说的,但我没有找到比图表更明确的东西。它是受版权保护的材料,所以我不确定我能否在这里复制它。不过这是一本值得购买的书。 - ottodidakt

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