從微軟的Azure IoT Edge看邊緣計算的架構

         往往從大公司的產品可以看出技術的趨勢。週末抽空看了看微軟的Azure 的IoT Hub和西門子的edge computing 。雖然微軟的Azure IoT Hub 是開源,跨平臺的邊緣計算架構,但是它基本上還是爲自己家的Azure 雲平臺開發的。國外雲平臺在國內不太受待見。技術支持和推廣也不太給力。兩年前曾經使用mbed 設備接入azure 雲平臺,結果國內azure合作方世紀互聯的技術支援不夠,好像國內也並不支持IoT Hub,結果以失敗告終。不過研究一下微軟的東西還是必要的,至少告訴自己,我們走在大路上,沒有偏離方向。

Azure IoT Edge 是部署在支持容器技術的linux和windows 設備上的邊緣計算設備上的。

Azure IoT Edge 主要包含以下三個部分:

1  IoT Edge 模塊(IoT Edge Modules): IoT Edge 的模塊其實就是一個 Docker 的 Container(儘管微軟將docker 稱爲moby,這是docker 開源項目的名稱,而docker CE 是一個產品)。在一個 Edge 設備上可以運行多個模塊,模塊和模塊之間可以進行通信,從來實現數據分析,業務邏輯等的處理。模塊和模塊之間是相對獨立的,甚至可以用不同的語言實現不同的模塊,比如用 C# 實現業務邏輯,用 Python 實現數據分析的邏輯等。Azure 的很多服務都可以簡單的打包成一個模塊部署到 Edge 設備上,比如 Azure Functions, Azure Stream Analytics, Azure Machine Learning。特別是使用 Azure Machine Learning 服務的話,就可以輕鬆實現雲上訓練模型,設備上離線使用模型,動態更新模型等場景。

2  IoT Edge 運行時(IoT Edge Runtime): IoT Edge 運行時也是安裝在 Edge 設備上的,主要是負責對 Edge 模塊的管理和通信功能的。下圖就是 Edge Runtime 的位置和功能的示意圖。

3  IoT Edge Runtime 其實就是兩個 Container,一個叫 EdgeAgent, 一個叫 EdgeHub。 EdgeAgent 主要負責管理模塊,包括下載,啓動,刪除 Edge 模塊,監控和彙報健康狀態等。EgdeHub 主要負責通信,包括模塊和模塊之間的通信,Edge 設備和雲端的通信等。微軟計劃在正式發佈之後會開源 Edge 運行時的代碼。

4  IoT Edge 雲端接口(IoT Edge cloud interface): IoT Edge 的雲端接口集成在 IoT Hub 服務當中,用來遠程監控和 IoT Edge 的設備。以及動態部署 Edge 模塊到設備上。

  大概看出來了吧? 用大白話總結一下,微軟的azure IoT hub 基於了docker 容器技術,並且提供了容器間的消息系統。在IoT hub 中微軟提供了大量自家產品的支援模塊,以及與azure 互操作的模塊。它基本上是爲azure 而生的。目的是讓客戶更好地使用Azure 雲服務。

值得欣慰的是,我們的modularIoT 邊緣計算架構和微軟的平臺大同小異,沒有偏離方向。只不過我們沒有傾向性,而且更簡單。

發佈了111 篇原創文章 · 獲贊 80 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章