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