42

我即将将一个相当复杂的站点部署到生产环境中,并且第一次需要一个暂存环境,我可以在更真实的环境中进行测试,尤其是对于一些无法在本地运行的外部服务。

我的总体计划是首先在本地开发和测试,将简单的更改(小错误修复、HTML/CSS、JS 等)直接推送到生产环境,对于较大的更改,首先推送到暂存子域进行全面测试,然后再推送到生产环境。

我不认为我需要保持登台和生产数据库同步(偶尔手动更新会这样做),但我想知道是否有任何关于维护与生产环境相关的登台环境的一般良好做法,特别是在涉及数据库时。

任何一般的想法/建议/经验将不胜感激。

更新:

感谢您的评论,我明白了要点。我想这值得花点时间考虑一下。接受了流行的答案。

4

2 回答 2

40

绕过分期并在生产中进行更改是灾难和废弃的秘诀。当您进行这些更改时,次要的定义开始发生变化。其次,随着这两个环境的离开(即暂存不再与生产相匹配),事情就会中断,您对暂存环境失去信心。为了充分利用登台服务器,您应该对其进行自动化部署、全面测试,然后才将其部署(自动化)到生产环境(无论更改多么小)。您还应该确保整个环境尽可能相似,并保持这种状态。这显然包括数据库。我通常每天或每小时设置一次同步(取决于我构建站点或应用程序的频率)以维护数据库,并且经常将其作为构建过程的一部分运行。

于 2010-05-19T04:15:35.010 回答
9

作为开发有助于部署过程的每一步的软件工具的人,我可以说在暂存环境方面的最佳实践是准确地镜像您的生产环境。这包括相同的数据库架构(数据不相关,偶尔备份/刷新很好)、相同的操作系统版本、更新的服务包、Web 服务器设置等。

在理想情况下,不需要在登台中进行功能或用户接受度测试,因为登台环境的目的只是为了测试您的部署到生产。然而,在实际世界中,有时您的登台环境也可以作为您的功能或 UA 测试环境是可以接受的。

每次更改生产服务器上的设置或更改配置时,您都应该更改登台服务器上的设置,这将确保如果您可以将应用程序部署到登台,它将很可能毫无错误地部署到生产中。

于 2010-05-19T04:28:30.247 回答