1. 企業背景
在“網際網路+”時代,創新層出不窮,許多企業伴随着業務的良好營運,資料量和通路量都出現快速增長。然而,在傳統的資訊化建設中,業務系統通常采用單機部署的模式,往往不能跟上業務的發展,系統會出現各種故障,如下:
- 服務能力滞後:用戶端請求急劇增加,服務端配置較低,導緻應用加載緩慢,嚴重影響系統的對外服務能力;
- 系統穩定性差:使用者通路量較大,服務配置更新、擴容較難,容易出現服務端負載過大,導緻業務系統出現當機,影響對外服務的連續性。
叢集部署,SLB讓業務更高效、穩定1. 企業背景2.阿裡雲叢集解決方案3.SLB應用場景
其實,業務系統的高性能、連續性和高可用一直都是企業的生命線,我們很難想象系統由于通路過高導緻突然當機會出現什麼後果,如遊戲、支付等。是以,對于高并發、大流量的通路,我們需要實時做好充分的應對方案。
2.阿裡雲叢集解決方案
2.1 負載均衡簡介
生活中,假如我們的手機使用的是聯通号碼,如果出現通訊相關的疑問,如查詢話費餘額、安裝寬帶,我們就會呼叫10010,接着會收到背景一位客服從業人員的對應服務,如果此時有人也呼叫10010,則聯通同樣會有對應的客服提供服務。其外,如果是浙江号碼,對應的是浙江區域的客服,如果是遼甯号碼,對應的則是遼甯區域的客服,換而言之,我們呼叫的是10010,而10010則可以通過設定的規則和政策将使用者轉發給背景不同的客服來提供服務,而不僅僅是一個人提供服務,進而提高對使用者服務的滿意。
與撥打10010類似,企業在資訊化建設中也需要考慮如何保障系統運作的高效性、穩定性和可靠性。在傳統中,企業往往采用單台伺服器部署應用,一旦通路過多,單台伺服器負載過高,則會導緻伺服器當機,系統出現癱瘓。于是,我們開始考慮能否用多台伺服器對外提供服務,這樣就可以提高服務端的服務能力。但是,出現一個問題:使用者通路隻需要一個流量入口,如果後端有多台伺服器,那麼,如何将流量分發至後端多台伺服器呢?
迎合市場需求,負載均衡應運而生,作為用戶端和服務端的中間層,它作為使用者的所有通路請求入口,然後基于設定的轉發規則和轉發政策,将通路流量分發至後端伺服器進行計算和分析,最後将結果傳回至客戶。如此以來,負載均衡不僅可以解決伺服器單節點當機導緻服務不可用的問題,而且可以将多台伺服器并行工作,進而提供對外的服務能力,應對高并發、大流量的請求通路。
或許,有些人不是很了解,為什麼選擇多台伺服器對外提供服務,而不是選擇更新單台伺服器的配置。其實,這是“1+1>2”的過程。如下圖所示,2台2core 4G的伺服器和單台4core 8G的伺服器在性能上幾乎沒有差别,然而,如果4core 8G的伺服器出現故障,業務系統是否正常對外提供服務?如果由于業務激增,通路量急劇增加,那麼4core 8G的伺服器是否可以快速更新而不影響業務系統的正常對外提供服務?答案是,顯然不能。基于負載均衡的業務叢集化部署,一方面可以通過多台伺服器提供服務,消除單點故障,另外一方面可以通過快速擴容背景伺服器個數,提高對外的通路服務能力。
在傳統的解決方案中,負載均衡的功能可以由硬體裝置實作,如F5,但是價格昂貴,可能一台就幾十萬,同時F5也有自己的性能瓶頸,一旦達到性能上限後,需要購買更多的裝置,且硬體擴充性受到了限制。
2.2 阿裡雲負載均衡服務
為了解決企業對負載均衡高性能、低成本的需求,阿裡雲推出負載均衡服務(Server Load Balancer,簡稱SLB),SLB是對多台雲伺服器進行流量分發的負載均衡服務,将後端多台伺服器做一個池化,共同對外提供服務,可以通過流量分發擴充應用系統對外的服務能力,通過消除單點故障提升應用系統的可用性,并且SLB還可以跨可用區部署。
阿裡雲負載均衡SLB由三部分組成,分别是負載均衡執行個體、監聽和後端伺服器。
- 負載均衡執行個體:一個負載均衡執行個體是一個運作的負載均衡服務,用來接收流量并将其配置設定給後端伺服器;
- 監聽:監聽用來檢查用戶端請求并将請求轉發給後端伺服器,監聽也會對後端伺服器進行健康檢查;
- 後端伺服器:一組接收前端請求的ECS執行個體,可以單獨添加ECS執行個體到伺服器池,也可以通過虛拟伺服器組或主備伺服器組來批量添加和管理;
阿裡雲負載均衡采用叢集部署,通過控制系統可進行統一資源管控,支援四層(TCP和UDP協定)和七層(HTTP和HTTPS協定)。其中,四層基于“LVS+keepalived”的實作,不僅可以保障系統的備援性,提高整體可用性,而且LVS自生攻擊防禦來提高整體安全性;七層基于Tengine實作,在nginx的基礎上做了優化,增加很多進階功能和特性。
相較于傳統硬體負載均衡和其他軟體負載均衡,阿裡雲負載均衡有着無可比拟的優勢,包括如下:
- 安全
- SLB基于LVS在四層做了全面優化,能夠提供最高5G的DDOS防護能力;
- SLB基于ngix在七層做了優化,具備多元度的CC防護能力;
- 高可用
- SLB采用子產品全叢集部署模式,無單點故障,支援同城容災和異地容災,可用性高達99.95%;
- 基于SLB的應用叢集部署,可以根據業務發展進行動态擴容,在流量波動較大情況下不中斷對外服務;
- 低成本
- SLB提供預付費和按量付費兩種計費模式,根據業務場景購買,進一步降低成本;
- 與傳統硬體負載均衡相比,該部分成本能夠節約60%以上;
叢集部署,SLB讓業務更高效、穩定1. 企業背景2.阿裡雲叢集解決方案3.SLB應用場景
- 與傳統硬體負載均衡相比,該部分成本能夠節約60%以上;
- SLB提供預付費和按量付費兩種計費模式,根據業務場景購買,進一步降低成本;
為了滿足業務多樣的需求,阿裡- 雲負載均衡服務SLB提供了豐富的功能,具體如下:
- 多協定支援
- 支援TCP/UDP協定和HTTP/HTTPS協定;
- 針對HTTPS協定提供集中化式的證書管理,滿足使用者安全、可靠的傳輸要求;
- 多層次容災機制
- 提供健康檢查機制,系統定時檢測後端伺服器運作狀況,一旦發現其異常,則不會向其轉發流量,保證業務可用性;
- SLB采用多可用區部署,一旦主可用區出現故障,備可用區自動切換;
- SLB叢集部署,各機器之間會話同步,支援熱更新;
- 靈活的排程
- 支援輪詢、權重輪詢、最小連接配接數和hash排程算法,使用者可基于實際需求進行選擇;
- 支援根據不同的URL和域名進行轉發,提供應用系統的靈活性;
-
超性能保障
針對負載均衡執行個體,首家提出性能保障的雲計算廠商,能夠滿足高性能需求的大客戶,從此性能不再是瓶頸;
3.SLB應用場景
基于阿裡雲負載均衡服務的功能特性,其應用場景是非常豐富,主要概括為五大場景需求:高并發通路量的業務、擴充應用程式、消除單點故障(高可用性)、同城容災和異地容災。其中,高并發通路量的業務和擴充應用程式都是從業務層考慮,當業務通路量增加時,如何通過增加後端伺服器的個數來提供對外服務能力,消除單點故障(高可用性)、同城容災和異地容災則是從應用容災為出發點,實時保障業務的連續性、穩定性。
某網際網路金融異地容災案例分析
随着《網絡安全法》的頒布,國家對網絡安全極為重視,監管力度逐漸加強。網際網路金融作為重要的平台,網絡安全尤其顯得重要,一旦出現業務的中斷則會給客戶企業巨大的損失。金融平台經常發行某些活動,通路量會急劇增加,很容易将業務系統壓垮,導緻業務出現中斷。為了解決業務連續性,該金融平台提出異地容災的需求,我們給出阿裡雲異地容災解決方案,如圖所示。
業務系統采用異地三中心的部署架構,青島和北京分别基于SLB部署一套業務系統,資料通過DTS和其他資料傳輸方式進行資料同步,其中,青島采用全部署的方式,承載主要的業務通路,北京最小化部署一套業務系統,保證青島可用區出現故障時該業務能夠對外提供服務即可。使用者通路經過DNS智能解析,流量導入青島業務系統,如果青島業務系統出現故障,DNS監控系統能夠實時感覺,秒級切換至北京的業務系統,此時再擴容北京系統ECS個數,滿足通路需求,保證業務通路的穩定性。