我对ASP.NET网站和MSSQL数据库部署有疑问。我们正在托管asp.net网站并开发了新版本,一些asp.net文件已更改,数据库进行了少许修改。为什么要上载新版本的网站并升级MSSQL数据库而不造成停机的最佳方法是什么?

最佳答案

在过去的5年中,我管理着一个大型网站,每月发布一次,并在超过95%的时间里实现了零停机。不幸的是,关键是要确保数据库始终向后兼容,但仅与以前的版本兼容,因此您有机会进行回滚。

因此,例如,如果您打算删除一列,则您的应用程序取决于:

  • 更改您的应用程序代码,使其不依赖于该列,然后释放它(不删除数据库中的列)。
  • 在下一个版本中,删除该列(因为应用程序不再依赖该列)。

  • 它需要开发团队的一些纪律,但是如果您具有正确的环境设置(开发/测试/登台/生产),那么实现起来就非常容易。

    发行时:
  • 将数据库更改部署到过渡环境中,该环境尽可能接近生产环境。最好以自动化方式使用SQL比较和SQL数据比较之类的方法执行此操作,这样您就可以知道数据库完全符合您的测试环境。
  • 使用旧的应用程序执行“烟雾测试”,但使用新的数据库应用程序,以确保没有对数据库进行重大更改。
  • 释放您的应用程序代码。
  • Smoke测试您的登台应用程序。
  • 正式发布。

  • 为了确保网站上的零停机时间,我们要做的另一件事是蓝绿色部署。这涉及到每个网站有2个文件夹,更新一个文件夹,并在IIS主目录更新后切换它。我在这里写过关于此的博客:http://davidduffett.net/post/4833657659/blue-green-deployment-to-iis-with-powershell

    关于asp.net - 部署ASP.NET网站并以零停机时间更新MSSQL数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5618478/

    10-11 02:13
    查看更多