开发Web应用程序时,临时环境的定义是什么?

时间:2009-06-04 01:19:23

标签: deployment

在为其他人开发Web应用程序时,多个测试环境是个好主意。但是,不同的开发团队对每个环境的含义有不同的定义。

目前,我喜欢保持简单,并且有一个开发环境(我的本地机器),一个临时环境(在我将应用程序部署到世界之前的某个人),然后是生产环境。虽然在更多的环境中可能有价值,但我现在要坚持这三个。

我的主要问题是:

  

哪些属性适合   在定义登台环境时?

但是,这里有一些相关的问题:

  • Web服务器是否必须位于与数据库不同的物理机器上?
  • 数据库是否必须与生产数据库完全相同?
  • 暂存环境是否可以停止维护?
  • 是否可以使用暂存环境来测试新功能(即测试环境)?

4 个答案:

答案 0 :(得分:11)

我建议您的暂存环境尽可能地与您的生产环境相似。

如果您为数据库和Web服务器使用单独的服务器,请尝试将其保留在暂存中,如果您使用负载均衡器,请尝试将其配置为暂存等等。

但根据我的经验,情况并非如此,我们的临时环境在硬件方面总是比生产环境更不强大。这样做的问题是你无法测试每个功能,并确保生产工作相同。

至于你的其他问题:

  • 暂存通常可以在需要时关闭,您可以有更灵活的安排,安装新版本。
  • 我们遇到了在登台时安装了多个应用程序实例的情况。一个类似于生产中的版本,另一个具有供客户测试的新功能。

答案 1 :(得分:10)

对我而言,“升级”的含义是您即将部署到生产环境,因此您需要一个尽可能模仿生产环境的环境,以尽量减少可能由于以下原因而直接导致的任何问题。不同的环境。例如,开发和测试环境可能具有生产环境没有的某些实用程序,或者生产环境可能具有更严格的权限和身份验证,可能会导致应用程序出现问题。

因此,理想的临时环境是生产环境的精确克隆环境(尽管没有公共访问权限)。如果您使用的是虚拟化服务器,那么这应该是微不足道的。如果没有,那么环境应该尽可能地模仿生产环境(应该将应用程序部署到相同的路径,权限应该相同,配置文件应该是生产的副本,等等)。回答你的问题:

  • Web服务器是否必须位于与数据库不同的物理机器上?如果这就是生产中的方式。
  • 数据库是否必须与生产数据库完全相同?确切的结构,可以填充虚拟值。
  • 暂存环境是否可以停止维护?是。
  • 是否可以使用暂存环境来测试新功能(例如,测试环境)?不,这就是我将使用开发或测试环境的原因。分段应该是针对将立即投入生产的功能(即“候选版本”环境)。

答案 2 :(得分:2)

“在定义登台环境时,哪些属性适合?”

技术堆栈必须相同。实际上,您应该能够简单地克隆分段以重建生产。

“Web服务器是否必须位于与数据库不同的物理机器上?”

进行分期?不必要。如果您的配置管理坚如磐石,那么您将拥有所有必要的配置。分段中的参数,并在转移到生产时正确修复它们。

如果你的CM不稳固,你需要升级以获得与生产相同的物理架构,这样你就可以进行配置更改。

“数据库必须与生产数据库完全相同吗?”

取决于用例。如果要升级数据库,则它们不能完全相同。

如果您没有升级数据库,它们将完全相同。

“暂存环境是否可以停止维护?”

为什么不呢?

“可以使用暂存环境来测试新功能(即测试环境)吗?”

必须使用它。你怎么做升级?

答案 3 :(得分:0)

阶段或暂存环境是用于测试的环境,与测试环境完全相似。换句话说,它是生产环境的完整但独立的副本,包括数据库。分段为QA测试提供了真正的基础,因为它精确地再现了生产中的内容。良好实施的临时环境可以定义重要标准并对其进行准确测试。

现在,考虑一个在非生产环境中执行所有测试的测试团队。例如,在大多数软件开发组织中,在生产版本的发布方式上有多个用于开发编码和QA测试的环境。但是,开发和QA测试环境都不具备生产环境的功能。 需要任何帮助,请查看我们的Custom Web Application Development Services