《從系統架構的角度來看開源和商業負載均衡》要點:
本文介紹了從系統架構的角度來看開源和商業負載均衡,希望對您有用。如果有疑問,可以聯系我們。
對于絕大多數的互聯網企業來說,負載均衡已經成為其系統網絡架構中不可或缺的組成部分.負載均衡技術是終端用戶與業務系統之間溝通的橋梁,也是實現系統處理能力快速擴展的最佳技術.實現負載均衡的方式很多,有很多開源的負載均衡軟件,如:LVS、HAProxy、nginx等,也有很多公司推出獨立的負載均衡產品,如:F5的BIG-IP,A10的Thunder,Citrix的NetScaler等等.
開源軟件的獲取容易,投資成本比較低.對于國內絕大多數的初創互聯網企業來說,盡管其配置管理比較復雜,仍然成為實現應用系統負載均衡功能的首選.隨著企業業務的快速發展和增長,網站的訪問量和流量也會快速增長,這時候,開源的負載均衡軟件的弱點就暴露出來了.
LVS處理性能較強,但只能做簡單的四層處理,并且配置和實施比較復雜,除了要配置LVS之外,應用服務器本身也要做相應的配置.如果后端的應用的種類比較多,會消耗大量的公網IP地址.這對于公網IP地址都不太富裕的中小企業來說,LVS基本成為不可能選擇的方案.
HAProxy和nginx類似,能夠做Web應用的七層處理,這就能夠解決多個Web應用映射到同一個公網IP的需求,而且能夠做比較復雜的邏輯處理.但是,受限于Linux本身,其處理性能又是其軟肋.
盡管這類開源的負載均衡軟件部署成本比較低,當企業的網站訪問量達到一定規模后,性能處理不足的弊端會凸顯出來.這時候,企業會考慮采用商業的負載均衡產品來處理不斷增長的Web流量.
相較于開源軟件,商業的負載均衡產品投資成本比較高.對于初創企業來說,并不是特別好的選擇,但是,為了實現業務的快速增長,支撐不斷增長的業務流量,商業負載均衡卻成為企業不得不考慮的選擇.
由于采用了專用的硬件和系統設計,商業負載均衡從性能、功能、安全性、可靠性上,都比開源負載均衡軟件要強大很多.如A10Networks的Thunder6430單機處理能力高達160Gbps,而體積卻只有1U大小.但如果所有的流量都通過商業負載均衡產品處理,投資成本也是互聯網企業不得不慎重考慮的因素.
實際上,商業負載均衡和開源的負載均衡軟件,在網站的整體架構中并不是對立的兩面.充分發揮各自的專長,不僅能夠降低網站的投資和運維成本,也能夠實現網站性能的高擴展.
舉一個例子,1號店的網絡系統架構中就充分利用了商業和開源負載均衡各自的特點和優勢,從架構上進行整合,不僅提高了整體網站的性能擴展能力,也大大降低了原有負載均衡的管理復雜度.從開源負載均衡軟件到商業的負載均衡設備,再到開源和商業負載均衡的融合,1號店摸索出了一套自己的方式.
和大多數的互聯網公司一樣,在發展初期,為了降低整個網站的投資成本,整個網絡中大量部署了HAProxy.隨著公司業務的快速發展,HAProxy成為網絡架構中的瓶頸.單臺HAProxy的處理能力不足,導致關鍵業務時常出現問題.如果部署多套HAProxy,網絡出口又沒有足夠的公網IP地址.當網站進行促銷或遭受到攻擊時,HAProxy會成為第一個趴下的節點.
在這種情況下,1號店考察了A10Networks的負載均衡產品,并在現網進行了一些測試.測試結果發現,商業的負載均衡的確有不俗的表現:
性能強大,原來HAProxy頂不住的流量,在商業負載均衡上能夠極為輕松的應對.
管理和配置簡單,直觀的命令行和GUI頁面展示,大大降低了原有的管理難度.
一些針對Web應用的高級功能,如:壓縮、SSL卸載、連接復用等,有效的降低了后端服務器的負載.
安全防護功能能夠輕松有效的應對經常發生的DDoS攻擊.
由于專業的負載均衡產品具有諸多的優點,運維人員很快將所有應用的負載均衡功能都遷移到A10Networks的負載均衡設備上.利用A10負載均衡具有的可自定義腳本功能,運維人員又寫了若干腳本,解決諸如URL跳轉、URL變換、攻擊源阻止等等問題.
然而,隨著業務的發展,麻煩事又出現了.
原來的運維人員離職了,新接手的工程師對A10Networks負載均衡的配置不太熟悉.再加上歷史上為了處理一些特殊問題添加的腳本、配置,導致運維工程師不敢對原有的配置進行任何調整.因此,1號店決定對負載均衡的架構重新進行調整.新的架構中,重新引入了HAProxy,并最大限度的發揮商業負載均衡和開源負載均衡各自的特點.調整主要包括以下幾個方面:
商業負載均衡性能出色,部署整個網絡出口,負責處理來自互聯網客戶端的訪問請求.主要實現基于域名的轉發、防DDoS攻擊、SSL卸載和高性能的請求轉發.
HAProxy成本低廉,用于內部應用之間的API調用
所有復雜的URL變換、目錄改寫、緩存、壓縮等工作,交由HAProxy或nginx來處理.如果單臺HAProxy或nginx的處理性能不足,則部署多臺,前端通過A10的負載均衡實現HAProxy的負載均衡.
利用A10負載均衡的API功能,建立基于應用業務的性能監控和配置管理平臺,使負載均衡的配置管理模塊化、流程化.
經過調整之后,整個系統架構中,負載均衡的定位更加清晰,使用方式相對固化,也更加簡單.運維工程師對負載均衡的管理復雜度也大大降低,出現問題后的故障定位也變得更加簡單.新的架構調整,充分發揮了商業和開源負載均衡各自的優勢,在降低總體投資成本的同時,也提高了原有系統的處理能力和擴展的靈活性.
來源:運維幫
轉載請注明本頁網址:
http://www.snjht.com/jiaocheng/4416.html