匯出 (0) 列印
全部展開

提高 Azure 雲端服務中應用程式的可用性

更新日期: 2014年1月

由於各種原因,裝載 Windows Azure 應用程式的角色執行個體會重新啟動或離線,如果只以一個角色執行個體來裝載應用程式,就會影響可用性。這種狀況有時會發生,原因可能是應用程式本身有問題,或因為這是 Windows Azure 正常作業的一部分,例如服務修復或自動升級為客體作業系統。

提高 Windows Azure 應用程式的可用性最好的方法,就是設定您的應用程式分別至少在兩個升級網域中使用兩個角色執行個體。如此一來,當執行個體因正常的作業程序而重新啟動或離線時,就可以確保至少還有一個執行個體在執行,藉此來保障更好的應用程式可用性。

Windows Azure 應用程式中每個角色的執行個體數目是由組態檔 (cscfg) 中的 Instances 設定所控制。

<Role name="<role-name>">
    <Instances count="<number-of-instances>" />    
    <ConfigurationSettings>
      <Setting name="<setting-name>" value="<setting-value>" />
    </ConfigurationSettings>
  </Role>

如果您選擇為您的應用程式使用單一角色執行個體,下表會列出角色執行個體離線或重新啟動的原因,以及您可以減少停機時間和提高應用程式可用性的方法:

 

角色執行個體離線或重新啟動的原因 提高可用性的方法

客體作業系統 (OS) 自動升級:如果應用程式是設定為自動升級,當發生客體作業系統升級的情況時 (大約每月一次),角色執行個體就會自動重新啟動。

請執行下面其中一項作業:

  • 將應用程式設定為手動升級,並在離峰時間升級執行個體,這樣重新啟動就不會對連入的流量造成太大影響。如需有關手動設定客體作業系統版本的詳細資訊,請參閱<管理 Windows Azure 客體作業系統的升級>。盡可能選擇最新的客體作業系統。

  • 暫時設定您的應用程式使用兩個執行個體,手動升級其中一個執行個體的客體作業系統,同時讓另一個執行個體繼續執行,然後在升級完成之後還原回單一執行個體。

應用程式升級:如果您就地升級應用程式 (手動或自動),因為只有單一升級網域和執行個體,Windows Azure 就會重新啟動角色執行個體以部署新的應用程式。

請執行下面其中一項作業:

  • 將升級的應用程式部署至預備環境,然後交換虛擬 IP (VIP) 位址。這幾乎會立即將流量從生產環境中的應用程式版本切換至預備環境中的版本。

  • 暫時設定您的應用程式使用兩個執行個體,手動升級其中一個執行個體的應用程式,同時讓另一個執行個體繼續執行,然後在升級完成之後還原回單一執行個體。

修改應用程式組態:組態設定更新時,執行應用程式的角色執行個體就會重新啟動。

請執行下面其中一項作業:

  • 指定可以取消重新啟動的組態變更處理常式,這樣角色執行個體就不會自動重新啟動。

  • 暫時設定您的應用程式使用兩個執行個體,修改其中一個執行個體的應用程式組態,同時讓另一個執行個體繼續執行,然後在組態設定修改完成之後還原回單一執行個體。

加入、刪除或更新憑證。

請執行下面其中一項作業:

  • 將含有憑證變更的應用程式部署至預備環境,然後交換虛擬 IP (VIP) 位址。這幾乎會立即將流量從生產環境中的應用程式版本切換至預備環境中的版本。

  • 暫時設定您的應用程式使用兩個執行個體,變更其中一個執行個體的應用程式的憑證,同時讓另一個執行個體繼續執行,然後在憑證變更完成之後還原回單一執行個體。

角色狀態為「忙碌」,因而 StatusCheck 事件處理常式導致負載平衡器將執行個體帶離線。

修改您的應用程式讓它不要在 StatusCheck 事件處理常式中表達「忙碌」狀態。

應用程式透過呼叫 RoleEnvironment.RequestRecycle() 要求重新啟動

修改您的應用程式讓它不會要求重新啟動。

更新主機電腦,這會造成該節點的所有 VM 都重新啟動。

盡可能讓應用程式的啟動時間縮短。

Windows Azure 網狀架構在為執行角色執行個體之 VM 的主機電腦進行服務修復。

修改應用程式讓它具有非預期性重新啟動的彈性。

應用程式當機

透過利用記錄和診斷工具 (例如 WADS、Intellitrace 與 RDP) 讓應用程式的程式碼變得更穩固。如需詳細資訊,請參閱<Azure 雲端服務中的疑難排解和偵錯>和<造成角色回收的常見問題>。

顯示:
© 2014 Microsoft