暂存数据库良好实践

时间:2010-05-19 04:03:02

标签: database production staging

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

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

我认为我不需要保持暂存和生产数据库同步(偶尔会进行手动更新)但我想知道是否有任何关于维护与a相关的暂存环境的一般良好实践生产环境,特别是涉及数据库时。

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

更新

感谢您的评论,我得到了主旨。我想值得花点时间考虑一下。接受了流行的答案。

2 个答案:

答案 0 :(得分:30)

通过绕过分段并对生产进行更改是灾难和废弃的一种方法。当您进行这些更改时,minor的定义开始发生变化。其次,随着两个环境的离开(即分期不再与生产相匹配),事情就会破裂,你会对登台环境失去信心。为了从登台服务器中获得最大收益,您应该对其进行自动部署,进行全面测试,然后再部署(自动)到生产(无论变化有多小)。您还应该确保完整的环境尽可能相似,并保持这种状态。这显然包括DB。我通常每天或每小时设置一次同步(取决于我建立网站或应用程序的频率)来维护数据库,并且通常会在构建过程中运行此同步。

答案 1 :(得分:8)

作为开发软件tool以帮助完成部署过程的每一步的人,我可以说,在临时环境中,最佳实践是镜像您的生产环境完全 。这包括相同的数据库模式(数据不相关,偶尔备份/刷新正常),相同的操作系统版本,更新的服务包,Web服务器设置等。

在理想的世界中,功能或用户验收测试不需要在分段中完成,因为分段环境的目的只是测试您的部署到生产。然而,在实际的世界中,有时您的临时环境也可以作为您的功能或UA测试环境。

每次更改生产服务器上的设置或更改配置时,都应更改登台服务器上的设置,这将确保如果您可以将应用程序部署到暂存,那么很可能会将其部署到生产中而不会出现错误