Iis
單個伺服器上的多個網站實例 - 一次升級一個
我想在同一站點託管一個物理機器的兩個副本,以最大限度地減少升級期間的停機時間。
我想我可以在機器前面放一個負載均衡器,為這台機器分配兩個 IP,然後在負載均衡器中設置 IP。
問題是當我需要更新站點時(它的程式碼而不是基礎設施)。我想我可以通過取出一個站點的“實例”來最大限度地減少停機時間,對其進行升級,然後將其重新上線,並對另一個進行同樣的操作。
這可行嗎?
這值得嗎?
當然,這就是我們所做的。我們有兩個 Web 伺服器,A 和 B。我們有 haproxy 坐在它們前面,盡職盡責地平衡它們之間的請求。與您一樣,我們不會以請求必須返回其原始伺服器的方式儲存會話數據。
當我們想要進行升級時,我們將伺服器 A 從池中取出。我們在內部執行升級和測試站點。然後,我們將伺服器 A 放入池中,同時將伺服器 B 從池中取出。然後我們升級伺服器 B,並將其放回原處。
好處:站點升級,停機時間為 0。
缺點:在升級期間,您沒有負載平衡或冗餘。要解決此問題,您必須將更多伺服器加入其中。
至於值不值,只有你自己能回答。我們的軟體非常複雜,部署可能需要超過 5 分鐘(而且它是完全自動化的),而且它幾乎 24/7 都在使用。所以這對我們來說是沒有道理的。
如果您的網站在一天中只是偶爾獲得流量,或者主要是在工作時間,並且您沒有突破單個 Web 伺服器可以處理的障礙,那麼它可能不值得麻煩。在執行時拋出 10 秒的維護橫幅
svn export
可能是更合適的解決方案。