編者按:面對海量數(shù)據(jù)新的應(yīng)用形態(tài)對低時延和分布式架構(gòu)的需求,邊緣計(jì)算將成為新一代邊緣計(jì)算云基礎(chǔ)設(shè)施,火山引擎覆蓋了全國海量邊緣節(jié)點(diǎn),儲備了上百T帶寬,承載了視頻直播、游戲娛樂、智慧交通、影視特效等多場景客戶服務(wù), LiveVideoStackCon 2023上海站邀請到火山引擎邊緣云邊緣計(jì)算架構(gòu)師——郭少巍,為大家分享《擁抱云原生——下一代邊緣計(jì)算云基礎(chǔ)設(shè)施》。
文/郭少巍
大家好,我是郭少巍,目前在火山引擎擔(dān)任邊緣計(jì)算架構(gòu)師,個人擅長的領(lǐng)域是云原生和IaaS相關(guān)技術(shù)研發(fā),近年來一直從事邊緣計(jì)算相關(guān)的架構(gòu)設(shè)計(jì)和研發(fā)工作。
本次分享的主題是《擁抱云原生——下一代邊緣計(jì)算云基礎(chǔ)設(shè)施》。
演講主要包括以下五方面:一、業(yè)務(wù)走向邊緣;二、業(yè)務(wù)發(fā)展為邊緣計(jì)算云基礎(chǔ)設(shè)施帶來的新挑戰(zhàn);三、應(yīng)對挑戰(zhàn),邊緣計(jì)算云基礎(chǔ)設(shè)施逐步完善;四、火山引擎如何構(gòu)建內(nèi)外統(tǒng)一、邊緣原生的云基礎(chǔ)設(shè)施架構(gòu);五、未來展望。
-01-
業(yè)務(wù)走向邊緣
云計(jì)算經(jīng)過十幾年的發(fā)展,對大家來說并不陌生。在使用云計(jì)算的過程中,我們享受到了云計(jì)算帶來的諸多好處,例如云計(jì)算的彈性、可靠性。這十幾年眾多云廠商紛紛涌現(xiàn),出現(xiàn)了基礎(chǔ)設(shè)施即服務(wù)、平臺即服務(wù)、軟件即服務(wù),云計(jì)算的形態(tài)上演變出了公有云、私有云和混合云等多種模式,當(dāng)前“云”已經(jīng)觸達(dá)了企業(yè)應(yīng)用的方方面面。
據(jù)Gartner預(yù)計(jì),至2027年,將會有超過90%的企業(yè)會將“云”作為首選的基礎(chǔ)設(shè)施。在如此大規(guī)模的應(yīng)用之下,云計(jì)算下一階段的發(fā)展方向又在何處?下面讓我們帶著這個問題一起來看下云計(jì)算演變的驅(qū)動力。
云計(jì)算演變有三個關(guān)鍵的驅(qū)動力:
①應(yīng)用驅(qū)動:越來越多本地化應(yīng)用的出現(xiàn),包括云游戲、AR/VR、工業(yè)制造、網(wǎng)絡(luò)直播、智慧園區(qū)、自動駕駛、輔助駕駛等,這些本地商業(yè)驅(qū)動多樣化的應(yīng)用部署在更靠近用戶的地方。
②基礎(chǔ)設(shè)施的演變:應(yīng)用驅(qū)動基礎(chǔ)設(shè)施的完善,基礎(chǔ)設(shè)施正在從中心逐步向邊緣演進(jìn),形成三種新型邊緣基礎(chǔ)設(shè)施形態(tài):現(xiàn)場邊緣、近場邊緣和云邊緣,它們分別提供不同的延時保證和計(jì)算能力,現(xiàn)場邊緣的延時是1-5ms,近場邊緣是5-20ms,云邊緣是20-40ms。
③算力和網(wǎng)絡(luò)的結(jié)合:有了應(yīng)用和基礎(chǔ)設(shè)施的驅(qū)動,用戶更希望在邊緣基礎(chǔ)設(shè)施上擁有與云上一致的體驗(yàn),于是我們將云上的功能放在邊緣基礎(chǔ)設(shè)施上。通過將算力和網(wǎng)絡(luò)進(jìn)行融合,為企業(yè)提供更好的云上服務(wù)。
接下來,我們來一起看業(yè)務(wù)架構(gòu)的演進(jìn):
我們把資源分為三類:
①終端資源:為用戶提供實(shí)時的服務(wù)響應(yīng),可能就是用戶使用的手機(jī)、平板、車機(jī)系統(tǒng)。雖然終端資源最靠近用戶,但是它的算力有限,于是便有了邊緣資源。
②邊緣資源:為用戶提供就近的接入服務(wù)、廣域的業(yè)務(wù)覆蓋及精準(zhǔn)的網(wǎng)絡(luò)感知能力。雖然邊緣能夠?yàn)榻K端提供更強(qiáng)的算力,但它分布在全國各地,而單個邊緣節(jié)點(diǎn)的規(guī)模有限,為了達(dá)成更強(qiáng)的彈性能力及算力,需要結(jié)合中心資源。
③中心資源:中心資源可以為用戶提供更加彈性的系統(tǒng)容量,并且提供更加強(qiáng)大的數(shù)據(jù)聚合能力。
傳統(tǒng)的中心式部署架構(gòu)已無法滿足新型資源下的部署模式,業(yè)務(wù)架構(gòu)采取云邊端配合的模式進(jìn)行部署,才能夠充分地發(fā)揮云邊端的優(yōu)勢,未來會有越來越多的業(yè)務(wù)向著云邊端混合部署的新架構(gòu)方向發(fā)展。
邊緣計(jì)算發(fā)展的歷程可以追溯到1998年,Akamai首次提出CDN的概念,基于互聯(lián)網(wǎng)的內(nèi)容緩存網(wǎng)絡(luò)CDN,就近緩存內(nèi)容,降低網(wǎng)絡(luò)擁塞,提高訪問效率和命中率。CDN成為了APP、網(wǎng)站、客戶端背后的基礎(chǔ)服務(wù)。
2002年,微軟、IBM與Akamai等公司進(jìn)行合作,在CDN PoP節(jié)點(diǎn)部署.Net和J2EE服務(wù),邊緣計(jì)算的概念首次出現(xiàn)。
2009年,CMU提出Cloudlet的概念,將VM與邊緣基礎(chǔ)設(shè)施結(jié)合,出現(xiàn)了一個部署在網(wǎng)絡(luò)邊緣、且資源豐富的可信主機(jī),這便是邊緣 IaaS服務(wù)的雛形。
2012年在萬物互聯(lián)背景下,移動邊緣計(jì)算MEC、霧計(jì)算等技術(shù)被提出,用于解決萬物互聯(lián)帶來的海量數(shù)據(jù)增長問題。隨后云計(jì)算和邊緣結(jié)合,出現(xiàn)了邊緣計(jì)算概念,在數(shù)據(jù)源和云中心路徑之間提供輕量、彈性、智能、異構(gòu)、低時延的邊緣計(jì)算服務(wù)能力。
對此,我有兩個觀點(diǎn):首先,邊緣計(jì)算是對云計(jì)算最有力的補(bǔ)充,兩者互相補(bǔ)充而非簡單的替代概念;其次,云邊協(xié)同放大了云計(jì)算和邊緣計(jì)算的價值,只有更好地協(xié)同云和邊,才能發(fā)揮兩者最大的價值。
-02-
業(yè)務(wù)發(fā)展,為邊緣計(jì)算云基礎(chǔ)設(shè)施帶來新的挑戰(zhàn)
邊緣計(jì)算的發(fā)展帶來好處的同時,也在云基礎(chǔ)設(shè)施架構(gòu)方面帶來許多挑戰(zhàn)。
邊緣計(jì)算的優(yōu)勢如下:
低延遲:邊緣計(jì)算節(jié)點(diǎn)分布在全國各地,并且覆蓋全鏈路運(yùn)營商,為用戶提供低延遲體驗(yàn)。
高帶寬:邊緣計(jì)算就近處理和傳輸,能夠承載更大的帶寬。
節(jié)約成本:邊緣計(jì)算可以減少客戶端與中心節(jié)點(diǎn)通信的數(shù)據(jù)量,從而幫助客戶節(jié)約了較多的帶寬成本。
數(shù)據(jù)安全:數(shù)據(jù)在邊緣節(jié)點(diǎn)進(jìn)行預(yù)處理和預(yù)聚合,無需在整個網(wǎng)絡(luò)傳輸,從而降低數(shù)據(jù)在公網(wǎng)傳輸被竊取的風(fēng)險。
邊緣計(jì)算主要帶來以下四點(diǎn)挑戰(zhàn):
資源限制:邊緣計(jì)算節(jié)點(diǎn)規(guī)模通常較小,機(jī)器數(shù)量通常為幾臺到幾十臺的規(guī)模,甚至有些邊緣節(jié)點(diǎn)只有一臺服務(wù)器,因此必須考慮如何在小規(guī)模節(jié)點(diǎn)下管理資源,在有限的資源下盡可能提高資源售賣率。
分布式管理:邊緣計(jì)算節(jié)點(diǎn)的數(shù)百個集群分布在全國各地,存在弱網(wǎng)管理及邊緣自治問題。
需求多樣:由于客戶的業(yè)務(wù)是多種多樣的,客戶在邊緣節(jié)點(diǎn)的需求也比較多,客戶需要在邊緣提供云主機(jī)/容器/裸金屬等各種資源類型。此外,在網(wǎng)絡(luò)層面客戶希望我們提供VPC、PIP、EIP等能力,在存儲層面客戶希望我們提供云盤、本地盤、文件存儲、對象存儲等能力。
安全管理:需要在很小的節(jié)點(diǎn)之內(nèi)實(shí)現(xiàn)租戶隔離,并保證公網(wǎng)和邊緣節(jié)點(diǎn)協(xié)同的公網(wǎng)傳輸?shù)陌踩浴?/p>
-03-
應(yīng)對挑戰(zhàn):邊緣計(jì)算云基礎(chǔ)設(shè)施逐步完善
為了應(yīng)對以上挑戰(zhàn),邊緣計(jì)算云基礎(chǔ)設(shè)施正在逐步完善。
正如上文提到,邊緣計(jì)算面臨著小型化、分布式和安全隔離等挑戰(zhàn)。 對此,我們首先想到的是云原生技術(shù),它具有以下特點(diǎn): 資源管理方面,云原生技術(shù)支持彈性伸縮和資源按需分配,為在邊緣小型節(jié)點(diǎn)構(gòu)建一個彈性伸縮的邊緣節(jié)點(diǎn)提供可能性。 技術(shù)架構(gòu)方面,云原生技術(shù)具有松耦合、可插拔和良好的擴(kuò)展性。為邊緣節(jié)點(diǎn)異構(gòu)及按需部署提供可能性。 應(yīng)用部署方面,云原生技術(shù)提供了標(biāo)準(zhǔn)部署、自動化運(yùn)維和可觀測性。為在邊緣構(gòu)建簡單化運(yùn)維及可自動恢復(fù)的能力提供可能性。 云原生是面向云應(yīng)用設(shè)計(jì)的一種思想理念,有助于構(gòu)建彈性可靠、松耦合、易管理、可觀測的系統(tǒng)。
邊緣計(jì)算的架構(gòu)演進(jìn)與業(yè)務(wù)架構(gòu)演進(jìn)相契合,經(jīng)歷了三個階段:
面向資源階段:業(yè)務(wù)初期基本都是直接運(yùn)行在虛擬機(jī)或物理機(jī)上的,這時的業(yè)務(wù)直接面向資源,并沒有解決應(yīng)用如何編排、如何快速部署、如何運(yùn)維,如何觀測等面向應(yīng)用云上使用的能力。
面向應(yīng)用:隨著容器技術(shù)的興起,2014年出現(xiàn)kubernetes,2018年出現(xiàn)Cloud Native的概念,與此同時,邊緣也演進(jìn)到了以云原生為主流架構(gòu)的時期。
然而,云原生并沒有解決所有邊緣的問題,邊緣場景其自身特點(diǎn):
在資源層面,邊緣有著廣泛的節(jié)點(diǎn)覆蓋,單個節(jié)點(diǎn)資源十分有限,這對海量節(jié)點(diǎn)管控和單節(jié)點(diǎn)資源優(yōu)化提出了非常高的要求。
在網(wǎng)絡(luò)層面,存在云邊弱網(wǎng)環(huán)境的問題,這對邊緣自治提出了要求。
由此,迎來了邊緣云技術(shù)架構(gòu)的第三個階段,將云原生與邊緣特性結(jié)合,形成邊緣獨(dú)有的技術(shù)方案,即邊緣原生。
接下來,我將分階段為大家介紹邊緣計(jì)算架構(gòu)演進(jìn)。
第一個階段是傳統(tǒng)虛擬化階段,此階段將虛擬化技術(shù)和邊緣結(jié)合,提供將大粒度資源拆分成小粒度資源,以及資源間的隔離能力,其主要著力點(diǎn)是面向資源。客戶需要自行解決部署,運(yùn)維,監(jiān)控等一系列問題,這種管控模式對客戶基礎(chǔ)運(yùn)維能力要求極高,要求客戶有非常專業(yè)的運(yùn)維和管控系統(tǒng)。
隨著容器技術(shù)和云原生技術(shù)的成熟,云原生應(yīng)用越來越多,此時出現(xiàn)了在虛擬機(jī)中部署容器,容器和虛擬機(jī)相互嵌套。這一方案中,虛擬化仍然是主要技術(shù),容器是輔助,是傳統(tǒng)超融合應(yīng)對云原生趨勢的“過渡”方案。此階段雖然解決了部分編排能力,但容器的彈性能力受限于虛擬機(jī)的彈性能力。
基于邊緣計(jì)算的特色,最終演變出了云原生超融合的架構(gòu)。在同一套資源池上既實(shí)現(xiàn)了虛擬機(jī)也實(shí)現(xiàn)了容器和裸金屬的管控和部署,具有以下兩點(diǎn)優(yōu)勢:
第一,資源共池。三種資源形態(tài)共享一個資源池,可以靈活調(diào)配不同的資源池,提升整體的資源售賣率。
第二,滿足更多業(yè)務(wù)形態(tài),通過不同容器為云原生應(yīng)用提供服務(wù)。用虛擬機(jī)為有基礎(chǔ)運(yùn)維能力的客戶提供服務(wù),用虛擬機(jī)解決Windows生態(tài)問題,在邊緣的大流量場景下,用裸金屬為用戶提供更高性能的資源。
邊緣原生結(jié)合了邊緣和云原生技術(shù)的特點(diǎn)和優(yōu)勢,因此它具有云原生的應(yīng)用和服務(wù)的可移植性,可觀測性,易管理、統(tǒng)一編排的能力,同時也具有云邊協(xié)同、邊邊協(xié)同、中心管控和邊緣自治能力。在全局調(diào)度方面,具有全局資源調(diào)度和局部資源優(yōu)化能力,在邊緣節(jié)點(diǎn)具有異構(gòu)能力。結(jié)合云原生和邊緣的特性,使得應(yīng)用和服務(wù)能夠充分發(fā)揮邊緣的能力。
-04-
內(nèi)外統(tǒng)一、邊緣原生的云基礎(chǔ)設(shè)施架構(gòu)
接著我為大家介紹火山引擎如何構(gòu)建邊緣原生的云基礎(chǔ)設(shè)施。
圖示為整體的技術(shù)方案,從底層開始介紹:
火山引擎邊緣計(jì)算節(jié)點(diǎn)分布在全國各省市、各個運(yùn)營商、具有優(yōu)質(zhì)的網(wǎng)絡(luò)線路。同時,結(jié)合豐富的邊緣硬件設(shè)備,如定制X86服務(wù)器、ARM服務(wù)器、GPU異構(gòu)服務(wù)器資源、高性能NVMe存儲、100G帶寬的智能網(wǎng)卡設(shè)備。
基于這些高質(zhì)量的基礎(chǔ)設(shè)施,我們設(shè)計(jì)出了邊緣云原生操作系統(tǒng)的能力,包含邊緣自治管理、系統(tǒng)組件管理、以及面向邊緣的鏡像服務(wù)能力。自治管理包含集群管理、應(yīng)用生命周期管理。系統(tǒng)組件包含網(wǎng)絡(luò)組件、服務(wù)發(fā)現(xiàn)、消息隊(duì)列。鏡像組件包含公共鏡像、自定義鏡像、鏡像預(yù)熱及鏡像加速。
云邊管理提供云邊通道、集群管理、智能調(diào)度等子系統(tǒng),優(yōu)化了云邊協(xié)同。
數(shù)據(jù)管理提供數(shù)據(jù)采集、監(jiān)控告警、數(shù)據(jù)大屏及數(shù)據(jù)倉庫。將邊緣數(shù)據(jù)進(jìn)行預(yù)處理后發(fā)送到中心進(jìn)行分析告警。
最終在產(chǎn)品形態(tài)層面為客戶提供邊緣計(jì)算服務(wù),包含邊緣虛擬機(jī)、裸金屬、容器等多種形態(tài),同時提供云上一致的邊緣網(wǎng)絡(luò)、邊緣存儲等多種云服務(wù)能力。此外,我們還構(gòu)建了FaaS和SaaS等邊緣服務(wù)。
場景應(yīng)用層面能夠支撐CDN、視頻直播、實(shí)時音視頻、云游戲、動態(tài)加速、邊緣智能等各個業(yè)務(wù)場景的需求。
架構(gòu)設(shè)計(jì)的整體理念為云邊協(xié)同,邊緣自治,分層治理。
邊緣原生操作系統(tǒng)融合了云原生和邊緣特點(diǎn),提供以下四點(diǎn)關(guān)鍵能力:
①統(tǒng)一編排:通過云原生操作系統(tǒng),可以實(shí)現(xiàn)對算力資源、存儲資源、網(wǎng)絡(luò)資源、以及自身云服務(wù)資源的統(tǒng)一編排。
②協(xié)同管控:支持中心和邊緣協(xié)同管控,實(shí)現(xiàn)中心與邊緣的高效融合。
③按需部署:通過算力混合部署和服務(wù)混合部署及組件可插拔,能夠在不同資源場景下的提供異構(gòu)算力和異構(gòu)產(chǎn)品能力。
④云邊協(xié)同:實(shí)現(xiàn)了云邊通道、邊邊協(xié)同等能力。
邊緣節(jié)點(diǎn)對資源編排的需求可以歸納為小型化和多樣化:
小型化:通常節(jié)點(diǎn)規(guī)模較小,只有數(shù)臺機(jī)器,甚至有的節(jié)點(diǎn)只有1臺機(jī)器。
計(jì)算需求:由于業(yè)務(wù)的訴求多樣,需要在邊緣節(jié)點(diǎn)同時支持虛擬機(jī)、容器和裸金屬等多種產(chǎn)品形態(tài)。
存儲層面:需要塊存儲,文件存儲和對象存儲等能力。
網(wǎng)絡(luò)方面:需要自定義VPC網(wǎng)絡(luò)、負(fù)載均衡、彈性公網(wǎng)IP等能力。
對此,我們采用的方案是統(tǒng)一資源編排。
最底層是Kubernetes,在此之上通過CRD統(tǒng)一抽象,比如需要虛擬機(jī),定一個Virtual Machine的CRD,通過CRD實(shí)現(xiàn)控制器邏輯,從而實(shí)現(xiàn)對資源的管控。生態(tài)方面,可以直接復(fù)用在Kubernetes之上現(xiàn)有的網(wǎng)絡(luò)、存儲、GPU等資源類型,實(shí)現(xiàn)容器和虛擬機(jī)存儲和網(wǎng)絡(luò)資源的統(tǒng)一。
統(tǒng)一服務(wù)編排的需求是組件統(tǒng)一管理。包括兩點(diǎn)訴求:
輕量化:邊緣集群通常較小,因此管控服務(wù)需要實(shí)現(xiàn)輕量化。
服務(wù)運(yùn)行依賴:由于服務(wù)種類繁多,因此底層依賴的組件庫也多種多樣,部分服務(wù)對OS也有特定場景訴求。
對此的方案是統(tǒng)一服務(wù)編排,將所有的組件進(jìn)行微服務(wù)化設(shè)計(jì),將組件統(tǒng)一容器化打包和發(fā)布,使得組件運(yùn)行時不依賴特定宿主機(jī)的OS和組件庫版本。
右圖最底層是引擎層,通過復(fù)用Kubernetes的基礎(chǔ)管理能力,直接接入Kubernetes提供的網(wǎng)絡(luò)、存儲等基本能力。在引擎層之上自研了日志、監(jiān)控、報(bào)警等能力,使用并強(qiáng)化了云原生的擴(kuò)縮容、健康探測、故障遷移及自動恢復(fù)能力。在此之上,對外統(tǒng)一提供虛擬機(jī)、容器實(shí)例、裸金屬等外部能力。
協(xié)同管控的需求是統(tǒng)一管控和調(diào)度,包括云邊聯(lián)動管控和統(tǒng)一資源調(diào)度。方案是自研的云邊協(xié)同管控系統(tǒng),包括三個關(guān)鍵點(diǎn):
全局感知:在中心基于Watch機(jī)制,實(shí)現(xiàn)了對邊緣資源的實(shí)時感知,更快感知到資源和庫存變化。
邊緣自治:利用多Master機(jī)制保障邊緣的可用性,即使與中心失聯(lián),邊緣仍可以獨(dú)立工作。
統(tǒng)一調(diào)度:實(shí)現(xiàn)了虛擬機(jī)、容器統(tǒng)一庫存管理。
右圖是創(chuàng)建虛機(jī)調(diào)度的過程,首先用戶發(fā)起創(chuàng)建虛機(jī)實(shí)例請求,虛機(jī)管控收到后再向庫存服務(wù)發(fā)起請求,調(diào)度系統(tǒng)經(jīng)過全局最優(yōu)的調(diào)度策略,返回結(jié)果,管控系統(tǒng)將資源下發(fā)至對應(yīng)的邊緣節(jié)點(diǎn),通過邊緣管控及邊緣調(diào)度器執(zhí)行輕量化調(diào)度,最終將實(shí)例運(yùn)行到具體節(jié)點(diǎn)之上。
按需部署的需求是能力多樣性,主要包括以下幾點(diǎn): 規(guī)模異構(gòu):有的節(jié)點(diǎn)會比較小,有的節(jié)點(diǎn)規(guī)模會比較大 資源異構(gòu):不同節(jié)點(diǎn)提供的服務(wù)器類型包括X86、ARM、GPU 存儲資源:不同節(jié)點(diǎn)提供的存儲能力包括云盤、本地盤、文件存儲等 產(chǎn)品能力:不同節(jié)點(diǎn)會提供X86虛擬機(jī)或ARM虛擬機(jī) 對此的方案是組件標(biāo)準(zhǔn)化和按需部署。 首先是標(biāo)準(zhǔn)化節(jié)點(diǎn)規(guī)格,我們對節(jié)點(diǎn)類型及組件進(jìn)行標(biāo)準(zhǔn)化,前者分為小規(guī)格節(jié)點(diǎn)、通用型節(jié)點(diǎn)、大規(guī)格節(jié)點(diǎn)等,后者分為虛擬機(jī)、容器、網(wǎng)絡(luò)等。 同時在部署方案針對不同節(jié)點(diǎn)類型和產(chǎn)品需求做了固定編排,在節(jié)點(diǎn)建設(shè)時,根據(jù)節(jié)點(diǎn)類型和產(chǎn)品需求,選擇不同的部署方案。右圖可以看到,在小規(guī)格節(jié)點(diǎn)為用戶提供標(biāo)準(zhǔn)的虛擬機(jī)、容器和LB能力,在通用節(jié)點(diǎn)還額外提供裸金屬能力,只需在通用節(jié)點(diǎn)基礎(chǔ)上部署裸金屬插件即可。在大規(guī)格節(jié)點(diǎn)之上為用戶提供更多能力如GPU和文件存儲產(chǎn)品能力,同樣只需在大規(guī)格節(jié)點(diǎn)基礎(chǔ)上部署對應(yīng)插件即可。
云邊協(xié)同解決了云邊弱網(wǎng)問題,包括網(wǎng)絡(luò)和安全層面。前者包括網(wǎng)絡(luò)丟包、鏈路不穩(wěn)定、網(wǎng)絡(luò)鏈路中斷等問題。后者主要是公網(wǎng)鏈路傳輸安全問題。
相應(yīng)方案是自研的云邊通道。
首先,通過邊緣與中心建立長鏈接的方式,復(fù)用邊緣與中心的鏈路,在中心實(shí)現(xiàn)了各個邊緣節(jié)點(diǎn)的數(shù)據(jù)緩存,保障中心更快地感知到邊緣變化,中心組件在操作邊緣時能夠?qū)ψx請求加速。
其次,在安全性保障方面,通過身份認(rèn)證、雙向證書等機(jī)制保證客戶端和服務(wù)端雙向認(rèn)證的安全性。在傳輸安全方面,通過全鏈路SSL加解密,保障傳輸數(shù)據(jù)的安全性。在SSL、ACL訪問控制方面,保證只有白名單的邊緣節(jié)點(diǎn)才可以注冊到中心,增強(qiáng)了云邊通信的安全性。
最后在網(wǎng)絡(luò)容災(zāi)方面,采用多機(jī)房、多副本、負(fù)載均衡和故障自動遷移等技術(shù),確保云邊通道的高可用性。
以下是邊緣節(jié)點(diǎn)的幾個最佳技術(shù)實(shí)踐。
第一個是實(shí)例創(chuàng)建加速,其問題是邊緣節(jié)點(diǎn)創(chuàng)建實(shí)例慢,包括兩方面原因:一是鏡像下載慢,由于邊緣節(jié)點(diǎn)從中心下載鏡像較慢,由于鏡像下載需要走公網(wǎng)進(jìn)行傳輸,因此鏡像下載的時間是不可控的。二是實(shí)例創(chuàng)建需要從基礎(chǔ)鏡像完整拷貝一份,如果鏡像較大,拷貝也會較耗時
對此采用的方案是預(yù)熱及快照。
首先,將虛擬機(jī)鏡像和用戶自定義鏡像提前預(yù)熱到邊緣節(jié)點(diǎn)。再對邊緣的鏡像預(yù)創(chuàng)建快照,當(dāng)需要創(chuàng)建虛擬機(jī)時直接基于快照進(jìn)行創(chuàng)建,虛擬機(jī)底層共享同一快照層,快照采用Copy On Write 機(jī)制,虛擬機(jī)創(chuàng)建時并不會完全拷貝鏡像數(shù)據(jù),而是當(dāng)真正要寫入數(shù)據(jù)時才對需要變動的數(shù)據(jù)進(jìn)行拷貝,通過快照機(jī)制,可以做到虛擬機(jī)的秒級創(chuàng)建。
我們在性能優(yōu)化層面進(jìn)行了虛擬化性能優(yōu)化。顧名思義,虛擬機(jī)是由軟件虛擬而來,因此虛擬機(jī)在一定程度上存在性能損耗,體現(xiàn)在以下三點(diǎn):
?第一,vCPU在操作系統(tǒng)上是被當(dāng)做普通用戶態(tài)進(jìn)程進(jìn)行調(diào)度的,因此vCPU之間可能會存在性能爭搶。
?第二,由于虛擬機(jī)是大顆粒內(nèi)存拆分為小顆粒內(nèi)存,存在內(nèi)存轉(zhuǎn)化性能開銷。
?第三,VMM Exit可能影響CPU性能。
為了更加深入地了解以上問題,現(xiàn)為大家介紹一下虛擬機(jī)的基本原理:
CPU的運(yùn)行級別分為Ring0~3這4個運(yùn)行狀態(tài)等級,Linux只使用了其中的Ring0和Ring3,分別表示內(nèi)核態(tài)和用戶態(tài)。
虛擬機(jī)主要由VMM(Hypervisor)和Guest組成,X86服務(wù)器為了支持虛擬化提供了兩種運(yùn)行模式,root模式和non-root模式。CPU的虛擬機(jī)運(yùn)行過程實(shí)際上就是CPU受控制地在root和non-root兩個操作模式之間進(jìn)行切換。
VMM與Guest的操作模式切換主要分為兩個部分。假設(shè)當(dāng)前運(yùn)行的代碼在VMM層,如果想要運(yùn)行客戶的代碼,就需要進(jìn)入到Guest層,可以手動調(diào)用VMLAUNCH或VMRESUME指令將當(dāng)前運(yùn)行的代碼切換到客戶側(cè),這個過程我們叫做 VM Entry。假設(shè)在客戶側(cè)運(yùn)行過程中需要響應(yīng)外部中斷或缺頁異常(page fault),此時 CPU 運(yùn)行會切換到 VMM,我們將這個過程叫做 VM Exit。
為了減少虛擬機(jī)的性能損耗,我們做了以下幾件事:
?vCPU綁定:通過將vCPU和物理機(jī)CPU一對一綁定,減少了CPU的頻繁切換,從而減低了CPU的上下文切換損耗;
?Hugepage:通過利用內(nèi)存大頁,減少內(nèi)存頁表,降低了TLB的miss,提升虛機(jī)的訪存性能;
?Exit優(yōu)化:通過將Timer/IPI等Exit透傳,消除了大部分的VM Exit,使虛擬化損耗降至5%以下。
I/O層面的優(yōu)化主要包括兩點(diǎn):
?網(wǎng)絡(luò)I/O:超大帶寬,例如vCDN場景
?存儲層面:本地化緩存場景需要較強(qiáng)的存儲帶寬和IOPS能力
對應(yīng)方案是采用硬件Offloading、硬件直通、Polled I/O等方式。
?硬件Offloading:將網(wǎng)絡(luò)流量卸載到專用網(wǎng)卡設(shè)備中,使用專用網(wǎng)絡(luò)設(shè)備做網(wǎng)絡(luò)包的轉(zhuǎn)發(fā),不僅提升了轉(zhuǎn)發(fā)的吞吐能力,還可以釋放部分CPU資源
?設(shè)備直通:將磁盤或網(wǎng)卡設(shè)備直通到虛擬機(jī)中,減少軟件轉(zhuǎn)發(fā)路徑提升了整體 IO 性能
?Polled I/O:通過用戶態(tài)Polling,減少對于通知機(jī)制的依賴,更快感知數(shù)據(jù)變化
-05-
未來展望
未來,邊緣計(jì)算會繼續(xù)呈現(xiàn)增長的趨勢,邊緣計(jì)算的崛起也會帶來更多便利。最后為大家介紹一下未來邊緣計(jì)算主要努力的方向。
主要是輕量化、算網(wǎng)融合和開放生態(tài)。
當(dāng)前我們在邊緣提供了標(biāo)準(zhǔn)的虛擬化能力及非常完善的功能。但當(dāng)前存在虛擬化較重的問題。
未來,我們會通過優(yōu)化Hypervisor實(shí)現(xiàn)更輕量的Overhead,進(jìn)一步降低虛擬化損耗。此外,在管控層面通過云邊協(xié)同將部分管控能力統(tǒng)一在中心,邊緣做輕量的自治能力,做到邊緣的管控面和Hypervisor輕量級。
其次是算網(wǎng)的深度融合,當(dāng)前我們更依賴于單個節(jié)點(diǎn)的彈性能力以及單個節(jié)點(diǎn)的算力資源調(diào)度。應(yīng)用需要自己做多機(jī)房的容災(zāi)能力,未來我們會做算力網(wǎng)絡(luò)深度融合,統(tǒng)一調(diào)度網(wǎng)絡(luò)資源和CPU算力資源,實(shí)現(xiàn)跨節(jié)點(diǎn)的彈性伸縮能力,使得部分業(yè)務(wù)在不同節(jié)點(diǎn)間自由遷移,更好地利用不同節(jié)點(diǎn)的資源。
最后是更加開放的生態(tài)。當(dāng)前,我們基于云原生技術(shù)構(gòu)建了邊緣原生的操作系統(tǒng),對外統(tǒng)一提供虛擬機(jī)、容器及裸金屬等公有云服務(wù)。
未來,我們會為用戶開放更多云原生能力,吸納更多云原生生態(tài)的合作伙伴,通過更加開放的模式,使得云原生技術(shù)不僅可以服務(wù)于自身,也可以讓更多的客戶享受云原生帶來的生態(tài)便利。
編輯:黃飛
?
評論
查看更多