在洛神網(wǎng)絡(luò)中,負(fù)載均衡是最關(guān)鍵的一環(huán),它肩負(fù)著網(wǎng)絡(luò)流量分配的重任,有了負(fù)載均衡,用戶在瀏覽應(yīng)用時(shí)才能感受到“絲般順滑”。
服務(wù)器也是這個(gè)道理,每次請(qǐng)求進(jìn)行的操作對(duì)資源的消耗可能是不同的。比如說某些操作它對(duì)CPU的使用就是比較高,也很正常。所以負(fù)載均衡有時(shí)不能簡(jiǎn)單的通過請(qǐng)求的負(fù)載來作為負(fù)載均衡的唯一依據(jù)。還可以結(jié)合服務(wù)的當(dāng)前連接數(shù)量、最近響應(yīng)時(shí)間等維度進(jìn)行總體均衡,總而言之,就是為了達(dá)到資源使用的負(fù)載均衡。
負(fù)荷平衡從產(chǎn)生到現(xiàn)在也隨著網(wǎng)絡(luò)業(yè)務(wù)的變化而不斷演變,逐漸發(fā)展為現(xiàn)在的云化負(fù)荷平衡形式。先來看看關(guān)于負(fù)載平衡的“進(jìn)化歷史”
因特網(wǎng)商業(yè)的初始階段。
商業(yè)特征:目前的互聯(lián)網(wǎng)業(yè)務(wù)還處于拓展階段,互聯(lián)網(wǎng)企業(yè)的規(guī)模還不夠大,其網(wǎng)絡(luò)業(yè)務(wù)集中在運(yùn)營商或大型IDC端,需要集中處理大量的接入流量。性能和穩(wěn)定性都要求負(fù)載均衡方案在此時(shí)非常有效。
目前,已經(jīng)出現(xiàn)了硬件負(fù)載平衡設(shè)備,他們擁有專業(yè)的維護(hù)隊(duì)伍,具有較高的硬件性能和穩(wěn)定可靠的業(yè)務(wù)保障。
但由于與物理硬件密切相關(guān),對(duì)用戶來說,其投資成本高,需要提前預(yù)測(cè)其業(yè)務(wù)開發(fā)量進(jìn)行投資,在業(yè)務(wù)開發(fā)初期進(jìn)行投資很容易出現(xiàn)浪費(fèi);其次是擴(kuò)展難,硬件采購、安裝周期較長(zhǎng),難以隨業(yè)務(wù)擴(kuò)展達(dá)到要求;最后是運(yùn)維難,需要專業(yè)團(tuán)隊(duì)進(jìn)行運(yùn)維,故障恢復(fù)周期取決于故障本身的恢復(fù)難度和團(tuán)隊(duì)的專業(yè)水平。

