陳衛(wèi) 鄭煒 湯毅
摘 要: 云計(jì)算協(xié)同邊緣計(jì)算成為發(fā)展的重要趨勢,而目前云邊協(xié)同或稱為云邊一體的技術(shù)架構(gòu)尚處于發(fā)展的初期階段。由于云計(jì)算和邊緣計(jì)算面對(duì)的計(jì)算資源和存儲(chǔ)資源不同,其對(duì)于算法的速度、內(nèi)存占用和能效的要求存在不同的要求,現(xiàn)有的一些工具不能同時(shí)滿足云計(jì)算和邊緣計(jì)算的要求,無法體現(xiàn)出云邊一體的協(xié)同效應(yīng)。在華為提供的開源計(jì)算平臺(tái)KubeEdge最新的v0.2版本中,引入了云組件用于連接并形成回路,通過一致且可伸縮的基于Kubernetes的接口,KubeEdge支持邊緣集群的編排和管理。這為快速高效地將云計(jì)算能力推向邊緣提供了可能。
關(guān)鍵詞: 云計(jì)算; 邊緣計(jì)算; 云邊協(xié)同; KubeEdge
中圖分類號(hào): TP311文獻(xiàn)標(biāo)志碼: A
Exploration of the Integrated Cloud-Edge Synergy Architecture Based on KubeEdge
CHEN Wei, ZHENG Wei, TANG Yi
(BestTV Network Technology Development Co. Ltd., Shanghai 200032)
Abstract: The coordinated development of cloud computing and edge computing has become an important trend in the future. However, the current technology architecture based on cloud-edge synergy is still in the early stage of development. Because cloud computing and edge computing apply different computing resources and storage resources, they have different requirements for algorithm speed, memory usage and energy efficiency. Some existing tools cannot meet the different requirements of cloud computing and edge computing at the same time. KubeEdge, an open source computing platform donated by Huawei, introduced cloud components for connecting and forming loops in the latest v0.2 release. KubeEdge supports the orchestration and management of edge clusters through a consistent and scalable Kubernetes-based interface. This makes it possible to develop cloud computing into the edge computing quickly and efficiently.
Key words: cloud computing; edge computing; cloud-edge synergy; KubeEdge
0 引言
云計(jì)算[1]概念的提出和應(yīng)用已經(jīng)極大影響了信息技術(shù)的發(fā)展,計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)資源的銷售方式改變使具有創(chuàng)新能力的開發(fā)人員不再需要在硬件的采購和部署上投入大量資金和人力成本。隨著平臺(tái)即服務(wù)、軟件即服務(wù)的發(fā)展,開發(fā)人員可以獲得更高的開發(fā)效率和更低的成本。然而,隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,集中式的云計(jì)算架構(gòu)無法把資源利用、數(shù)據(jù)融合、應(yīng)用兼容、統(tǒng)一運(yùn)維等物聯(lián)網(wǎng)問題全部解決,給網(wǎng)絡(luò)帶寬、計(jì)算能力、存儲(chǔ)容量帶來巨大壓力。[2]
目前,以邊緣計(jì)算模型為核心的,面向網(wǎng)絡(luò)邊緣設(shè)備所產(chǎn)生海量數(shù)據(jù)計(jì)算的邊緣式大數(shù)據(jù)處理應(yīng)運(yùn)而生,其與現(xiàn)有以云計(jì)算模型為核心的集中式大數(shù)據(jù)處理相結(jié)合,即二者相輔相成,應(yīng)用于云中心和網(wǎng)絡(luò)邊緣端的大數(shù)據(jù)處理,較好地解決了萬物互聯(lián)時(shí)代大數(shù)據(jù)處理中所存在的問題[3] 。根據(jù)思科全球云指數(shù)的預(yù)估,到2021年,存儲(chǔ)在數(shù)據(jù)中心內(nèi)的數(shù)據(jù)將增長至1.3ZB;存在設(shè)備中的數(shù)據(jù)將是數(shù)據(jù)中心的4.5倍,總量達(dá)到5.9ZB。受物聯(lián)網(wǎng)的驅(qū)動(dòng),2021年全球設(shè)備產(chǎn)生的數(shù)據(jù)總量將達(dá)到每年847ZB。[4]邊緣計(jì)算模型的優(yōu)點(diǎn)就凸顯出來:(1)在網(wǎng)絡(luò)邊緣處理大量臨時(shí)數(shù)據(jù),不再全部上傳云端,這極大地減輕了網(wǎng)絡(luò)帶寬和數(shù)據(jù)中心功耗的壓力;(2)在靠近數(shù)據(jù)生產(chǎn)者處做數(shù)據(jù)處理,不需要通過網(wǎng)絡(luò)請求云計(jì)算中心的響應(yīng),大大減少了系統(tǒng)延遲,增強(qiáng)了服務(wù)響應(yīng)能力;(3)邊緣計(jì)算將用戶隱私數(shù)據(jù)不再上傳,而是存儲(chǔ)在網(wǎng)絡(luò)邊緣設(shè)備上,減少了網(wǎng)絡(luò)數(shù)據(jù)泄露的風(fēng)險(xiǎn),保護(hù)了用戶數(shù)據(jù)安全和隱私[5]。
在更多的場景下,云計(jì)算與邊緣計(jì)算形成一種互補(bǔ)、協(xié)同的關(guān)系,邊緣計(jì)算需要與云計(jì)算緊密協(xié)同才能更好地滿足各種應(yīng)用場景的需求。邊緣計(jì)算主要負(fù)責(zé)那些實(shí)時(shí)、短周期數(shù)據(jù)的處理任務(wù)以及本地業(yè)務(wù)的實(shí)時(shí)處理與執(zhí)行,為云端提供高價(jià)值的數(shù)據(jù);云計(jì)算負(fù)責(zé)邊緣節(jié)點(diǎn)難以勝任的計(jì)算任務(wù),同時(shí),通過大數(shù)據(jù)分析,負(fù)責(zé)非實(shí)時(shí)、長周期數(shù)據(jù)的處理,優(yōu)化輸出的業(yè)務(wù)規(guī)則或模型,并下放到邊緣側(cè),使邊緣計(jì)算更加滿足本地的需求,完成應(yīng)用的全生命周期管理[6]。本文將探索基于KubeEdge的云邊協(xié)同架構(gòu),以滿足實(shí)際需要,具體安排如下,第二節(jié)簡要介紹KubeEdge;第三節(jié)實(shí)現(xiàn)一種移動(dòng)邊緣計(jì)算場景下的協(xié)同技術(shù)架構(gòu);第四節(jié)對(duì)該技術(shù)進(jìn)行展望,并給出結(jié)論。
2 KubeEdge技術(shù)分析
邊緣計(jì)算正在面臨容器化演進(jìn)的挑戰(zhàn),尤其是在垂直行業(yè)領(lǐng)域。容器是一種操作系統(tǒng)級(jí)別的虛擬化技術(shù),通過操作系統(tǒng)隔離技術(shù),如Linux下的CGroup和NameSpace,將不同的進(jìn)程隔離開。容器技術(shù)不同于硬件虛擬化(Hypervisor)技術(shù),并沒有虛擬硬件,容器內(nèi)部也沒有操作系統(tǒng),只有進(jìn)程,這些特點(diǎn)使得容器比虛擬機(jī)更輕量,管理也更方便。
Kubernetes是Google 公司領(lǐng)導(dǎo)開發(fā)的開源容器編排引擎,目前已經(jīng)成為容器編排領(lǐng)域的事實(shí)標(biāo)準(zhǔn),可用于容器集群的自動(dòng)化部署、擴(kuò)容以及運(yùn)維。通過Kubernetes,可以快速而有預(yù)期地部署應(yīng)用、擴(kuò)展應(yīng)用。然而Kubernetes是為云數(shù)據(jù)中心設(shè)計(jì)的,要想在邊緣使用Kubernetes的能力,需要解決以下問題[7] :(1)ARM的低功耗和多核的特點(diǎn)使其在IoT/Edge領(lǐng)域的應(yīng)用廣泛,然而大部分的Kubernetes發(fā)行版并不支持ARM架構(gòu);(2)很多設(shè)備邊緣的資源規(guī)格有限,特別是CPU處理能力較弱,因此無法部署完整的Kubernetes;(3)Kubernetes依賴list/watch機(jī)制,不支持離線運(yùn)行,而邊緣節(jié)點(diǎn)的離線又是常態(tài),例如設(shè)備休眠重啟;(4)Kubernetes的運(yùn)維相對(duì)于邊緣場景用到的功能子集過于復(fù)雜;(5)需要特殊的網(wǎng)絡(luò)協(xié)議和拓?fù)湟?,設(shè)備接入?yún)f(xié)議往往非TCP/IP協(xié)議,例如,工業(yè)物聯(lián)網(wǎng)采用Modbus和OPC UA,消費(fèi)物聯(lián)網(wǎng)采用Bluetooth和ZigBee等。
KubeEdge于2018年11月向公眾發(fā)布,是首個(gè)基于Kubernetes擴(kuò)展來提供云邊協(xié)同能力的開放式邊緣計(jì)算平臺(tái),其 0.1版本支持以下功能:(1)在邊緣節(jié)點(diǎn)上運(yùn)行的輕量級(jí)應(yīng)用程序引擎,用于管理用戶的應(yīng)用程序并監(jiān)視節(jié)點(diǎn)的運(yùn)行狀況;(2)支持kubernetes API原語,如node、pod、configmap、secrets等;(3)物聯(lián)網(wǎng)設(shè)備與邊緣節(jié)點(diǎn)對(duì)話的設(shè)備孿生和MQTT協(xié)議;(4)通過HTTP RESTful接口實(shí)現(xiàn)本地自治;與華為云IEF服務(wù)集成,用于節(jié)點(diǎn)、設(shè)備和應(yīng)用程序狀態(tài)更新;(5)邊緣節(jié)點(diǎn)在離線和恢復(fù)后重新連接到云時(shí)的自治。
2019年3月發(fā)布0.2版本,增加以下功能:(1)增加邊緣控制器,連接到Kubernetes api服務(wù)器,并在邊緣和Kubernetes api服務(wù)器之間同步node/pod狀態(tài);(2)增加CloudHub模塊,是KubeEdge的云部分中的WebSocket服務(wù)器;(2)內(nèi)部MQTT模式,在該模式中,MQTT代理以edge_core啟動(dòng),并刪除對(duì)外部MQTT代理的依賴;(3)邊緣的集成測試框架,改進(jìn)了邊緣單元測試覆蓋率。KubeEdge的具體架構(gòu)[8]如圖1所示。
KubeEdge架構(gòu)上清晰地分為三層,分別是:云端、邊緣和設(shè)備層,其邊緣進(jìn)程包含以下5個(gè)組件:
(1) Edged:管理邊緣的容器化應(yīng)用程序,實(shí)現(xiàn)Pod,Volume,Node等Kubernetes資源對(duì)象的生命周期管理。
(2) MetaManager:它管理邊緣節(jié)點(diǎn)上的元數(shù)據(jù)。這是Edged和Edgehub之間的消息處理器。它還負(fù)責(zé)在輕量級(jí)數(shù)據(jù)庫中存儲(chǔ)/檢索元數(shù)據(jù)。
(3) EdgeHub:邊緣的通信接口模塊。這是一個(gè)Web套接字客戶端,負(fù)責(zé)邊緣計(jì)算與云服務(wù)的交互。
(4) DeviceTwin:它是處理設(shè)備元數(shù)據(jù)的設(shè)備軟件鏡像。該模塊有助于處理設(shè)備狀態(tài)并將其同步到云上。
(5) EventBus:使用MQTT處理內(nèi)部邊緣通信。它是一個(gè)MQTT客戶機(jī),可以與MQTT服務(wù)器交互,為其他組件提供發(fā)布和訂閱功能。
KubeEdge的云端進(jìn)程包含以下2個(gè)組件:
(1) CloudHub:云端通訊接口模塊。一個(gè)Web套接字服務(wù)器,負(fù)責(zé)監(jiān)視云端的更改、緩存以及向EdgeHub發(fā)送消息。
(2) EdgeController:管理邊緣節(jié)點(diǎn)。它是一個(gè)擴(kuò)展的Kubernetes控制器,管理邊緣節(jié)點(diǎn)和pod元數(shù)據(jù),以便數(shù)據(jù)可以面向特定的邊緣節(jié)點(diǎn)。
Kubernetes maser運(yùn)行在云端,用戶可以直接通過kubectl命令行在云端管理邊緣節(jié)點(diǎn)、設(shè)備和應(yīng)用,使用習(xí)慣與Kubernetes原生的完全一致。通過上述分析可見,KubeEdge在云邊協(xié)同運(yùn)算部署上已經(jīng)具備明顯的優(yōu)勢:
(1) 邊緣計(jì)算:在邊緣運(yùn)行業(yè)務(wù)邏輯的情況下,可以在生成數(shù)據(jù)的地方本地保護(hù)和處理更大的數(shù)據(jù)量。這減少了邊緣和云之間的網(wǎng)絡(luò)帶寬需求和消耗。這提高了響應(yīng)能力,降低了成本,并保護(hù)了客戶的數(shù)據(jù)隱私。
(2) 簡化開發(fā):開發(fā)人員可以編寫常規(guī)的基于HTTP或MQTT的應(yīng)用程序,將這些應(yīng)用程序裝入容器,并在任何合適的地方(無論是邊緣還是云中)運(yùn)行它們。
(3) Kubernetes本地支持:通過KubeEdge,用戶可以在邊緣節(jié)點(diǎn)上協(xié)調(diào)應(yīng)用程序、管理設(shè)備并監(jiān)視應(yīng)用程序和設(shè)備狀態(tài),就像云中的Kubernetes集群一樣。
(4) 豐富的應(yīng)用:將現(xiàn)有的復(fù)雜機(jī)器學(xué)習(xí)、圖像識(shí)別、事件處理等高級(jí)應(yīng)用程序輕松部署到邊緣。
3 在移動(dòng)邊緣計(jì)算場景下的技術(shù)架構(gòu)
上一節(jié)介紹了KubeEdge的基本技術(shù)框架,可以看到未來其具有廣闊的應(yīng)用空間。當(dāng)前的移動(dòng)核心網(wǎng)絡(luò)或者廣域網(wǎng)受時(shí)延、抖動(dòng)、擁塞等問題的制約,移動(dòng)云計(jì)算不能夠滿足時(shí)延敏感任務(wù)的網(wǎng)絡(luò)要求。為了去除核心網(wǎng)的劣勢帶來的影響,歐洲電信標(biāo)準(zhǔn)協(xié)會(huì)(ETSI)提出將計(jì)算資源、存儲(chǔ)資源轉(zhuǎn)移到距離移動(dòng)用戶最近的移動(dòng)網(wǎng)絡(luò)邊緣的方式,也就是將移動(dòng)邊緣計(jì)算定義為在移動(dòng)網(wǎng)絡(luò)的邊緣向應(yīng)用程序開發(fā)人員和內(nèi)容提供商提供云計(jì)算服務(wù)和低時(shí)延、高帶寬、邊緣網(wǎng)絡(luò)信息開放的服務(wù)環(huán)境[9]。
2017 年,ETSI將之升級(jí)為Multi-access Edge Computing以滿足5G、Wi-Fi、固網(wǎng)多接入的需求,在其白皮書中[10]提出一種5G網(wǎng)絡(luò)部署MEC的方案,具體如圖2所示。
圖中的虛擬化架構(gòu)完全可以用KubeEdge技術(shù)替代,相比于諸虛擬化技術(shù),具有如下優(yōu)勢:啟動(dòng)和卸載速度快,容器的啟動(dòng)和卸載速度比虛擬機(jī)快得多;鏡像小,容器鏡像在磁盤上占用的空間比虛擬機(jī)鏡像要小很多;自包含,容器鏡像包含業(yè)務(wù)實(shí)現(xiàn)邏輯以及運(yùn)行依賴,使容器在跨平臺(tái)遷移過程中,具有更好的一致性;資源利用動(dòng)態(tài)變化,容器的資源利用是動(dòng)態(tài)變化的;部署密度大,容器的部署密度要比虛擬機(jī)大很多。通過仿真實(shí)驗(yàn)驗(yàn)證,KubeEdge平臺(tái)占用內(nèi)存50M左右,CPU(單核)2%~10%。由此可見,使用KubeEdge平臺(tái)能大大減少M(fèi)EC場景下的資源消耗。
4 總結(jié)
移動(dòng)邊緣計(jì)算提供了一個(gè)新的生態(tài)系統(tǒng)和價(jià)值鏈。運(yùn)營商可以向第三方開放無線接入網(wǎng)絡(luò)邊緣,允許他們靈活快速地向移動(dòng)用戶、企業(yè)和垂直細(xì)分市場部署創(chuàng)新的應(yīng)用程序和服務(wù)。KubeEdge開源后,依托社區(qū)協(xié)作和生態(tài)系統(tǒng)的構(gòu)建,將成為云邊協(xié)同領(lǐng)域的重要平臺(tái)。在未來,KubeEdge將會(huì)進(jìn)一步滿足以下功能:基于Istio的服務(wù)使微服務(wù)可以在網(wǎng)格中自由通信;提高Kubedge基礎(chǔ)設(shè)施的性能和可靠性;在邊緣啟用函數(shù)即服務(wù)的功能;邊緣節(jié)點(diǎn)支持更多類型的設(shè)備協(xié)議,如AMQP、藍(lán)牙、ZigBee等;評(píng)估并啟用具有數(shù)千個(gè)邊緣節(jié)點(diǎn)和數(shù)百萬個(gè)設(shè)備的更大規(guī)模邊緣集群;允許將應(yīng)用程序智能調(diào)度到大型邊緣群集;數(shù)據(jù)管理/分析框架。
參考文獻(xiàn)
[1] Armbrust M,F(xiàn)ox A,Griffith R,et al. A view of cloud computing[J].Communications of the ACM,2010,53(4):50-58.
[2] 蒲世亮, 袁婷婷. 基于云邊融合的物聯(lián)網(wǎng)智能服務(wù)架構(gòu)探討[J]. 智能物聯(lián)技術(shù), 2018, 1(1):7-12.
[3] 施巍松, 孫輝, 曹杰, 等. 邊緣計(jì)算:萬物互聯(lián)時(shí)代新型計(jì)算模型[J]. 計(jì)算機(jī)研究與發(fā)展, 2017(5):907-924.
[4] Networking C V. Cisco Global Cloud Index: Forecast and Methodology, 2016—2021 White Paper[EB/OL]. 2019.3 https://www.cisco.com/c/en/us/solutions/collateral/service-provider/global-cloud-index-gci/white-paper-c11-738085.html
[5] 施巍松, 張星洲, 王一帆, 等. 邊緣計(jì)算:現(xiàn)狀與展望[J]. 計(jì)算機(jī)研究與發(fā)展, 2019, 56(1):73-93.
[6] 徐恩慶,董恩然. 云計(jì)算與邊緣計(jì)算協(xié)同發(fā)展的探索與實(shí)踐[J].通信世界,2019,801(9):46-47.
[7] Edge Captain. Kubernetes在邊緣計(jì)算場景的探索[J].架構(gòu)師,2019(5):36-49.
[8] Networking CV. KubeEdges documentation. 2019.3 https://docs.kubeedge.io/en/latest/.
[9] Simsek M, Aijaz A, Dohler M, et al. The 5G-Enabled Tactile Internet: Applications, requirements, and architecture[C]// IEEE Wireless Communications & Networking Conference. IEEE, 2016. Doha, Qatar(2016.4.3-2016.4.6)
[10] ETSI.etsi_wp28_mec_in_5G_FINAL.pdf.Integrated MEC deployment in 5G network[EB/OL].(2018-06). https://www.etsi.org/images/files/ETSIWhite Papers/ etsi_wp28_mec_in_5G_FINAL.pdf
(收稿日期: 2019.07.10)
作者簡介:陳衛(wèi)(1978-),男,碩士,工程師,研究方向:IPTV/互動(dòng)電視新媒體領(lǐng)域技術(shù)研發(fā)與應(yīng)用工作,在音視頻技術(shù)應(yīng)用、互動(dòng)電視前端建設(shè)、融合業(yè)務(wù)運(yùn)營等領(lǐng)域有較深入研究。
鄭煒(1983-),男,碩士,工程師,研究方向:IPTV/互動(dòng)電視新媒體領(lǐng)域技術(shù)架構(gòu)工作,在云計(jì)算與移動(dòng)互聯(lián)網(wǎng)軟件,音視頻編解碼、通信技術(shù)等方面有深入研究。
湯毅(1965-),男,碩士,高級(jí)工程師,研究方向:流分析、數(shù)字電影等新媒體領(lǐng)域技術(shù)研發(fā)與應(yīng)用工作,在數(shù)字版權(quán)保護(hù)、大數(shù)據(jù)分析、信道編碼等方面有較深入研究。