IOT的快速發(fā)展使得網(wǎng)絡(luò)的邊緣產(chǎn)生大量的數(shù)據(jù),這些數(shù)據(jù)如果完全依賴于云中心去處理,將會(huì)占用大量的網(wǎng)絡(luò)帶寬,并使得網(wǎng)絡(luò)帶寬的瓶頸成為整個(gè)系統(tǒng)的性能瓶頸。如果能在數(shù)據(jù)源處理好數(shù)據(jù),只向云中心提交處理數(shù)據(jù)的結(jié)果,系統(tǒng)性能會(huì)獲得進(jìn)一步提高。邊緣計(jì)算應(yīng)需求而出現(xiàn)。
邊緣計(jì)算中的邊緣(edge)指的是網(wǎng)絡(luò)邊緣上的計(jì)算和存儲(chǔ)資源,無論是從地理距離還是網(wǎng)絡(luò)距離上來看都比云中心更貼近用戶。邊緣計(jì)算模式,通過在用戶鄰近區(qū)域提供計(jì)算服務(wù),利用邊緣資源為用戶提供大量服務(wù)或功能接口,大大減少上傳至云數(shù)據(jù)中心的數(shù)據(jù)量,有效減少網(wǎng)絡(luò)和云計(jì)算中心資源壓力。
邊緣計(jì)算的優(yōu)點(diǎn):(1)大量的計(jì)算任務(wù)能夠在數(shù)據(jù)產(chǎn)生的源頭附近處理,緩解網(wǎng)絡(luò)帶寬和數(shù)據(jù)中心壓力。(2)任務(wù)在邊緣完成處理的,用戶獲得響應(yīng)的速度會(huì)更快。(3)在家庭或者其他相對(duì)隱私的環(huán)境而言,數(shù)據(jù)不需要上傳到云中心,實(shí)現(xiàn)隱私數(shù)據(jù)的保護(hù)。
在邊緣計(jì)算環(huán)境下,數(shù)據(jù)具有異構(gòu)性且數(shù)據(jù)量較大,數(shù)據(jù)處理的應(yīng)用程序具有多樣性,不同應(yīng)用程序所關(guān)聯(lián)的計(jì)算任務(wù)又不盡相同,面向不同應(yīng)用或場景的邊緣計(jì)算系統(tǒng)所要實(shí)現(xiàn)的功能有較大差異性。所以,邊緣計(jì)算平臺(tái)對(duì)邊緣計(jì)算領(lǐng)域的推廣和發(fā)展有著重要的意義和影響。本文將聚焦于目前業(yè)界主流的開源邊緣計(jì)算平臺(tái)進(jìn)行探討。
整體而言,邊緣領(lǐng)域的開源項(xiàng)目尚處于起步階段。Linux基金會(huì)和OpenStack基金會(huì)是主要推動(dòng)者。其中,(1)Linux基金會(huì)主推CORD、Akraino項(xiàng)目,ONAP、OPNFV等項(xiàng)目也開始開展相關(guān)工作;Linux基金會(huì)所推出的LF Edge項(xiàng)目,意在推動(dòng)為互聯(lián)網(wǎng)邊緣設(shè)備引入通用秩序和互操作性,致力于創(chuàng)建支持互操作性的邊緣計(jì)算開放框架,并兼容任何硬件、芯片、云或操作系統(tǒng)。(2)OpenStack基金會(huì)除了在OpenStack項(xiàng)目成立Edge Computing WG、F/E/MDC SIG進(jìn)行需求分析之外,最新成立獨(dú)立的Airship、StarlingX項(xiàng)目,推動(dòng)邊緣計(jì)算發(fā)展。
各邊緣計(jì)算平臺(tái)的差異可從以下方面進(jìn)行對(duì)比和分析。
(1)設(shè)計(jì)目標(biāo)。邊緣計(jì)算平臺(tái)的設(shè)計(jì)目標(biāo)反映了其所針對(duì)解決的問題領(lǐng)域,并對(duì)平臺(tái)的系統(tǒng)結(jié)構(gòu)和功能設(shè)計(jì)有關(guān)鍵性的影響。
(2)目標(biāo)用戶。在現(xiàn)有的各種邊緣計(jì)算平臺(tái)中,有部分平臺(tái)是提供給網(wǎng)絡(luò)運(yùn)營商以部署邊緣云服務(wù),有的邊緣計(jì)算平臺(tái)則沒有限制,普通用戶可以自行在邊緣設(shè)備上部署使用。
(3)可擴(kuò)展性。為滿足用戶應(yīng)用動(dòng)態(tài)增加和刪除的需求,邊緣計(jì)算平臺(tái)需要具有良好的可擴(kuò)展性。目前,虛擬機(jī)技術(shù)和容器技術(shù)常被用于支持可擴(kuò)展性。
(4)系統(tǒng)特點(diǎn)。面向不同應(yīng)用領(lǐng)域的邊緣計(jì)算開源平臺(tái)具有不同的特點(diǎn),而這些特點(diǎn)能為不同的邊緣計(jì)算應(yīng)用的開發(fā)或部署帶來方便。
(5)應(yīng)用場景:常見的應(yīng)用領(lǐng)域包括智能交通、智能工廠和智能家居等多種場景,還有增強(qiáng)現(xiàn)實(shí)(AR)/虛擬現(xiàn)實(shí)(VR)應(yīng)用、邊緣視頻處理和無人車等對(duì)響應(yīng)時(shí)延敏感的應(yīng)用場景。
根據(jù)邊緣計(jì)算平臺(tái)的設(shè)計(jì)目標(biāo)和部署方式,可將邊緣計(jì)算開源平臺(tái)大致分為3類。
① 物聯(lián)網(wǎng)用戶側(cè)邊緣計(jì)算開源平臺(tái):主要面向IoT場景的,部署在用戶側(cè)的物聯(lián)網(wǎng)邊緣平臺(tái),致力于解決在開發(fā)和部署物聯(lián)網(wǎng)應(yīng)用的過程中存在的問題,例如設(shè)備接入方式多樣性問題等。這些平臺(tái)部署于網(wǎng)關(guān)、路由器和交換機(jī)等邊緣設(shè)備,為物聯(lián)網(wǎng)邊緣計(jì)算應(yīng)用提供支持。
② 網(wǎng)絡(luò)邊緣側(cè)邊緣計(jì)算開源平臺(tái):著眼于優(yōu)化或重建網(wǎng)絡(luò)邊緣的基礎(chǔ)設(shè)施以實(shí)現(xiàn)在網(wǎng)絡(luò)邊緣構(gòu)建數(shù)據(jù)中心,并提供類似云中心的服務(wù)。網(wǎng)絡(luò)運(yùn)營商是此類邊緣計(jì)算的主要推動(dòng)者。
③云邊協(xié)同邊緣計(jì)算開源平臺(tái):基于“云邊融合”的理念,致力于將云服務(wù)能力拓展至網(wǎng)絡(luò)邊緣。云計(jì)算服務(wù)提供商是此類邊緣計(jì)算的重要推動(dòng)者之一。
依據(jù)以上分類標(biāo)準(zhǔn),將本文歸納的當(dāng)前業(yè)界主流的邊緣云開源項(xiàng)目分類如表1所示。
表1 邊緣云開源項(xiàng)目分類表
下文將根據(jù)以上的分類,簡要?dú)w納當(dāng)前主流的開源平臺(tái)的定位、架構(gòu)及組件。
(1)EdgeX Foundry
EdgeXFoundry是一個(gè)面向工業(yè)物聯(lián)網(wǎng)邊緣計(jì)算開發(fā)的標(biāo)準(zhǔn)化互操作性框架,部署于路由器和交換機(jī)等邊緣設(shè)備上,為各種傳感器、設(shè)備或其他物聯(lián)網(wǎng)器件提供即插即用功能并管理它們,進(jìn)而收集和分析它們的數(shù)據(jù),或者導(dǎo)出至邊緣計(jì)算應(yīng)用或云計(jì)算中心做進(jìn)一步處理。
EdgeX Foundry的設(shè)計(jì)滿足硬件和操作系統(tǒng)無關(guān)性,并采用微服務(wù)架構(gòu),為每個(gè)接入的設(shè)備提供通用的RestfulAPI以操控該設(shè)備,便于大規(guī)模地監(jiān)測控制物聯(lián)網(wǎng)設(shè)備,滿足物聯(lián)網(wǎng)應(yīng)用的需求。
EdgeX Foundry架構(gòu)如圖1所示。
圖1 EdgeXFoundry架構(gòu)圖
圖1展示了EdgeX Foundry的架構(gòu)。在圖中的最下方是“南側(cè)”,指的是所有物聯(lián)網(wǎng)器件,以及與這些設(shè)備,傳感器或其他物聯(lián)網(wǎng)器件直接通信的邊緣網(wǎng)絡(luò)。在圖的最上方是“北側(cè)”,指的是云計(jì)算中心或企業(yè)系統(tǒng),以及與云中心通信的網(wǎng)絡(luò)部分。南側(cè)是數(shù)據(jù)產(chǎn)生源,而北側(cè)收集來自南側(cè)的數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ)、聚合和分析。如上圖所示,EdgeXFoundry 位于 南側(cè)和北側(cè)兩者之間,由一系列微服務(wù)組成,而這些微服務(wù)可以被分成 4個(gè)服務(wù)層和2個(gè)底層增強(qiáng)系統(tǒng)服務(wù)。微服務(wù)之間通過一套通用的Restful應(yīng)用程序編程接口(API)進(jìn)行通信。
(2)Fledge
Fledge由Dianomic公司提供,以前被稱為“Fog LAMP”。Fledge是面向工業(yè)領(lǐng)域的開源框架和社區(qū),重點(diǎn)關(guān)注關(guān)鍵操作,預(yù)測性維護(hù),態(tài)勢(shì)感知和安全性。Fledge的架構(gòu)旨在將工業(yè)物聯(lián)網(wǎng)(IIoT),傳感器和現(xiàn)代機(jī)器與云以及現(xiàn)有的工業(yè)“棕色領(lǐng)域”系統(tǒng)、DCS(分布式控制系統(tǒng))、PLC(程序邏輯控制器)和SCADA(監(jiān)督控制和數(shù)據(jù)))集成在一起。所有這些系統(tǒng)都共享一組通用的管理和應(yīng)用程序API。
在構(gòu)建IoT應(yīng)用程序時(shí),F(xiàn)ledge的現(xiàn)代可插拔體系結(jié)構(gòu)消除了工廠、工廠和礦山中經(jīng)常出現(xiàn)的數(shù)據(jù)孤島。通過使用一套一致的RESTful API來開發(fā),管理和保護(hù)IIoT應(yīng)用程序,F(xiàn)ledge創(chuàng)建了一個(gè)統(tǒng)一的解決方案。
Fledge架構(gòu)如圖2所示。
圖2 Fledgy架構(gòu)圖
Fledge的工作流程:① 從傳感器終端上收集數(shù)據(jù);② 對(duì)所收集數(shù)據(jù)進(jìn)行聚類分析;③ 對(duì)數(shù)據(jù)進(jìn)行關(guān)鍵字篩選并傳送,同時(shí)對(duì)數(shù)據(jù)進(jìn)行保護(hù);④ 邊緣化無法分析的數(shù)據(jù);⑤ 對(duì)多個(gè)目的終端提交整理好的數(shù)據(jù)。
Fledge與Project EVE緊密合作,該項(xiàng)目為Fledge應(yīng)用程序和服務(wù)提供系統(tǒng)和編排服務(wù)以及容器運(yùn)行時(shí)。在擴(kuò)展規(guī)模時(shí),工業(yè)運(yùn)營商可以共同構(gòu)建、管理、保護(hù)和支持其所有非SCADA,非DCS連接的機(jī)器,IIoT和傳感器。Fledge還與Akraino Edge Stack集成在一起,因?yàn)檫@兩個(gè)項(xiàng)目都支持推出5G和專用LTE網(wǎng)絡(luò)。
(3)IoFog
Eclipse ioFog是一個(gè)完整的邊緣計(jì)算平臺(tái),提供了在企業(yè)級(jí)邊緣構(gòu)建和運(yùn)行應(yīng)用程序所需的所有組件。
ioFog的基本架構(gòu)示意圖如圖3所示。
圖3 ioFog的基本架構(gòu)
控制器Controller:ioFog控制器是每個(gè)邊緣計(jì)算網(wǎng)絡(luò)的核心??刂破鲄f(xié)調(diào)所有代理,微服務(wù),路由器,用戶等。Controller可以在運(yùn)行代理的所有邊緣節(jié)點(diǎn)均可通過網(wǎng)絡(luò)訪問的任何兼容硬件上運(yùn)行。
代理商:ioFog代理是邊緣計(jì)算網(wǎng)絡(luò)的工作人員。每個(gè)代理都允許運(yùn)行微服務(wù)、裝載卷、管理資源等。ioFog代理直接向控制器報(bào)告,每個(gè)代理都將微服務(wù)作為Docker容器進(jìn)行管理,并負(fù)責(zé)管理其使用壽命以及管理這些容器的Docker映像。代理通常將作為本機(jī)守護(hù)程序部署在邊緣上。ioFog代理支持多種體系結(jié)構(gòu)和平臺(tái),并且ioFog社區(qū)可以根據(jù)Controller to Agent REST API實(shí)現(xiàn)自己的代理。
微服務(wù):邊緣計(jì)算中最后一個(gè)絕對(duì)必要的組件是微服務(wù)。它們本質(zhì)上是作為ioFog Agents上的Docker容器運(yùn)行的小型應(yīng)用程序。這些微服務(wù)中的許多可以在單個(gè)代理上運(yùn)行。
4.2.1 Akraino
Akraino Edge Stack是一個(gè)面向高性能邊緣云服務(wù)的開源項(xiàng)目,并為邊緣基礎(chǔ)設(shè)施提供整體的解決方案,提供一組開放式基礎(chǔ)架構(gòu)和應(yīng)用程序軟件棧,涵蓋了供提供商和企業(yè)邊緣域使用的多種使用案例,包括5G,AI,Edge IaaS / PaaS,IoT。這些軟件棧是由Akraino社區(qū)創(chuàng)建的,專門針對(duì)各種形式的邊緣。所有這些軟件棧的統(tǒng)一之處在于它們已經(jīng)由社區(qū)進(jìn)行了測試,可以按原樣使用,或者用作自定義新邊緣軟件棧的起點(diǎn)。
Akraino Edge Stack 致力于優(yōu)化邊緣基礎(chǔ)設(shè)施的網(wǎng)絡(luò)構(gòu)建和管理方式,以滿足邊緣計(jì)算云服務(wù)的要求,比如高性能、低延遲和可擴(kuò)展性等。Akraino Edge Stack項(xiàng)目涉及的范圍從基礎(chǔ)設(shè)施延伸至邊緣計(jì)算應(yīng)用,其范圍可以劃分為3個(gè)層面。
Akraino Edge Stack架構(gòu)如圖4所示。
圖4 Akraino架構(gòu)圖
在最上面的應(yīng)用層面,AkrainoEdge Stack致力于打造邊緣計(jì)算應(yīng)用程序的生態(tài)系 統(tǒng)以促進(jìn)應(yīng)用程序的開發(fā)。中間層面著眼于開發(fā)中間件和框架以支持上面層次的邊緣計(jì)算應(yīng)用。在這個(gè)層面中,AkrainoEdge Stack 將開發(fā)API 和框架以接入現(xiàn)有互補(bǔ)性的開源邊緣計(jì)算項(xiàng)目,例如上述的面向物聯(lián)網(wǎng)的互操作性框架EdgeX Foundry,最大化利用開源社區(qū)的現(xiàn)有成果。在最下面的基礎(chǔ)設(shè)施層面中,AkrainoEdge Stack將提供一套開源軟件棧用于優(yōu)化基礎(chǔ)設(shè)施。此外,Akraino Edge Stack為每種使用案例提供藍(lán)圖以構(gòu)建一個(gè)邊緣計(jì)算平臺(tái)。每個(gè)藍(lán)圖是涵蓋上述3個(gè)層次的聲明性配置,其中包括對(duì)硬件、各層面的支撐軟件、管理工具和交付點(diǎn)等的聲明。
4.2.2 CORD
CORD(Central Office Re-architected as a Datacenter,端局的數(shù)據(jù)中心化重構(gòu))綜合NFV、SDN、云計(jì)算等技術(shù),將數(shù)據(jù)中心生態(tài)和云計(jì)算靈活性引入電信COs,構(gòu)建CORD開放參考平臺(tái),使得運(yùn)營商管理員能夠基于顯示模型語言對(duì)COs進(jìn)行管理,并為客戶服務(wù)進(jìn)行靈活、實(shí)時(shí)的配置分發(fā)。
CORD利用數(shù)據(jù)中心中的leaf-spine分布式核心網(wǎng)絡(luò)架構(gòu)和白盒設(shè)備來重構(gòu)運(yùn)營商的端局,其中l(wèi)eaf葉節(jié)點(diǎn)負(fù)責(zé)連接服務(wù)器和網(wǎng)絡(luò)設(shè)備,spine針節(jié)點(diǎn)負(fù)責(zé)連接交換機(jī),保證節(jié)點(diǎn)內(nèi)的任意兩個(gè)端口之間提供延遲非常低的無阻塞性能,從而實(shí)現(xiàn)從接入到云平臺(tái)的敏捷服務(wù)。
CORD參考架構(gòu)是一個(gè)對(duì)多種開源技術(shù)集成的架構(gòu),如圖5所示。其中主要包括硬件和軟件兩大模塊。
(1)底層是商業(yè)化硬件fabric,由通用服務(wù)器和白盒交換機(jī)組成。交換機(jī)fabiric采用leaf-spine拓?fù)洌瑢?shí)現(xiàn)東西向流量優(yōu)化。
圖5 CORD架構(gòu)圖
(2)上層是軟件模塊,包括4個(gè)開源項(xiàng)目組件:
① OpenStack:集群管理,提供核心IaaS能力,負(fù)責(zé)創(chuàng)建和部署虛機(jī)及虛擬化網(wǎng)絡(luò)。
② Docker:提供基于容器的服務(wù)部署和互聯(lián)方式,同時(shí),也是實(shí)現(xiàn)CORD系統(tǒng)本身部署的重要方式。
③ ONOS:網(wǎng)絡(luò)操作系統(tǒng),管理underlay白盒交換矩陣,托管控制面應(yīng)用,實(shí)現(xiàn)虛擬網(wǎng)絡(luò)與underlay網(wǎng)絡(luò)的關(guān)聯(lián)。
④ XOS:業(yè)務(wù)構(gòu)建和分發(fā)框架,統(tǒng)一了基礎(chǔ)設(shè)施服務(wù)(OpenStack提供)、控制面服務(wù)(ONOS提供)、及數(shù)據(jù)面和云服務(wù)(運(yùn)行在虛機(jī)和容器中)。
4.2.3 StarlingX
StarlingX是一個(gè)面向邊緣計(jì)算的OpenStack集成平臺(tái),主要包括如下子項(xiàng)目:Con fig project、Fault project、HA project、GUI project、Metal project、NFV project、Update project、Distributed Cloud project。
StarlingX由OpenStack Edge Working Group與Linux Akraino Edge Stack共同推進(jìn),計(jì)劃2018年發(fā)布1個(gè)版本,2019年以后每年發(fā)布3個(gè)版本。
StarlingX項(xiàng)目目標(biāo):高可用、健壯;高性能、低時(shí)延;高安全性;涵蓋單服務(wù)器到100+服務(wù)器部署場景;降低StarlingX基礎(chǔ)設(shè)施占地空間;滿足所有邊緣計(jì)算需求;簡單、易用。
StarlingX主要包括6大組件,用于管理OpenStack裸金屬部署環(huán)境,示意圖如圖6所示。
圖6 StarlingX架構(gòu)圖
(1)配置管理Con figuration Management:提供主機(jī)安裝Host Installation、資源發(fā)現(xiàn)和主機(jī)配置Inventory Discovery and Host Con figuration(該功能未來將轉(zhuǎn)移至主機(jī)管理模塊);提供系統(tǒng)級(jí)配置,及StarlingX平臺(tái)服務(wù)配置;為所有核心組件提供API、Horizon、CLI服務(wù)。
(2)主機(jī)管理Host Management:提供主機(jī)生命周期管理、運(yùn)營管理;提供主機(jī)故障監(jiān)控告警,并觸發(fā)故障恢復(fù)處理。
(3)服務(wù)管理Service Management:為控制節(jié)點(diǎn)的StarlingX和OpenStack服務(wù)提供高可用集群管理。
(4)軟件管理Software Management:軟件補(bǔ)丁管理和部署;軟件版本升級(jí)管理。
(5) 故 障 管 理 Fault Management: 為 其 他StarlingX組件提供告警和日志報(bào)告服務(wù)。
(6)基礎(chǔ)設(shè)施管理Infrastructure Management:提供VM高可用管理;提供軟件補(bǔ)丁和升級(jí)編排服務(wù)。
(1)Baetyl(OpenEdge)
OpenEdge是百度開源的開放邊緣計(jì)算平臺(tái),后面改名為Baetyl。2019年9月23日,百度智能云宣布將百度智能邊緣計(jì)算框架Baetyl捐贈(zèng)給Linux Foundation Edge社區(qū)。
Baetyl(發(fā)音為“Beetle”)提供了一種用于邊緣計(jì)算的通用平臺(tái),該平臺(tái)將不同類型的硬件設(shè)施和設(shè)備功能操縱到標(biāo)準(zhǔn)化的容器運(yùn)行時(shí)環(huán)境和API中,從而可以通過遠(yuǎn)程控制臺(tái)高效地管理應(yīng)用程序。Baetyl還為邊緣操作系統(tǒng)配備了適當(dāng)?shù)墓ぞ哝溨С?,并通過一組內(nèi)置服務(wù)和API降低了開發(fā)邊緣計(jì)算的難度,并計(jì)劃在將來提供圖形化IDE。
Baetyl和智能邊緣BIE(Baidu-IntelliEdge)云端管理套件配合使用,通過在云端進(jìn)行智能邊緣核心設(shè)備的建立、存儲(chǔ)卷創(chuàng)建、服務(wù)創(chuàng)建、函數(shù)編寫,然后生成配置文件下發(fā)至 Baetyl 本地運(yùn)行包,整體可達(dá)到邊緣計(jì)算、云端管理、邊云協(xié)同的效果,滿足各種邊緣計(jì)算場景。
Baetyl架構(gòu)如圖7所示。在架構(gòu)設(shè)計(jì)上,Baetyl 一方面推行模塊化,拆分各項(xiàng)主要功能,確保每一項(xiàng)功能都是一個(gè)獨(dú)立的模塊,整體由主程序控制啟動(dòng)、退出,確保各項(xiàng)子功能模塊運(yùn)行互不依賴、互不影響;總體上來說,推行模塊化的設(shè)計(jì)模式,可以充分滿足用戶按需使用、按需部署的切實(shí)要求;另一方面,Baetyl 在設(shè)計(jì)上還采用全面容器化的設(shè)計(jì)思路,基于各模塊的鏡像可以在支持Docker 的各類操作系統(tǒng)上進(jìn)行一鍵式構(gòu)建,依托 Docker跨平臺(tái)支持的特性,確保Baetyl在各系統(tǒng)、平臺(tái)的環(huán)境一致;此外,Baetyl還針對(duì)Docker容器化模式賦予其資源隔離與限制能力,精確分配各運(yùn)行實(shí)例的CPU、內(nèi)存等資源,提升資源利用效率。
圖7 Baetyl架構(gòu)圖
(2)Azure IoT Edge
Azure IoT Edge是基于物聯(lián)網(wǎng)(IoT)中心構(gòu)建的IoT服務(wù),是一種混合云和邊緣的邊緣計(jì)算框架,旨在將云功能拓展至如路由器和交換機(jī)等具備計(jì)算能力的邊緣設(shè)備上,以獲得更低的處理時(shí)延和實(shí)時(shí)反饋。
Azure IoT Edge架構(gòu)如圖8所示,AzureIoTEdge由IoTEdge模塊、IoTEdge運(yùn)行時(shí)和IoTEdge云界面組成,前兩者運(yùn)行在邊緣設(shè)備上,后者則是一個(gè)在Azure云上提供服務(wù)的管理界面。
圖8 Azure IoT Edge架構(gòu)圖
① IoTEdge模塊。IoTEdge模塊對(duì)應(yīng)于用戶的邊緣計(jì)算應(yīng)用程序。一個(gè)模塊鏡像即一個(gè)Docker鏡像,模塊里包含用戶的應(yīng)用代碼,而一個(gè)模塊實(shí)例就是一個(gè)運(yùn)行著對(duì)應(yīng)的模塊鏡像的Docker容器?;谌萜骷夹g(shù),IoTEdge具備可擴(kuò)展性,用戶可動(dòng)態(tài)添加或刪除邊緣計(jì)算應(yīng)用。由于相同的編程模型,Azure機(jī)器學(xué)習(xí)和Azure數(shù)據(jù)流分析等Azure云服務(wù)也可以部署到IoTEdge模塊,此特性便于在網(wǎng)絡(luò)邊緣部署復(fù)雜的人工智能應(yīng)用,加快了開發(fā)過程。
② IoTEdge運(yùn)行時(shí)。IoTEdge運(yùn)行時(shí)由IoTEdge中心和IoTEdge代理2個(gè)組件構(gòu)成,前者負(fù)責(zé)通信功能,后者負(fù)責(zé)部署和管理IoTEdge模塊,并監(jiān)測控制模塊的運(yùn)行。IoT中心是在Azure云上的消息管理中心,IoT Edge中心與IoT中心連接并充當(dāng)其代理。IoT Edge中心通過MQTT、高級(jí)消息隊(duì)列協(xié)議(AMQP)和HTTPS協(xié)議獲取來自傳感器和設(shè)備的數(shù)據(jù),實(shí)現(xiàn)設(shè)備接入的功能。此外,IoT Edge中心作為消息中轉(zhuǎn)站,連接IoTEdge模塊之間的消息通信。IoTEdge代理從IoTHub接收IoTEdge模塊的部署信息,實(shí)例化該模塊,并保證該模塊的正常運(yùn)行,如對(duì)故障模塊進(jìn)行重啟,并將各模塊的運(yùn)行狀態(tài)報(bào)告至IoT中心。
③ IoT云界面。云界面提供了設(shè)備管理的功能。用戶通過云界面進(jìn)行添加設(shè)備,部署應(yīng)用和監(jiān)測控制設(shè)備等操作,為用戶大規(guī)模部署邊緣計(jì)算應(yīng)用提供了方便。
(3)CNCF KubeEdge
KubeEdge是首個(gè)基于Kubernetes擴(kuò)展的,提供云邊協(xié)同能力的開放式智能邊緣平臺(tái),也是CNCF在智能邊緣領(lǐng)域的首個(gè)正式項(xiàng)目。它構(gòu)建在Kubernetes之上,為網(wǎng)絡(luò)和應(yīng)用程序提供核心基礎(chǔ)架構(gòu)支持,并在云端和邊緣端部署應(yīng)用,同步元數(shù)據(jù)。100%兼容K8S API,可以使用K8S API原語管理邊緣節(jié)點(diǎn)和設(shè)備。KubeEdge 還支持MQTT協(xié)議,允許開發(fā)人員編寫客戶邏輯,并在邊緣端啟用設(shè)備通信的資源約束。
KubeEdge架構(gòu)如圖9所示,清晰地分為3層,分別是:云端、邊緣和設(shè)備層,這是一個(gè)從云到邊緣再到設(shè)備的完整開源邊緣云平臺(tái)。
圖9 KubeEdge的架構(gòu)
KubeEdge 由以下組件構(gòu)成。
云端通信:CloudHub:CloudHub是一個(gè)Web Socket服務(wù)端,用于大量的edge端基于websocket或者quic協(xié)議連接上來。負(fù)責(zé)監(jiān)聽云端的變化,緩存并發(fā)送消息到EdgeHub。EdgeHub:是一個(gè)Web Socket客戶端,負(fù)責(zé)將接收到的信息轉(zhuǎn)發(fā)到各edge端的模塊處理;同時(shí)將來自個(gè)edge端模塊的消息通過隧道發(fā)送到cloud端。提供可靠和高效的云邊信息同步。
云上部分:EdgeController:用于控制 Kubernetes API Server與邊緣的節(jié)點(diǎn)、應(yīng)用和配置的狀態(tài)同步。Dev iceController:DeviceController是一個(gè)擴(kuò)展的Kubernetes控制器,管理邊緣設(shè)備,確保設(shè)備信息、設(shè)備狀態(tài)的云邊同步。
邊緣部分:MetaManager:MetaManager 模塊后端對(duì)應(yīng)一個(gè)本地的數(shù)據(jù)庫(sqlLite),是邊緣節(jié)點(diǎn)自治能力的關(guān)鍵;Edged:是運(yùn)行在邊緣節(jié)點(diǎn)的代理,用于管理容器化的應(yīng)用程序。算是個(gè)重新開發(fā)的輕量化Kubelet,實(shí)現(xiàn)Pod,Volume,Node等Kubernetes資源對(duì)象的生命周期管理。EventBus:EventBus是一個(gè)與MQTT服務(wù)器(mosquitto)交互的MQTT客戶端,為其他組件提供訂閱和發(fā)布功能。ServiceBus:ServiceBus是一個(gè)運(yùn)行在邊緣的HTTP客戶端,接受來自云上服務(wù)的請(qǐng)求,與運(yùn)行在邊緣端的HTTP服務(wù)器交互,提供了云上服務(wù)通過HTTP協(xié)議訪問邊緣端HTTP服務(wù)器的能力。DeviceTwin:DeviceTwin負(fù)責(zé)存儲(chǔ)設(shè)備狀態(tài)并將設(shè)備狀態(tài)同步到云,它還為應(yīng)用程序提供查詢接口。
(4)Link IoT Edge
物聯(lián)網(wǎng)邊緣計(jì)算,又名Link IoT Edge,是阿里云能力在邊緣端的拓展,專為物聯(lián)網(wǎng)開發(fā)者推出,繼承了阿里云安全、存儲(chǔ)、計(jì)算、人工智能的能力,可部署于不同量級(jí)的智能設(shè)備和計(jì)算節(jié)點(diǎn)中,提供穩(wěn)定、安全、多樣的邊緣到IoT設(shè)備的通信連接,同時(shí)可以結(jié)合阿里云的大數(shù)據(jù)、AI學(xué)習(xí)、語音、視頻等能力,打造出云邊端三位一體的計(jì)算體系。此外,Link Edge還支持設(shè)備接入、函數(shù)計(jì)算、規(guī)則引擎、路由轉(zhuǎn)發(fā)、斷網(wǎng)續(xù)傳等功能。
物聯(lián)網(wǎng)邊緣計(jì)算組件主要涉及設(shè)備端、邊緣計(jì)算端和云端3個(gè)部分,架構(gòu)示意圖如圖10所示。
圖10 Link IoT Edge架構(gòu)示意圖
① 設(shè)備端:開發(fā)者使用設(shè)備接入SDK,將非標(biāo)設(shè)備轉(zhuǎn)換成標(biāo)準(zhǔn)物模型,就近接入網(wǎng)關(guān),從而實(shí)現(xiàn)設(shè)備的管理和控制。
② 邊緣計(jì)算端:設(shè)備連接到網(wǎng)關(guān)后,網(wǎng)關(guān)可以實(shí)現(xiàn)設(shè)備數(shù)據(jù)的采集、流轉(zhuǎn)、存儲(chǔ)、分析和上報(bào)設(shè)備數(shù)據(jù)至云端,同時(shí)網(wǎng)關(guān)提供規(guī)則引擎、函數(shù)計(jì)算引擎,方便場景編排和業(yè)務(wù)擴(kuò)展。
③ 云端:設(shè)備數(shù)據(jù)上傳云端后,可以結(jié)合阿里云功能,如大數(shù)據(jù)、AI學(xué)習(xí)等,通過標(biāo)準(zhǔn)API接口,實(shí)現(xiàn)更多功能和應(yīng)用。
從文中歸納的邊緣云開源項(xiàng)目在功能和架構(gòu)上的不同,可進(jìn)一步分類如表2所示。
表2 邊緣云開源項(xiàng)目功能細(xì)分圖
當(dāng)前,邊緣計(jì)算平臺(tái)仍處于快速發(fā)展時(shí)期,結(jié)合對(duì)上文的探討對(duì)其未來的發(fā)展趨勢(shì)分析如下:
(1)面向特定應(yīng)用場景的專用性邊緣計(jì)算平臺(tái)將迅速發(fā)展。目前,智能家居、智能工廠和智慧城市都是受關(guān)注的應(yīng)用場景,如何系統(tǒng)化支持這些場景的功能需求是邊緣計(jì)算平臺(tái)的發(fā)展趨勢(shì)之一。
(2)邊緣計(jì)算平臺(tái)的數(shù)據(jù)安全與隱私保護(hù)問題將變得更加突出。邊緣設(shè)備相互協(xié)作時(shí)的數(shù)據(jù)安全如何保證、邊緣平臺(tái)如何避免暴露用戶的位置隱私信息、尤其是邊緣計(jì)算設(shè)備的計(jì)算資源、存儲(chǔ)能力有限,使得邊緣計(jì)算平臺(tái)的安全防御具有更高的挑戰(zhàn)性。
(3)邊緣計(jì)算平臺(tái)將結(jié)合更多人工智能技術(shù)。目前,以深度學(xué)習(xí)為代表的人工智能技術(shù)發(fā)展十分迅速,但“智能邊緣”的研究才剛剛起步,未來的邊緣計(jì)算平臺(tái)將引入人工智能技術(shù), 實(shí)現(xiàn)邊緣數(shù)據(jù)的智能處理。