零宕机时间部署策略:DB如何?

我们有一个在亚马逊Windows IIS7上托pipe的asp.net/MVC2networking应用程序,我希望尽可能less的停机时间部署更新。

build立在这里描述的IIS ARR 3站点设置在IIS中零停机上传/回滚我想要以最小化或消除停机时间的方式部署我的数据库更新(Amazon RDS上的MySQL)的方法。

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

我可以想象使用ARR优雅地stream失的现场,并提出新设置的网站,同时运行数据库迁移,并有新的应用程序处理的Web请求,直到数据库更改完成,但似乎很难协调计时甚至更难testing,更不用说客户端超时的问题,如果过程需要比浏览器等待更长的时间。

谢谢!

没有人有这个好的答案。 您必须做出向后兼容的模式更改,但是可能很难。

通常这意味着您的应用程序不能只依赖于一个模式版本,但需要能够在转换过程中支持多个模式。 (你的交易应该更新两个模式等)

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

祝你好运!