網(wǎng)絡(luò)業(yè)務(wù)高速發(fā)展階段。
商業(yè)特征:隨著網(wǎng)絡(luò)企業(yè)的高速崛起,對(duì)網(wǎng)絡(luò)企業(yè)而言,競(jìng)爭(zhēng)異常激烈,需要經(jīng)常快速調(diào)整業(yè)務(wù),以滿足客戶需求。
這時(shí),產(chǎn)生了軟件化的負(fù)載均衡,典型的如LVS和Nginx,LVS主要負(fù)責(zé)四層負(fù)載均衡,Nginx主要負(fù)責(zé)七層負(fù)載均衡。在這里,LVS使用Linux內(nèi)核集群實(shí)現(xiàn)一個(gè)負(fù)載平衡服務(wù)器。由于其應(yīng)用非常廣泛,因此它幾乎可以對(duì)所有應(yīng)用進(jìn)行負(fù)載平衡,包括http、數(shù)據(jù)庫、在線聊天室等;而Nginx則在7層上工作,可以為http制定分流策略,適用于輕量級(jí)Web服務(wù)。
軟體負(fù)載均衡使客戶能夠靈活地部署和調(diào)整業(yè)務(wù),但由于這些大部分都是客戶自己部署,所以客戶在部署時(shí)仍需考慮與硬件性能相輔相成,性能很難擴(kuò)展,而負(fù)載均衡本身就是可靠性方案的部署、后續(xù)功能和容量的擴(kuò)展等問題都需要考慮,無法做到真正隨心所欲地部署。
商業(yè)完全上云階段。
企業(yè)特征:企業(yè)云化已是大勢(shì)所趨,云化給企業(yè)帶來了前所未有的“網(wǎng)絡(luò)隨業(yè)務(wù)”體驗(yàn),用戶在規(guī)劃網(wǎng)絡(luò)時(shí)不再去考慮企業(yè)業(yè)務(wù)發(fā)展對(duì)網(wǎng)絡(luò)的要求,而只是關(guān)注業(yè)務(wù)發(fā)展本身,網(wǎng)絡(luò)是可以隨著業(yè)務(wù)發(fā)展而不斷變化的。
這一階段對(duì)負(fù)載均衡提出了新的要求,在滿足企業(yè)高性能、高安全性要求的前提下,能夠隨企業(yè)的發(fā)展隨時(shí)自主地進(jìn)行彈性擴(kuò)展,時(shí)刻與企業(yè)業(yè)務(wù)相匹配,同時(shí)對(duì)不斷出現(xiàn)的網(wǎng)絡(luò)新業(yè)務(wù)也能提供全面的支持。
怎樣實(shí)現(xiàn)阿里云的SLB負(fù)載均衡來滿足業(yè)務(wù)發(fā)展的需要?
先看一下雙十一和新年伊始阿里云負(fù)載平衡的出色表現(xiàn)。
多年來,阿里云負(fù)載均衡SLB產(chǎn)品承載著阿里巴巴集團(tuán)雙十一購物狂歡節(jié)的網(wǎng)絡(luò)流量高峰,剛剛過完的2019年雙十一,集團(tuán)所有核心系統(tǒng)上云,全部由公共云SLB承載,峰值流量為1.22Tbps,并發(fā)連接數(shù)3.38億,每秒處理數(shù)據(jù)包2.89億,每秒新增416萬個(gè)鏈接。
在今年新冠型肺炎流行期間,負(fù)載均衡的SLB比釘更能提供5.12T帶寬,8億并發(fā)和16億pps的容量保障,全力支持釘釘上1000萬個(gè)企業(yè)的在線啟動(dòng),為現(xiàn)場(chǎng)教學(xué)、視頻會(huì)議和群組直播的順暢接入提供強(qiáng)有力的支持,保證了全國5000萬學(xué)生“在家上課”的低延遲、流量體驗(yàn)。
一直領(lǐng)先的技術(shù)優(yōu)勢(shì)確保了阿里云負(fù)載均衡對(duì)如此大流量業(yè)務(wù)的強(qiáng)大支持,下面我們將對(duì)阿里云負(fù)載均衡的技術(shù)內(nèi)涵進(jìn)行剖析:
在經(jīng)歷了從KernelLVS到DPDK版LVS所帶來的性能大幅提升之后,單純的DPDKLVS已經(jīng)不能滿足100G網(wǎng)絡(luò)的性能要求,通過軟、硬件相結(jié)合的技術(shù),深度定制了最新的100G網(wǎng)卡硬件特性,象流業(yè)務(wù)完全由硬件來處理,滿足了SLB產(chǎn)品的單流性能要求和總體能力要求。
NFV平臺(tái)基于洛神2.0的架構(gòu),為用戶提供更高級(jí)的彈性預(yù)熱,更快的特性迭代,流量調(diào)度能力以及超強(qiáng)的彈性能力,SLB的整體容量不再局限于SLB硬件資源,借助阿里云ECS強(qiáng)大的計(jì)算能力,超大實(shí)例規(guī)格已經(jīng)服務(wù)于多個(gè)頂級(jí)客戶。
通過集成最新一代IntelQuickAssistTechnology硬件加速能力,SSL處理能力進(jìn)一步升級(jí),不僅能夠滿足SSL卸載對(duì)超強(qiáng)彈性能力的需求,同時(shí)還支持諸如行業(yè)內(nèi)最新的TLS1.3等安全協(xié)議規(guī)范。
本地

