【发布时间】:2019-02-01 14:09:10
【问题描述】:
在持续部署中,您有时会逐渐升级您的服务器,例如,20 人中有 2 人会使用新代码,直到我们确信一切正常。如果新代码需要数据库模式迁移会发生什么,例如现场电话现在是桌面电话。除非我升级所有 20 台服务器,否则会有问题。
【问题讨论】:
标签: database agile continuous-deployment netflix continuous-delivery
在持续部署中,您有时会逐渐升级您的服务器,例如,20 人中有 2 人会使用新代码,直到我们确信一切正常。如果新代码需要数据库模式迁移会发生什么,例如现场电话现在是桌面电话。除非我升级所有 20 台服务器,否则会有问题。
【问题讨论】:
标签: database agile continuous-deployment netflix continuous-delivery
查看扩展/收缩数据库模式: http://exortech.com/blog/2009/02/01/weekly-release-blog-11-zero-downtime-database-deployment/
您临时复制数据,使事物同时位于旧位置和新位置。旧查询必须有效,新查询也必须有效。您可以在测试环境中进行自动化测试来验证这一点。一旦所有服务器都移至较新版本,您就可以执行“合同”删除“旧”样式数据。
【讨论】:
我们在我们的应用程序中一直这样做。我们所做的是让应用程序检查它正在使用的数据库的哪个“版本”,然后制作有条件的方法。基本上,该应用程序在新旧场景下都能正常工作。
【讨论】: