歡迎您光臨本站 註冊首頁

邊緣計算介紹以及幾款邊緣計算開源平台

←手機掃碼閱讀     admin @ 2019-07-21 , reply:0

邊緣計算中的邊緣(edge)指的是網路邊緣上的計算和存儲資源,這裡的網路邊緣與數據中心相對,無論是從地理距離還是網路距離上來看都更貼近用戶。作為一種新的計算範式,邊緣計算將計算任務部署於接近數據產生源的網路邊緣,利用邊緣資源為用戶提供大量服務或功能介面,大大減少上傳至雲數據中心的數據量,緩解網路帶寬壓力,同時可以更好地解決數據安全和隱私問題。

在邊緣計算環境下,數據具有異構性且數據量較大,數據處理的應用程序具有多樣性,不同應用程序所關聯的計算任務又不盡相同,對於計算任務的管理具有較大的複雜性,而簡單的中間件軟體結構無法有效保證計算任務可行性、應用程序的可靠性以及資源利用的最大化。同時,面向不同應用或場景的邊緣計算系統所要實現的功能有所差異性。因此,邊緣計算平台對邊緣計算領域的推廣和發展有著重要的意義和影響。

01 邊緣計算開源平台概述

邊緣計算系統是一個分散式系統範例,在具體實現過程中需要將其落地到一個計算平台上,各個邊緣平台之間如何相互協作提高效率,如何實現資源的最大利用率,對設計邊緣計算平台、系統和介面帶來挑戰。例如,網路邊緣的計算、存儲和網路資源數量眾多但在空間上分散,如何組織和統一管理這些資源,是一個需要解決的問題。在邊緣計算的場景下,尤其是物聯網,諸如感測器之類的數據源,其軟體和硬體以及傳輸協議等具有多樣性,如何方便有效地從數據源中採集數據也是一個需要考慮的問題。此外,在網路邊緣的計算資源並不豐富的條件下,如何高效地完成數據處理的任務也是一個需要解決的問題。

目前,邊緣計算平台的發展方興未艾。由於針對的問題不同,各邊緣計算平台的設計多種多樣,但也不失一般性,邊緣計算平台的一般性功能框架如圖 1 所示。在該框架中,資源管理功能用於管理網路邊緣的計算、網路和存儲資源。設備接入和數據採集功能分別用於接入設備和從設備中獲取數據。安全管理用於保障來自設備的數據的安全。平台管理功能用於管理設備和監測控制邊緣計算應用的運行情況。

邊緣計算開源平台

圖1-邊緣計算平台一般性功能框架

各邊緣計算平台的差異可從以下方面進行對比和分析:

(1)設計目標。邊緣計算平台的設計目標反映了其所針對解決的問題領域,並對平台的系統結構和功能設計有關鍵性的影響。

(2)目標用戶。在現有的各種邊緣計算平台中,有部分平台是提供給網路運營商以部署邊緣雲服務,有的邊緣計算平台則沒有限制,普通用戶可以自行在邊緣設備上部署使用。

(3)可擴展性。為滿足用戶應用動態增加和刪除的需求,邊緣計算平台需要具有良好的可擴展性。目前,虛擬機技術和容器技術常被用於支持可擴展性。

(4)系統特點。面向不同應用領域的邊緣計算開源平台具有不同的特點,而這些特點能為不同的邊緣計算應用的開發或部署帶來方便。

(5)應用場景:常見的應用領域包括智能交通、智能工廠和智能家居等多種場景,還有增強現實(AR)/虛擬現實(VR)應用、邊緣視頻處理和無人車等對響應時延敏感的應用場景。

根據邊緣計算平台的設計目標和部署方式,可將目前的邊緣計算開源平台分為3 類:面向物 聯網端的邊緣計算開源平台、面向邊緣雲服務的邊緣計算開源平台、面向雲邊融合的邊緣計算開源平台。

