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

cas*_*ora 13 deployment

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

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

我的主要问题是:

定义暂存环境时,哪些属性适合?

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

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

pgb*_*pgb 11

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

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

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

至于你的其他问题:

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


小智 10

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

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

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