暂存环境与生产环境


80

我在一家构建企业应用程序的公司工作,并且维护三个环境:开发(或dev),暂存(或stage)和生产(或prod)。

dev的含义很直观:这是在应用程序开发期间使用的环境。

暂存生产环境之间有什么区别?

Answers:


122

对于较小的公司(尚不清楚您的公司有多大),三个环境(开发,阶段,生产)很常见。大型公司通常会在开发人员和阶段之间拥有质量检查环境。

这些通常细分如下:

dev:工作代码副本。开发人员所做的更改已部署在此处,因此可以测试集成和功能。此环境已快速更新,并且包含该应用程序的最新版本。

qa:(并非所有公司都会有此功能)。质量保证环境;这提供了应用程序的更改频率较低的版本,测试人员可以对其进行检查。这样就可以报告通用修订版本,以便开发人员知道测试人员发现的特定问题是否已在开发代码中得到纠正。

阶段:这是候选版本,并且此环境通常是生产环境的镜像。暂存区域包含应用程序的“下一个”版本,用于最终压力测试以及上线之前的客户/经理批准。

生产:这是应用程序的当前发布版本,客户端/最终用户可以访问。此版本最好不要更改,除非在计划的发行期间。


7
就软件而言,这是正确的。还有数据:dev和qa连接到测试数据库,因此开发人员和测试人员在暂存和生产使用生产数据库时不必担心引入更改。想想一家银行。
胡安·拉努斯

4
还有另一个方面:用户是谁?dev:开发人员;qa(我更喜欢qc):测试人员;分期和生产:实际用户。在具有均值数据库的业务应用程序中,不允许开发人员看到更不用说接触生产数据库的数据库,它们带有匿名版本。
胡安·拉努斯

3
@JuanLanus:通常,登台环境将使用生产数据的副本 -您通常不想从登台更改生产数据。
sleske 2014年

1
@JuanLanus:抱歉,我的意思是“您不希望在暂存环境中的编辑在产品环境中可见”-因此暂存使用生产数据的副本,但(通常)使用可编辑的副本。
sleske 2014年

2
我们称质量检查为“测试”:开发人员(我),测试(团队),阶段(客户),产品(世界)
Rudie 2014年

13

我并不感到惊讶,因为还没有测试环境,因为没有代码可以升级到暂存位置。

要回答这个问题:

舞台环境应尽可能接近生产环境。

它用于验证部署过程-确保代码在生产就绪时就可以部署而不会引起问题。

也就是说,代码进入了阶段-经过全面测试和回归,以确保部署按计划进行(并解决所有问题)。


1
的确如此-存在将代码从开发环境中带入一个受控程度更高的环境中的问题,其中包括显示文档中遗漏的任何依赖关系,以及在实时/生产环境中出现的任何“在我们的计算机上都能正常工作的”尴尬。
Danny Staple

但这与问题无关...
nbro

4

舞台环境是反映生产的预生产环境。通常,它可能具有一些生产数据,以便由实际用户和QA测试人员组成的测试组可以确认预先发布的代码库/数据将通常在脚本化的用例和回归条件下在类似prod的环境中部署并正常工作。测试。

就像@Oded指出的那样,通常有一个QA测试人员用来测试代码的QA环境。


3

我在美国政府/国防部IT部门的经验是:

  1. DEVELOPMENT / TEST适用于开发人员和应用程序开发人员。他们在企业系统之外构建和测试应用程序。
  2. 应用程序完成后,会将它们部署到IT环境中的PACKAGING服务器中。
  3. 从那时起,应用程序将得到IT的支持,然后迁移到STAGING(这使IT部门可以开发/检查实施准则,配置等)。在此阶段可能会进行用户测试,以验证该应用程序是否可以在复制PRODUCTION的系统中正常运行。
  4. 如果所有测试计划均已完成并且可以通过,那么应用程序将被移至“生产”并进入维持(即,操作和维护或O&M)模式。
  5. 来自开发人员的新更新也将部署到PACKAGING中,并且过程将继续。

2
欢迎来到程序员。我们的网站专注于高质量的问题和答案。它不像典型的论坛。请查看帮助中心以了解更多信息。我看不出您的答案如何解决该问题的其他答案尚未提出的任何问题。

2

作为Web开发人员,主要有三种环境考虑实际

生产:配置为托管针对最终用户的产品最终发行版的环境。它针对安全性和性能进行了优化。它托管在实时服务器上。它需要警报和紧急支持。这对数据至关重要。因此,将定期备份其数据。它还涉及风险管理和灾难恢复。生产环境配置为向最终用户显示友好错误。

登台:配置为在声明代码冻结后托管应用程序发布候选版本的环境。它与开发团队一起针对项目经理/所有者,以商定候选发布版本的范围。它涉及质量保证,还涉及开发团队在发布产品之前进行最终的修复和最终的布置。最佳实践是通过使用从生产环境复制的实时数据库中可用的最新数据来模拟生产环境。通常,临时环境只能由内部团队和利益相关者访问,因此,如果所有利益相关者都可以访问本地网络,则它可以在公共服务器上保护或在Intranet环境中发布。过渡环境配置为显示中等或完整的技术错误。

开发:由单个开发人员在其计算机上配置的私有环境,用于在开发周期中检查自己的工作,通常称为Scrum环境中的sprint。开发环境配置为显示完整的技术错误。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.