02 面向物聯網端的邊緣計算開源平台

面向物聯網端的邊緣計算開源平台,致力於解決在開發和部署物聯網應用的過程中存在的問題,例如設備接入方式多樣性問題等。這些平台部署於網關、路由器和交換機等邊緣設備, 為物聯網邊緣計算應用提供支持。代表性的平台是Linux基金會發布的 EdgeXFoundry和 Apache軟體基金會的Apache Edgent。

2.1 EdgeXFoundry

EdgeXFoundry 是一個面向工業物聯網邊緣計算開發的標準化互操作性框架,部署於路由器和交換機等邊緣設備上,為各種感測器、設備或其他物聯網器件提供即插即用功能並管理 它們,進而收集和分析它們的數據,或者導出至邊緣計算應用或雲計算中心做進一步處理。EdgeXFoundry 針對的問題是物聯網器件的互操作性問題。目前,具有大量設備的物聯網產生大量數據,迫切需要結合邊緣計算的應用,但物聯網的軟硬體和接入方式的多樣性給數據 接入功能帶來困難,影響了邊緣計算應用的部署。EdgeXFoundry 的主旨是簡化和標準化工業物聯網邊緣計算的架構,創建一個圍繞互操作性組件的生態系統。

圖2展示了EdgeX Foundry的架構。在圖中的最下方是「南側」,指的是所有物聯網器件, 以及與這些設備,感測器或其他物聯網器件直接通信的邊緣網路。在圖的最上方是「北側」, 指的是雲計算中心或企業系統,以及與雲中心通信的網路部分。南側是數據產生源,而北側 收集來自南側的數據,並對數據進行存儲、聚合和分析。如圖2所示,EdgeXFoundry 位於 南側和北側兩者之間,由一系列微服務組成,而這些微服務可以被分成 4個服務層和2個底層增強系統服務。微服務之間通過一套通用的Restful應用程序編程介面(API)進行通信。

邊緣計算開源平台

圖2- EdgeXFoundry的架構圖

BACNET:樓宇自動化與控制網路

BLE:低功耗藍牙

MQTT:消息隊列遙測傳輸

OPC-UA:OPC統一框架

REST:RESTful應用程序編程介面

SDK:軟體開發工具包

SNMP:簡單網路管理協議

VIRTUAL:虛擬設備

(1)設備服務層。設備服務層主要提供設備接入的功能,由多個設備服務組成。每個設備服務是用戶根據設備服務軟體開發工具包(SDK)編寫生成的一個微服務。EdgeXFoundry使用設備文件去定義一個南側設備的相關信息,包括源數據格式,存儲在EdgeXFoundry 中 的數據格式以及對該設備的操作命令等信息。設備服務將來自設備的數據進行格式轉換,並 發送至核心服務層。目前,EdgeX Foundry提供了消息隊列遙測傳輸協議(MQTT)、ModBus串列通信協議和低功耗藍牙協議(BLE)等多種接入方式。

(2)核心服務層。核心服務層由核心數據、命令、元數據、註冊表和配置4個微服務組件 組成。核心數據微服務存儲和管理來自南側設備的數據、元數據微服務存儲和管理設備的元 數據。命令微服務將定義在設備文件的操作命令轉換成通用的API,提供給用戶以監測控制 該設備。註冊表和配置微服務存儲設備服務的相關信息。

(3)支持服務層。支持服務層提供邊緣分析和智能服務,以規則引擎微服務為例,允許用戶設定一些規則,當檢測到數據滿足規則要求時,將觸發一個特定的操作。例如規則引擎可 監測控制溫度感測器,當檢測到溫度低於25度時,觸發對空調的關閉操作。

(4)導出服務層。導出服務層用於將數據傳輸至雲計算中心,由客戶端註冊和分發等微服務組件組成。前者記錄已註冊的後端系統的相關信息,後者將對應數據從核心服務層導出至 指定客戶端。

