越來越多企業考慮將業務搬到公有雲平台上,Azure是其中代表之一。然而即使微軟對外不斷強調azure的優秀高可用性,但作為企業IT管理員,我們必須對該平台的高可用特性進一步了解並正確配置,方可確保雲上系統的安全性。
【正文】
一、 高可用架構設計原則
在Azure公有雲上設計高可用架構基於以下原則:
將前端和數據庫分離,避免集中角色
前端進行負載均衡,可以采用應用本身的技術,也可以是網絡負載均衡牽引:
LB(Load Balancing)負載均衡:針對同一個雲服務內,且限於同一個區域(上海或北京片區)
Azure Traffic Manager:故障轉移或負載均衡;全雲端或本地混合
數據庫采用自身的高可用技術,例如主備復制、故障轉移、雙活:
MySQL主備復制
Oracle RAC
注:以下示例圖僅演示思路,當中角色所使用的應用和技術可按實際替換
二、 Azure LoadBalance(針對同一雲服務內)
Azure LoadBalance實際上是同一雲服務內對不同地址端口的輪詢。
以一套標准應用結構為例,包括前端和數據庫角色,高可用設計將分別從兩方面進行分析。
a.前端:
在同一個雲服務內(對外發布同一個域名如www.contoso.com),搭建多台前端服務器(如SVR1和SVR2),兩者均可以訪問後台數據庫
針對雲服務開啟LoadBalance(負載均衡),指定80端口輪詢,則當范圍www.contoso.com:80時將輪流分配到不同的前端服務器
b.數據庫:
存放於雲上或者企業數據中心,並使用數據庫本身的主備同步技術進行復制
三、 Azure Traffic Manager(針對多個雲服務之間)
使用 Microsoft Azure Traffic Manager 可以控制向指定的終結點(可能包括 Azure 雲服務、網站和其他終結點)分配用戶流量。Traffic Manager 的工作原理是將智能策略引擎應用到對 Internet 資源域名執行的域名系統 (DNS) 查詢。Azure 雲服務或網站可以在世界各地不同的數據中心內運行。
3.1 模式一:故障轉移+本地數據庫
a.正常訪問時:
利用Traffic Manager故障轉移模式,用戶在互聯網上默認優先訪問Azure雲服務的前端服務器(並且該雲服務啟用了LB)
此時本地的前端服務器處於待命狀態,不提供實際服務
兩者都允許訪問本地數據中心的數據庫主節點
數據庫利用自身主備同步技術復制數據,保證主節點故障時隨時切換
當主節點故障時也可以切換到備節點訪問
b.故障訪問時:
用戶在互聯網上無法訪問Azure雲服務的前端服務器
Azure Traffic Manager自動把訪問切換到本地發布的前端服務器
本地前端服務器馬上訪問本地數據中心的數據庫主節點
數據庫利用自身主備同步技術復制數據,保證主節點故障時隨時切換
當主節點故障時也可以切換到備節點訪問
3.2 模式二:負載均衡(全雲端)+本地數據庫
a.正常訪問時:
利用Traffic Manager循環或者性能模式,用戶在互聯網上可以輪流訪問(或者就近原則)不同Azure雲服務,例如一個上海片區雲服務,一個北京片區雲服務
兩個雲服務內都啟用了LB負載均衡
兩個雲服務的前端服務器都可以訪問數據中心的數據庫
數據庫利用自身主備同步技術復制數據,保證主節點故障時隨時切換
當主節點故障時也可以切換到備節點訪問
b.故障切換時:
當某個雲服務出現故障,Traffic Manager將自動引導所有流量到另一個雲服務
正常的雲服務的前端服務器繼續訪問數據中心的數據庫
數據庫利用自身主備同步技術復制數據,保證主節點故障時隨時切換
當主節點故障時也可以切換到備節點訪問
3.3 模式三:故障轉移+異地數據庫
a.正常訪問時:
利用Traffic Manager故障轉移模式,用戶在互聯網上默認優先訪問Azure雲服務的前端服務器(並且該雲服務啟用了LB)
數據庫主節點也部署在Azure,提供雲上前端服務器直接訪問
此時本地的前端服務器處於待命狀態,不提供實際服務
本地的前端服務器直接訪問本地數據庫備用節點,不需要訪問雲上的主節點
主節點數據庫利用自身主備同步技術復制數據到備節點
b.故障訪問時:
當Azure雲服務出現故障,意味著雲上前端和數據庫都可能無法正常工作
此時利用Traffic Manager故障轉移和數據庫的主備切換功能,將兩者同時切換到本地繼續提供服務
3.4 模式四:負載均衡(全雲端)+異地數據庫
a.正常訪問時:
利用Traffic Manager循環或性能模式,用戶在互聯網上可以輪流訪問(或者就近原則)不同Azure雲服務,例如一個上海片區雲服務,一個北京片區雲服務
兩個雲服務均啟用LB負載均衡
數據庫主節點部署在其中一個Azure片區(如上海),提供相同片區內的前端服務器直接訪問
數據庫備節點部署在另其中一個Azure片區(如北京),提供相同片區內的前端服務器直接訪問
數據庫之間啟用主主復制模式,實時同步並能提供服務
b.故障訪問時:
當某Azure片區(如上海)雲服務出現故障,意味著該雲上前端和數據庫都可能無法正常工作
此時Traffic Manager自動將所有流量轉移到正常片區的雲服務(如北京),將繼續提供服務