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