(5)系統管理和安全服務:系統管理服務提供安裝、升級、啟動、停止和監測控制EdgeX Foundry 微服務的功能。安全服務用以保障來自設備的數據和對設備的操作安全。

最新版本的 EdgeXFoundry 沒有為用戶自定義應用提供計算框架,用戶可以將應用部署在網路邊緣,將該應用註冊為導出客戶端,進而將來自設備的數據導出至應用來處理。EdgeX Foundry 的設計滿足硬體和操作系統無關性,並採用微服務架構。EdgeXFoundry 中的所有微服務能夠以容器的形式運行於各種操作系統,且支持動態增加或減少功能,具有可擴展性。EdgeXFoundry 的主要系統特點是為每個接入的設備提供通用的 RestfulAPI以操控該設備, 便於大規模地監測控制物聯網設備,滿足物聯網應用的需求。EdgeXFoundry 的應用領域主 要在工業物聯網,如智能工廠、智能交通等場景,以及其他需要接入多種感測器和設備的場景。

2.2 ApacheEdgent

Apache Edgent 是一個開源的編程模型和微內核風格的運行時,它可以被嵌入到邊緣設備上,用於提供對連續數據流的本地實時分析。Edgent解決的問題,是如何對來自邊緣設備的數據進行高效的分析處理。為加速邊緣計算應用在數據分析處理上的開發過程,Edgent 提供一個開發模型和一套API用於實現數據的整個分析處理流程。基於Java或安卓的開發環境,Edgent應用的開發模型如圖3所示。

邊緣計算開源平台

圖3-Edgent應用的開發模型

該模型由提供者、拓撲、數據流、數據流的分析處理、後端系統5個組件組成。

(1)提供者。一個提供者對象包含了有關Edgent應用程序的運行方式和位置信息,並具有創建和執行拓撲的功能

(2)拓撲。拓撲是一個容器,描述了數據流的來源和如何更改數據流的數據。數據的輸入、處理和導出至雲的過程都記錄在拓撲中。

(3)數據流。Edgent提供了多種連接器以不同方式接入數據源,比如支持消息隊列遙測傳輸(MQTT)、超文本傳輸協議(HTTP)和串口協議等,用戶還可以添加自定義代碼以控制 感測器或設備的數據輸入。此外,Edgent的數據不局限於來自真實感測器或者設備的數據,還支持文本文件和系統日誌等。

(4)數據流的分析處理。Edgent提供一系列功能性的API 以實現對數據流的過濾、分裂、 變換和聚合等操作。

(5)後端系統。由於邊緣設備的計算資源稀缺,Edgent 應用程序無法支撐複雜的分析任務。用戶可以使用連接器,通過MQTT和ApacheKafka方式連接至後端系統,或者連接至IBMWatson IoT平台進一步對數據做處理。

Edgent 應用可部署於運行 Java虛擬機的邊緣設備中,實時分析來自感測器和設備的數據, 減少了上傳至後端系統如雲數據中心的數據量,並降低了傳輸成本。Edgent的主要系統特點是提供了一套豐富的數據處理API,切合物聯網應用中數據處理的實際需求,降低應用的開發難度並加速開發過程。Edgent的主要應用領域是物聯網,此外,它還可以被用於分析日誌、文本等類型的數據,例如嵌入伺服器軟體中用以實時分析錯誤的日誌。

03 面向邊緣雲的邊緣計算開源平台

網路運營商的網路邊緣,如蜂窩網路基站、中央端局和在網路邊緣的小型數據中心等,是用 戶接入網路的地方,其計算、存儲和網路資源也可用以部署邊緣計算應用。面向邊緣雲服務的邊緣計算平台著眼於優化或重建網路邊緣的基礎設施以實現在網路邊緣構建數據中心,並提供類似雲中心的服務。代表性的平台有開放網路基金會(ONF)的CORD項目和Linux基金會的AkrainoEdge Stack 項目。

