容器化 - 邊緣計算的新方向

容器化 - 邊緣計算的新方向

隨着物聯網終端設備數量的快速增加,同時由於網絡帶寬有限,高昂的傳輸成本和較高的響應延時等問題,傳統的基於雲計算模型的集中式數據處理方式已不能有效處理網絡邊緣設備所產生的海量數據。針對物聯網場景中的新挑戰,各大雲計算廠商紛紛推出了以邊緣計算模型爲核心的新型計算平臺,能在靠近數據產生的設備端進行準實時的邊緣智能服務。

Predix邊緣計算平臺

在Predix平臺於2015年首次發佈的時候,就非常前沿的推出了自身的邊緣計算平臺 - Predix Machine。下圖爲Predix Machine的架構,

predix

從當前的架構設計中,我們可以清晰的看到,

  1. 設備對設備的接口:通過協議適配器(Protocol Adapters),Predix Machine可以支持不同工業通訊協議進行數據採集和反向設備控制,包括OPC-UA,modbus,MQTT等。
  2. 設備對雲端的接口:通過設備管理框架和數據流服務(Data River),Predix Machine可以將分析後的數據或者原始數據通過HTTP或者WebSocket傳輸到雲端的數據存儲中,作後續的智能分析。
  3. 容器化的分析平臺:更重要的是通過數據總線(Data Bus),Predix Machine能夠運行Docker容器封裝的由雲端訓練後的智能分析算法(這些算法通常由不同語言或者工具開發),處理連續的數據流,並可以提供近乎實時業務決策反饋,反向的控制設備端。

AWS Greengrass

AWS於2016年也推出了自己的邊緣計算平臺 - Greengrass,其架構如下圖所示,

aws

除了常見的數據接入,設備管理外,Greengrass平臺最大的特色是能針對採集的數據流運行Lambda函數產生簡單的行爲。雖然,AWS Greengrass沒有公開更多的技術細節,我們還是可以從官方文檔中瞭解到它依賴於Linux內核中的cgroup模塊,而cgroup則是容器技術中進行進程隔離的底層技術。所以,我們可以確定Greengrass也是依賴於容器技術(或者其底層技術)實現的。

Azure IoT Edge

微軟在Build 2017大會上正式推出了邊緣計算平臺 - Azure IoT Edge的技術預覽版。因爲Azure IoT Edge還沒有GA,所以沒有完整而詳細的架構圖,只有如下圖所示的簡化流程圖。

az

從上圖中,我們可以看到Azure IoT Edge也提供和其他邊緣計算平臺類似的功能,採集邊緣數據進行過濾分析,再傳輸到雲端。同時,Azure邊緣計算平臺還支持將第三方應用以獨立模塊(module)的形式運行,以豐富其智能分析的能力。從IoT Edge在github的項目首頁上,我們非常高興的看到IoT Edge的開發團隊已經將Docker容器技術列入了未來的技術路線圖中。

For example: modules will run in Docker containers and the broker used to pass messages between module code will move to a lite version of IoT Hub running locally in a module.

邊緣計算平臺容器化

從前面的分析來看,容器技術已經成爲邊緣計算平臺的標準技術。

爲什麼各大雲計算廠商都選擇容器技術構建邊緣計算平臺的底層技術棧,答案也是顯而易見的。

  1. 邊緣計算的應用場景非常複雜。從前面的分析,我們可以清晰的看到邊緣計算平臺,並不是傳統意義的只負責數據收集轉發的網關。更重要的是,邊緣計算平臺需要提供智能化運算能力,而且能產生可操作的決策反饋,用來反向控制設備端。

    過去,這些運算只能在雲端完成的。現在需要將雲端的計算框架,例如,Spark,TensorFlow等,通過裁剪、合併等簡化手段,遷移至邊緣計算平臺,使得能在邊緣計算平臺上運行雲端訓練後的智能分析算法。因此,邊緣計算平臺需要一種技術在單臺計算機或者少數幾臺計算機組成的小規模集羣環境中隔離主機資源,實現分佈式計算框架的資源調度。

  2. 邊緣計算所需的開發工具和編程語言的多樣性。目前計算機編程技術成百花齊放的趨勢,開發人員運用不同的編程語言處理不同的場景的問題已經成爲常態,所以在邊緣計算平臺也需要開放的支持多種開發工具和多種編程語言的運行時環境。因此,在邊緣計算平臺使用一種運行時環境的隔離技術便成爲一種自然的需求。

  3. 容器技術和容器編排技術的逐漸成熟。容器技術是主機虛擬化技術後,最具顛覆性的計算機資源隔離技術。通過容器技術進行資源的隔離,不僅對CPU、內存和存儲的額外開銷非常小,而且容器的生命週期管理非常快捷,可以在毫秒級開啓和關閉容器。

    以Docker爲主的容器技術和Kubernates爲主的容器編排工具的逐漸成熟,使得越來越多的工具通過容器封裝,分發和運行,而邊緣計算平臺則是容器編排運行非常合適的試驗場。因爲,邊緣計算平臺不像雲平臺擁有理論上無限的計算資源,所以,對資源隔離帶來的額外開銷比較敏感。另一方面,邊緣計算平臺的運算請求通常是事件驅動式的,特定的工作負載通過容器封裝,不需要常駐內存的特性,正滿足了邊緣計算平臺的需求。

小結

通過本文我們瞭解到,

  1. 近幾年各大國際雲計算廠商紛紛佈局邊緣計算平臺,包括Predix Machine,AWS Greengrass,Azure IoT Edge等。
  2. 邊緣計算平臺並不只負責數據的收集轉發,更重要的是提供智能化運算,併產生可操作額決策反饋,控制設備端。
  3. 容器化技術成爲邊緣計算平臺的底層標準技術,是技術發展的必然選擇。
  4. 國內雲計算廠商的行動似乎慢了半拍,還沒有推出針對物聯網的邊緣計算產品。各位物聯網的兄弟們要加油了:)

作者:謝品,上海創新坊首席架構師,GE數字集團

專注於工業互聯網,雲計算,大數據,高性能分佈式存儲領域,對Cloud Foundry和傳統應用向雲端,特別是向Predix遷移有豐富的經驗,曾供職於VMware,EMC,Autodesk等知名軟件公司雲計算部門。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章