2010-02-04 76 views
0

想象一下,我们有一个复杂的asp.net解决方案:在IIS中托管的MSSQL + ASP.NET MVC + ASP.NET Web窗体+ WCF服务。Asp.net部署。如何推送到生产服务器

每周一次的解决方案必须部署到单个生产服务器透明地为用户。部署可以包括数据库方案的更改,轻微的IIS重新配置和文件替换。部署消耗时间并可能影响正常运行时间。

如何在不中断用户或减少停机时间的情况下进行部署?什么是技术和最佳实践?

(如开关分期/生产环境)

回答

0

如果你的首要关注是正常运行时间,你可以看看该网站负载均衡的服务器 - 一个可以取下来,更新,然后带回来了,而另一个是然后更新。您需要了解在这种情况下您如何管理会话,例如使用sql server或状态服务器机制。

0
  • 看看最少数量的人使用该系统的时间,并旨在完成更新。
  • 如果您只是将更新应用到数据库服务器,那么您只需要担心备份它就会导致某些内容失败,无需将其更改为脱机状态。
  • 您应该可以上传新页面而不会对用户造成任何中断。
  • 自动化它尽可能地减少人为错误的风险,我建议维克斯这个,因为它可以
0

我不能提供一个完整的解决方案,但有几点是“为我工作”:

  • 拆分您的数据库升级到(A)的变化是向后兼容和(b)重大更改。这样,您可以运行部分(a)(添加字段,添加表格,添加索引...),而旧版本的软件仍在运行。对于(b)部分(更改字段类型,转换数据...),我认为不可能避免停机。尝试使大多数数据库更改不中断。

  • 宣布停机时间以便您的用户可以适应它。在升级过程中,请使用app_offline.htm feature以确保用户能够看到一条很好的错误消息来解释情况。它也确保您的应用程序重新加载。无需重新加载(即“仅替换文件”)的Web应用程序的就地,不停机升级可能会导致奇怪的错误。

  • 测试升级:制作生产系统(软件加数据库)的副本,在系统运行时应该是可行的。在测试系统上执行升级。如果升级过程中出现问题:修复问题,改进升级程序并重复。

相关问题