2010-02-04 106 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應用程序的就地,不停機升級可能會導致奇怪的錯誤。

  • 測試升級:製作生產系統(軟件加數據庫)的副本,在系統運行時應該是可行的。在測試系統上執行升級。如果升級過程中出現問題:修復問題,改進升級程序並重復。

相關問題