Deployment 开发web应用程序时,登台环境的定义是什么?

Deployment 开发web应用程序时,登台环境的定义是什么?,deployment,Deployment,在为他人开发web应用程序时,多个测试环境是一个好主意。但是,不同的开发团队对每个环境的含义有不同的定义 目前,我喜欢保持简单,有一个开发环境(我的本地机器),一个登台环境(在我将我的应用部署到世界之前的某个人),然后是生产环境。虽然在更多的环境中可能会有价值,但我现在仍将坚持这三种方法 我的主要问题是: 哪些属性是合适的 定义登台环境时 然而,以下是一些相关问题: web服务器是否必须位于与数据库不同的物理计算机上 数据库是否必须与生产数据库完全相同 登台环境是否可以停机进行维护 是否可以使

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

目前,我喜欢保持简单,有一个开发环境(我的本地机器),一个登台环境(在我将我的应用部署到世界之前的某个人),然后是生产环境。虽然在更多的环境中可能会有价值,但我现在仍将坚持这三种方法

我的主要问题是:

哪些属性是合适的 定义登台环境时

然而,以下是一些相关问题:

  • web服务器是否必须位于与数据库不同的物理计算机上
  • 数据库是否必须与生产数据库完全相同
  • 登台环境是否可以停机进行维护
  • 是否可以使用登台环境测试新功能(即beta env)
我建议您的登台环境与生产环境尽可能相似

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

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

至于你的其他问题:

  • 登台通常可以在需要时停止,您可以有一个更灵活的时间表来安装新版本
  • 我们在登台时安装了多个应用程序实例。一个类似于生产中的版本,另一个具有新功能,供客户测试
对我来说,“登台”意味着您即将部署到生产环境,因此您需要一个尽可能接近生产环境的环境,以最大限度地减少因不同环境直接导致的任何问题。例如,开发和测试环境可能具有生产环境没有的某些实用程序,或者生产环境可能具有更严格的权限和身份验证,这可能会导致应用程序出现问题

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

  • web服务器是否必须位于与数据库不同的物理机器上?如果是这样的话
  • 数据库是否必须与生产数据库完全相同?确切的结构,可以用虚拟值填充
  • 临时环境是否可以停机进行维护?
  • 登台环境能否用于测试新功能(即beta env)?否,这就是我使用开发或测试环境的目的。过渡应针对将立即投入生产的功能(即“候选发布”环境)
“定义登台环境时,哪些属性是合适的?”

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

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

为了演出?不一定。如果您的配置管理坚如磐石,那么您将拥有所有必要的配置。在转移到生产环境时,正确修复暂存中的参数

如果您的CM不是坚如磐石,那么您需要使用与生产相同的物理体系结构,以便进行配置更改

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

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

如果不升级数据库,它们将是相同的

“临时环境是否可以停机进行维护?”

为什么不呢

“是否可以使用登台环境测试新功能(即测试版环境)?”


它必须用于此。您还可以如何进行升级?

阶段或阶段环境是一种与生产环境完全相似的测试环境。换句话说,它是生产环境(包括数据库)的完整但独立的副本。阶段性测试为QA测试提供了真正的基础,因为它精确地再现了生产中的内容。一个实施良好的登台环境可以定义重要的标准并准确地测试这些标准

现在,考虑一个在非生产环境中执行所有测试的测试团队。例如,在大多数软件开发组织中,在产品发布的过程中有多个用于开发编码和QA测试的环境。然而,无论是开发环境还是QA测试环境,都没有生产环境的功能。 需要任何帮助请回答我们的

好问题--在我看来,关于开发的信息很多,但关于部署和设置环境的信息很少。