amidas #Blog

軟體定義的負載均衡器 ─ NSX Advanced Load Balancer


2019年6月,VMware 收購了多雲應用提供服務領導企業 Avi Networks,其主要產品是基於軟體的應用交付控制器 (ADC – Application Delivery Controller)。說起應用交付控制器可能很多人還不太瞭解,它的另一個名字叫負載均衡器,這個就人盡皆知了。 VMware完成收購之後,把 Avi Networks 的產品整合到了 NSX 產品家族,並且改名為 NSX Advanced Load Balancer。 與傳統應用遞送方案不同,NSX Advanced Load Balancer是純軟體、集中配置、可透過API編程的Software-Defined架構。在Avi內,管理者需要先建立控制層這邊的Controllers。接著再把各個可受Avi配置的底層環境 (Cloud) 接上Controllers後,就能夠自動地配置實際上提供應用遞送功能的轉發層構件:服務引擎虛機 (Service Engine)。


負載均衡器的主要功能

典型的負載均衡器位於用戶端和應用之間,主要用於控制客戶端對於後台應用服務的存取,主要提供以下功能:

1. 動態流量分發:當業務的訪問量很大的時候,通常通過增加後端應用伺服器的數量來提高系統的業務處理能力,這時候就需要負載均衡器按照一定的規則把用戶端的服務請求平均分配給後端應用伺服器,這是負載均衡器最常見的應用場景。

2. 健康狀態檢查:負載均衡器把前端的服務請求轉發給後端,所以它對後端伺服器的健康狀態非常瞭解,如果後端有一台伺服器宕機了,負載均衡器就會把原來發給它的服務請求轉發給其他伺服器,由此實現了業務的高可用性。 實際上,負載均衡器是應用高可用 HA 解決方案中的一個常見設計項目。

3. 高級安全特性:負載均衡器需要開放在公網上,這樣它才能被所有的用戶端訪問到, 而後台應用服務一般都是在內網中,這樣也一定程度上提高了應用安全性。 因為所有的訪問請求都要經過它,很多負載均衡器也內置了一些安全特性,如提供 Web 應用防火牆 WAF (Web Application Firewall) 等。

4. 提高新應用發佈的使用者體驗:現代應用涉及到的使用者數量龐大,為了保持良好的使用者體驗,往往採用藍綠發佈、金絲雀發佈這些手段來減少新版本發佈對於現有使用者的影響,這種場景下負載均衡器就起到了一個很關鍵的作用,它可以靈活控制服務請求在新舊版本之間的切換,簡化新版本的發佈過程和優化用戶體驗。



傳統負載均衡器的區域限制


傳統的負載均衡器都是基於硬體的,雖然在性能上能夠滿足業務需求,但是也逐漸暴露出一些局限性:

1. 價格昂貴:硬體負載均衡器採用專用的硬體構建,普遍要比軟體的解決方案更加昂貴;並且為了搭建高可用解決方案,需要配置兩套硬體互為備份,這就更加增加了部署成本。

2. 缺乏靈活性:為了滿足業務高峰期的訪問需求,負載均衡器都需要按照峰值業務量來進行配置;但是在業務高峰期過去之後 (想想春運訂票和雙11購物節),花大價錢採購的硬體就只能閒置在那裡了。

3. 管理與設定複雜:傳統的負載均衡器都是需要管理員手工來配置的,每台負載均衡器需要逐一設定 (沒有工具),系統的軟體升級更是管理的一大負擔。


新一代軟體定義的負載均衡器

基於 Avi Networks 技術的 VMware NSX Advanced Load Balancer 給我們帶來了新一代軟體定義的負載均衡器,採用的是控制平面 (控制器) 和數據平面 (服務引擎) 分開的設計,控制器負責管理和控制,服務引擎負責轉發網路流量。 此軟體的應用程式提供控制機制具有以下優點:

1. 設定簡便:管理員只需要在控制臺上做一次參數設定,設定就會自動下發到各個服務引擎。

2. 彈性架構:當業務量上升的時候,控制器會自動地增加服務引擎來提升系統的處理容量;當業務量下降時,可以降低服務引擎數量來減少資源消耗。

3. 靈活性:基於軟體的架構讓使用者購買的處理能力可以在多個應用間共用,而不存在硬體方案所需要重新部署和配置的問題,大大減少了處理能力閑置的情況。

4. 支援多雲環境:Avi 的方案不僅支援私有雲,也支援 AWS、Azure 等公有雲端環境,可以靈活地在多雲環境下部署使用。


NSX-T內的LOAD BALANCER服務與NSX FOR VSPHERE內的有何差別?

一些不重要的技術細節就不談了,其實我認為NSX-T內的Load Balancer與V版相比,有極為大幅的改進:

  • 如同其他服務的設計,Load Balancing服務的HA切換速度可以達到秒級,因此即使NSX-T內的Edge構件出現硬體失效等狀況,重要業務系統的服務不會受到中斷。這讓Load Balancing服務能夠真正應用在核心服務環境

  • 由於NSX-T的Edge可以支援Bare-Metal功能,因此即使在7層HTTPS,要執行SSL Offload的狀況下,採用Bare-Metal Edge時內部資料可以達成到concurrent 20萬個session,每秒接近6K new-session的運作能力。同樣地,對應到有大型連線需求的業務,NSX-T Load Balancer的支援也更強大了

  • 與Kubernetes方案負載平衡需求的完整整合,無論是對應到Ingress / LoadBalancer等不同的服務型態,在NSX-T與K8S / VMware PKS的方案整合內,都能透過NSX-T的負載平衡服務完美達成。



如有查詢, 請即聯絡[email protected]

whatsapp-icon-72px.png