3.1 CORD

CORD 是為網路運營商推出的開源項目,旨在利用軟體定義網路(SDN)、網路功能虛擬化(NFV)和雲計算技術重構現有的網路邊緣基礎設施,並將其打造成可靈活地提供計算和網 絡服務的數據中心。現有網路邊緣基礎設施構建於由電信設備供應商提供的封閉式專有的軟 硬體系統,不具備可擴展性,無法動態調整基礎設備的規模,導致資源的低效利用。CORD計劃利用商用硬體和開源軟體打造可擴展的邊緣網路基礎設施,並實現靈活的服務提供平台, 支持用戶的自定義應用。

圖4 為CORD的硬體架構圖,CORD利用商用伺服器和白盒交換機提供計算、存儲和網路資源,並將網路構建為葉脊拓撲架構以支持橫向網路的通信帶寬需求。此外,CORD 使用專用接入硬體將移動、企業和住宅用戶接入網路中。

邊緣計算開源平台

圖4-CORD的硬體架構

CORD的軟體架構如圖5所示,雲平台管理項目 OpenStack用以管理計算和存儲資源,創建和配置虛擬機以及提供基礎設施即服務(IaaS)功能。開源網路操作系統(ONOS)為網 絡提供控制平面,用於管理網路組件如白盒交換網路結構等,並提供通信服務。容器引擎Docker 使用容器技術來實例化提供給用戶的服務。服務控制平台 XOS用於整合上述軟體, 以組裝、控制和組合服務。

邊緣計算開源平台

圖5- CORD的軟體架構

DOCKER: 容器引擎

ONOS: 開源網路操作系統

OPENSTACK: 開源的雲計算管理平台項目

根據用戶類型和使用案例的不同,CORD可被具體實現為 M-CORD、R-CORD和E-CORD。以 M-CORD為例,M-CORD面向無線網路(特別是5G 網路),使用蜂窩網路將用戶接入。M-CORD基於 NFV和雲計算技術將蜂窩網路功能進行分解和虛擬化,實現網路功能的動態擴展同時增強資源利用率。在此基礎上,M-CORD 支持多接入邊緣服務,為用戶提供定製 服務和差異化體驗質量(QoE)。此能力切合具備移動性的邊緣計算應用的需求,能通過無 線網路為手機、無人車和無人機等移動設備的邊緣計算應用就近提供強大的計算能力。R-CORD 和 E-CORD同樣可以在網路邊緣支持住宅用戶或企業用戶的邊緣計算應用,如VR和AR 應用等,以獲得更快的響應時間和更好的服務體驗。

對於用戶而言,CORD 在運營商網路邊緣提供的邊緣雲服務,具有與雲計算相同的優點,即無需用戶提供計算資源和搭建計算平台,降低了軟硬體和管理成本。此外,有線和無線網路 的廣泛分佈使用戶提交邊緣計算應用不受地理位置的影響。目前,運營商正研究如何部署CORD,中國聯通發起成立了CORD產業聯盟,推動CORD項目的落地。

3.2 Akraino EdgeStack

AkrainoEdge Stack 是一個面向高性能邊緣雲服務的開源項目,並為邊緣基礎設施提供整體的解決方案。Akraino Edge Stack 致力於發展一套開源軟體棧,用於優化邊緣基礎設施的網 絡構建和管理方式,以滿足邊緣計算雲服務的要求,比如高性能、低延遲和可擴展性等。Akraino Edge Stack 項目涉及的範圍從基礎設施延伸至邊緣計算應用,其範圍可以劃分為 3個層面。

在最上面的應用層面,AkrainoEdge Stack致力於打造邊緣計算應用程序的生態系 統以促進應用程序的開發。中間層面著眼於開發中間件和框架以支持上面層次的邊緣計算應 用。在這個層面中,AkrainoEdge Stack 將開發API 和框架以接入現有互補性的開源邊緣計算項目,例如上述的面向物聯網的互操作性框架EdgeX Foundry,最大化利用開源社區的現有成果。在最下面的基礎設施層面中,AkrainoEdge Stack 將提供一套開源軟體棧用於優化基礎設施。此外,Akraino Edge Stack 為每種使用案例提供藍圖以構建一個邊緣計算平台。每個藍圖是涵蓋上述3個層次的聲明性配置,其中包括對硬體、各層面的支撐軟體、管理工具和交付點等的聲明。

Akraino Edge Stack 基於使用案例提供邊緣雲服務,可部署於電信運營商的塔樓、中央端局或線纜中心等。其應用領域包括邊緣視頻處理、智能城市、智能交通等。Akraino Edge Stack目前是一個初創項目,於2018年8月進入執行階段。

04 面向雲邊融合的邊緣計算開源平台

雲計算服務提供商是邊緣計算的重要推動者之一,基於「雲邊融合」的理念,致力於將雲服務能力拓展至網路邊緣。目前,亞馬遜公司推出了AWSGreengrass ,微軟公司推出了Azure IoT Edge ,阿里雲公司推出了物聯網邊緣計算平台 LinkIoT Edge。微軟公司在2018年宣布將Azure IoT Edge 開源。

Azure IoT Edge是一種混合雲和邊緣的邊緣計算框架,旨在將雲功能拓展至如路由器和交換機等具備計算能力的邊緣設備上,以獲得更低的處理時延和實時反饋。Azure IoT Edge運行於邊緣設備上,但使用與雲上的AzureIoT 服務相同的編程模型;因此用戶在開發應用的過程中除對計算能力的考量外,無需考慮邊緣設備上部署環境的差異,還可以將在雲上原有的應用遷移至邊緣設備上運行。

如圖6 所示,AzureIoTEdge由IoTEdge模塊、IoTEdge運行時和IoTEdge雲界面組成,前兩者運行在邊緣設備上,後者則是一個在Azure雲上提供服務的管理界面。

邊緣計算開源平台

圖6- Azure IoT Edge的架構圖

(1)IoTEdge 模塊。IoTEdge 模塊對應於用戶的邊緣計算應用程序。一個模塊鏡像即一個Docker 鏡像,模塊里包含用戶的應用代碼,而一個模塊實例就是一個運行著對應的模塊鏡像的 Docker 容器。基於容器技術,IoTEdge 具備可擴展性,用戶可動態添加或刪除邊緣計算應用。由於相同的編程模型,Azure 機器學習和 Azure數據流分析等 Azure雲服務也可以 部署到 IoTEdge模塊,此特性便於在網路邊緣部署複雜的人工智慧應用,加快了開發過程。

(2)IoTEdge運行時。IoTEdge運行時由IoTEdge中心和IoTEdge代理2個組件構成,前 者負責通信功能,後者負責部署和管理 IoTEdge 模塊,並監測控制模塊的運行。IoT中心 是在 Azure雲上的消息管理中心,IoT Edge中心與IoT 中心連接並充當其代理。IoT Edge 中心通過MQTT、高級消息隊列協議(AMQP)和HTTPS協議獲取來自感測器和設備的數據,實現設備接入的功能。此外,IoT Edge 中心作為消息中轉站,連接 IoTEdge 模塊之間 的消息通信。IoTEdge代理從IoTHub接收IoTEdge模塊的部署信息,實例化該模塊,並保 證該模塊的正常運行,如對故障模塊進行重啟,並將各模塊的運行狀態報告至IoT中心。

(3)IoT雲界面。雲界面提供了設備管理的功能。用戶通過雲界面進行添加設備,部署應用和監測控制設備等操作,為用戶大規模部署邊緣計算應用提供了方便。

Azure IoT Edge 的主要系統特點是強大的Azure 雲服務的支持,尤其是人工智慧和數據分析 服務的支持。AzureIoT Edge具有廣闊的應用領域,除了物聯網場景,原有在雲上運行的應 用也可以根據需求遷移至網路邊緣上運行。目前AzureIoTEdge已有智能工廠、智能灌溉系 統和無人機管理系統等使用案例。

05 構建邊緣計算平台的開源軟體

一些開源軟體能為邊緣計算平台提供組件功能,具體包括:

(1)網路管理。開源網路自動化平台(ONAP)是一個為物理或虛擬網路功能的自動化 和實時策略驅動化編排提供平台的開源項目,在邊緣雲中可用於定製網路服務。Linux基金會在2018年將ONAP與其他5個功能類似的開源項目合併成LFNetworkingFund項目。ONOS是一個開源網路操作系統,它提供一個控制平面用於管理網路組件,運行軟體程序和模塊,並為終端主機提供通信服務。目前,ONAP應用於 Akraino EdgeStack 項目中,ONOS應用於CORD 項目中。

(2)容器技術。Docker作為一個開源的應用容器引擎,被多個邊緣計算平台使用以提供靈活的應用部署方式。Kubernetes是一個對容器化應用進行自動化部署、擴展和管理的開源項目,可用於邊緣計算平台中以提供可靠和可擴展的容器編排。

(3)雲平台。OpenStack是一個開源的雲計算管理平台項目,可用於構建邊緣雲,管理邊緣雲基礎設備的計算、存儲和網路資源。StarlingX是一個用於構建分散式邊緣雲的開源項目,提供一套完整的雲基礎架構軟體棧,現應用於AkrainoEdge Stack 項目中。

(4)人工智慧技術。引入人工智慧技術是邊緣計算的發展趨勢之一。Acumos 人工智慧(AI)是一個用於訓練、部署和共享AI應用程序的開源框架,可用於邊緣雲中以提供AI邊緣計算應用的快速開發和部署。Acumos AI 目前已用於Akraino Edge Stack 項目中。

06 結束語

邊緣計算平台為基於邊緣計算的應用提供了一種降低延遲、提高數據處理實時性的架構和軟體棧支撐。目前,邊緣計算平台仍處於快速發展時期,本文中我們對其未來的發展趨勢 進行如下分析:

(1)面向特定應用場景的專用性邊緣計算平台將迅速發展。目前,智能家居、智能工廠和智慧城市都是受關注的應用場景,如何系統化支持這些場景的功能需求是邊緣計算平台的 發展趨勢之一。

(2)邊緣計算平台的數據安全與隱私保護問題將變得更加突出。邊緣設備相互協作時的數據安全如何保證、邊緣平台如何避免暴露用戶的位置隱私信息、尤其是邊緣計算設備的計算資源、存儲能力有限,使得邊緣計算平台的安全防禦具有更高的挑戰性。

(3)邊緣計算平台將結合更多人工智慧技術。目前,以深度學習為代表的人工智慧技術發展十分迅速,但「智能邊緣」的研究才剛剛起步,未來的邊緣計算平台將引入人工智慧技術, 實現邊緣數據的智能處理。

本文首發於《中興通訊技術》

作者簡介

梁家越,中山大學數據科學與計算機學院在讀碩士研究生;研究方向為邊緣計算。

劉斌,中國科學院電子學研究所在讀博士生;研究方向為邊緣計算。

劉芳,中山大學數據科學與計算機學院副教授;研究方向為計算機系統結構與存儲技術;先後主持和參加國家自然科學基金、科技部重點研發、「863」計劃等項目10餘項;獲中山大學「百人計劃」中青年傑出人才,獲軍隊科技進步二等獎1次;發表論文70餘篇,授權國家發明專利10餘項。

文章出處:邊緣計算社區


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/108401/opensource-edge
邊緣計算介紹以及幾款邊緣計算開源平台已經有319次圍觀

http://coctec.com/news/all/show-post-210408.html