集成容器服務(wù)Alliance容器服務(wù)Kubernetes版本提供了高性能可伸縮容器應(yīng)用管理功能,支持對(duì)企業(yè)級(jí)容器應(yīng)用進(jìn)行生命周期管理。集成了阿里云的虛擬化、存儲(chǔ)、網(wǎng)絡(luò)和安全功能,在云端構(gòu)建最佳的容器化應(yīng)用運(yùn)行環(huán)境。在云本地環(huán)境中,無論是Kubernetes專有版本、托管版本還是Serverless版本,KubernetesAPIServer都在不斷地積累支持SLB負(fù)載均衡的無縫集成,KubernetesAPIServer通過SLB提供了全局訪問能力,并且在Kubernetes本地環(huán)境下,無需通過控制臺(tái)或OpenAPI手動(dòng)創(chuàng)建負(fù)載均衡SLB,通過容器Kubernetes控制臺(tái)管理界面、KubernetesDashboard,甚至kubectl命令行工具或YAML配置文件,以Kubernetes本地方式,完全不感知SLB,自動(dòng)創(chuàng)建和使用SLB。容器服務(wù)的SLB方案支持阿里云的本地高可用負(fù)載平衡,網(wǎng)絡(luò)配置的修改和更新可以自動(dòng)完成。經(jīng)過大量用戶長(zhǎng)時(shí)間的使用,該方案的穩(wěn)定性和可靠性大大超過了用戶自建入口的實(shí)現(xiàn)。
本機(jī)支持服務(wù)網(wǎng)格ServiceMesh。AllianceServicesNights是一個(gè)托管式的微服務(wù)應(yīng)用流量統(tǒng)一管理平臺(tái),它與Istio兼容,支持多個(gè)Kubernetes集群的統(tǒng)一流量管理,為容器和虛擬機(jī)應(yīng)用服務(wù)提供一致的通信控制。通過集成阿里云容器服務(wù)、網(wǎng)絡(luò)互連和安全功能,構(gòu)建云端最佳服務(wù)網(wǎng)格環(huán)境,實(shí)現(xiàn)對(duì)各微服務(wù)流量的持續(xù)控制和可觀測(cè)能力。無論是阿里云服務(wù)網(wǎng)格,還是阿里云容器服務(wù)Kubernetes版本所支持的Istio,都實(shí)現(xiàn)了完全集成和負(fù)載均衡的SLB,無論是Istio虛擬服務(wù)還是服務(wù)網(wǎng)關(guān),都能通過負(fù)載均衡SLB自動(dòng)提供高可用能力。
負(fù)載平衡SLB除了支持Kubernetes的云本地生態(tài)外,還能夠支持阿里云彈性容器實(shí)例ECI,這是一個(gè)Serverless和容器化彈性計(jì)算服務(wù)(ElasticContainerInstance)。你不需要管理底層的ECS服務(wù)器,你只需要提供打包后的鏡像就可以運(yùn)行容器,并且只需要支付容器運(yùn)行所消耗的資源。無論是自建Kubernetes還是直接使用ECI實(shí)例,負(fù)載平衡SLB都支持ECI的直接裝載,可以通過控制臺(tái)或OpenAPI操作來使用。
目前,SLB已經(jīng)完全支持IPv6網(wǎng)絡(luò),并且支持各種混合云場(chǎng)景,包括專線連接的線下IDC,跨地域、甚至跨大洋連接的跨CEN的云企業(yè)網(wǎng),通過SLB統(tǒng)一對(duì)外提供服務(wù)。在云本機(jī)領(lǐng)域,阿里云容器服務(wù)開放源碼,阿里云網(wǎng)絡(luò)包含相關(guān)代碼和負(fù)載均衡SLB集成解決方案,自建的SLB同樣可以實(shí)現(xiàn)無縫集成負(fù)載均衡SLB的功能,此外,通過SLB支持的混合云部署能力,可以打通各種異構(gòu)網(wǎng)絡(luò)和環(huán)境的線上和線下。
