零停机推出策略:数据库怎么样?

零停机推出策略:数据库怎么样?

我们有一个托管在 Amazon Windows IIS7 上的 asp.net/MVC2 Web 应用程序,我希望以尽可能少的停机时间部署更新。

按照此处所述,基于 IIS ARR 3 站点设置进行构建IIS 中的零停机上传/回滚我想找到一种方法来部署我的数据库更新(Amazon RDS 上的 MySQL),以最大限度地减少或消除停机时间。

有人在做这样的事吗?必须针对正确架构版本的数据库部署应用程序,并且我们有一个在部署期间管理这些更改的系统。

我可以想象使用 ARR 来正常清空实时站点并启动新配置的站点,同时运行数据库迁移并让新应用程序暂停处理 Web 请求,直到数据库更改完成,但这似乎很难协调时间,甚至更难测试,更不用说如果该过程花费的时间比浏览器想要等待的时间长,则会出现客户端超时的问题。

谢谢!

答案1

没有人能给出很好的答案。你必须做出向后兼容的架构更改,无论这有多难。

通常,这意味着您的应用不能只依赖一个架构版本,而需要能够在转换期间支持多个架构。(您的事务应该更新两个架构,等等。)

请注意,即使 NoSQL 无模式数据存储也无法解决这个问题,而是需要您以同样的方式解决它:如果您有一个包含 N 个值的键,并且您需要添加一个新值,那么您的应用程序需要处理该键可能尚未更新的可能性。

祝你好运!

相关内容