負載均衡一直是一個比較重要的議題,幾乎所有的Azure案例或者場景都不可避免,鑒於經常有客戶會問,所以筆者覺得有必要總結一下。
Azure提供的負載均衡機制,按照功能,可以分為三種:Azure Load Balancer Application Gateway Traffic Manager
首先,我們來介紹第一個Azure Load Balancer 簡稱為 LB
該負載均衡機制其實是基於OSI 4 層參考模型來實現的,工作在傳輸層,在ASM里,LB是隱藏在雲服務后面的,而在ARM里面,LB是一個單獨的服務,但仍是免費的
LB有如下幾個特點
1.工作在OSI參考模型的4層即應用層
2.可以支持任何協議,但是在Azure中主要針對基於TCP/UDP協議
3.服務端點(Endpoint)為Azure虛擬機或者Cloud Service Role
4.同時支持公網負載均衡和內網(Vnet)負載均衡
5.通過Probe監控加入LB的Endpoint
6.支持固定的IP地址
7.負載均衡的默認模式是基於5元組的(源IP ,目的IP ,源端口,目的端口,protocol)
8.會話保持的方式:可以改為2元組(源IP,目的IP),也可以改為3元組(源IP,目的IP,protocol)
9.健康檢測的機制,默認偵測間隔15s,最短為5s,連續兩次健康檢測失敗,則把該節點從負載均衡器中移除,同時也支持用戶自定義的偵測
10.不支持SSL offloading
接下來,來介紹 ApplicationGateway
從上面的總結我們可以看出Azure的LB是基於傳輸層的,但是針對應用層的負載均衡而言,LB很顯然就顯得無能為力了,所以我們需要更高級的負載均衡機制,我們來看下面兩個圖
圖一
圖二
以上的兩個示例都是Azure LB無法滿足的,但是Application Gateway可以做到,它類似於反向代理服務,把客戶端的請求發送到后端的服務器
該負載均衡有如下幾個特點
1.ApplicationGateway是七層的負載均衡,工作在應用層
2.支持的協議為HTTP/HTTPS
3.服務的端點Endpoint為任意的公網IP地址或者內網IP地址
4.同時支持公網負載均衡和內網(Vnet)負載均衡
5.通過Probe監控Endpoint
6.不支持固定的IP地址
7.負載均衡模式為輪詢(round robin)以及URL路由
8.健康檢測間隔為30s,連續5次健康檢測失敗,則把節點從Application Gateway中移除,支持用戶自定義的偵測
9.基於cookie的會話保持,URL路由
10.支持SSL offloading
現在看以看出來,ApplicationGateway有如下幾個重要的作用
1.提供Web ApplicationGateway Firewall(預覽)(WAF),可以保護Web應用程序免受常見的Web攻擊,比如SQL注入,跨站點腳本攻擊和會話劫持
2.提供7層負載均衡,例如HTTP負載均衡
3.通過使用cookie的會話保持功能可以使用戶的會話保持在同一個Azure后端服務器
4.關於SSL offload功能,很多人不是很理解,其實是這樣的,當我們不使用SSL offload功能時,SSL加密與解密應用會消耗大量的服務器資源,這就是為什么從HTTP到HTTPS部署后,服務器的性能和處理能力大幅下降的原因,如果我們使用了SSL Offload,Internet用戶訪問ApplicationGateway的流量是HTTPS加密的,但是ApplicationGateway訪問后端的web server是通過HTTP方式,這樣就有如下的幾個優點
(1)降低服務器的負載,因為我剛剛說了SSL處理非常消耗服務器的性能
(2)提升SSL處理能力
(3)降低管理員操作復雜性,無需管理和配置多個服務器的證書,只要在前端的ApplicationGateway上實現即可
(4)提升應用安全性,將加密的HTTPS解密為明文的HTTP后,可根據請求/響應內容等設置多種策略
(5)ApplicationGateway支持端到端的SSL加密
(6)可以實現基於URL的路由(如圖一),可以實現多站點路由(如圖二)
(7)支持websocket,健康偵測,支持高級診斷功能
就目前而言,ApplicationGateway提供了三種實例大小,small medium large,其中small只適合開發測試環境
並且提供了兩種服務類型,WAF(web application firewall)和Standard,一個訂閱最多創建50個ApplicationGateway,每個ApplicationGateway最多有10個實例,每個ApplicationGateway可以有20個HTTP偵聽器(listener)
其它關於ApplicationGateway的限制條件請參考官網地址
Application Gateway參考性能表
接下來介紹Traffic Manager 它的功能類似於smart dns
該負載均衡有如下的幾個特點
1.該負載均衡是針對DNS的負載均衡
2.支持任何協議,需要HTTP Endpoint進行監控
3.服務端點Endpoint可以為,Azure虛擬機,cloud service 以及Azure web app或者其它外部Endpoint
4.只支持公網負載均衡
5.通過HTTP/HTTPS Get監控Endpoint