Microsoft在針對開發人員的Build 2017大會上,宣佈推出Azure IoT Edge邊緣運算方案;這項宣佈看來毫不顯眼,背後卻是多家公有雲較勁的決勝點;特別是AWS推出Greengrass方案,IoT邊緣運算的競爭,亦開始進入直路。
物聯網(IoT)應用固然離不開雲端運算,但問題是大部分的時間,IoT都使用不穩定或高延遲(High Latency)的網絡,接近產生數據的所謂「邊緣」位置(Edge),仍要保留有一定的運算能力,以便適當時作出更快的反應。
故此,不管雲運算如何強大,不少IoT仍要靠終端運算,或者所謂「邊緣」設備,有時是對大量數據作出篩選;有意義的數據,才傳回雲端的數據中心分析處理;例如交通運輸工具,主要就要靠無線網絡連接,時刻面對高延遲網絡,甚至不可能作全天候連接,許多時要離線執行。IoT環境如何分散儲存,整合終端裝置和雲端能力,利用「邊緣」設備運算和儲存數據的IoT Edge邊緣運算(Edge Computing),變成未來開發IoT應用,最令人關注的課題。
單板電腦邊緣配置
思科公司很早提出「Fog Computing」,也就是IoT Edge邊緣運算的前身,概念是如何將運算和數據儲存,部署至更接近IoT數據產生的位置,改善服務質素、運算反應和客戶體驗,更成立了OpenFog Consortium。不少思科產品加入了類似功能,支援邊緣設備,執行初步運算和分析。
Microsoft副總裁Scott Guthrie,在Build 2017開發者大會上,宣佈推出Azure IoT Edge。Guthrie表示,除了可用Azure中央管理、部署、設定IoT設備,不同的分析功能,也可從Azure隨時下載至邊緣設備,即時離線處理數據,設備配置要求甚低;可於Raspberry Pi上Linux或者Windows 10 IoT Core平台執行,最小記憶體只要128MB;應用亦可先在Azure開發,以CI/CD流程測試,直至滿意後,下載到邊際設備執行。
Raspberry Pi單板電腦價格便宜,已進入不少IoT應用場景;市場上其他單板電腦也愈來愈多,類似Arrow以Qualcomm處理器推出的DragonBoard,也具備更多CPU和網絡功能,可跑不同版本Linux、Android或Windows 10 IoT Core。開發人員只要在Azure上開發了Azure Machine Learning、Stream Analytics、Azure Functions、AI services、Azure IoT Hub等功能,就可包裝成為Docker容器,下載到邊緣設備上直接執行,加快執行的反應。
Greengrass無遠弗屆
但是Azure IoT Edge並非唯一可在邊緣設備執行的IoT Edge技術。去年,Amazon Web Services (AWS)亦推出AWS Greengrass,功能類似Azure IoT Edge,可下載AWS的Lambda Functions到邊緣設備上執行。Lambda為AWS推出的無服務器式雲運算(Serverless cloud),無須在AWS上啟動任何VM服務器,就可直接執行程式,費用則只計算應用實際的使用量。這種模式的突破性,不單免除了架設服務器的繁瑣工作,用多少計多少,收費與用量掛鉤。更重要的是,從此開發人員毋須再管理IT基建,擔心日後如何維持高可用性架構;從服務器到負載平衡(Load Balancing),均會自動擴充。其他公有雲亦紛紛效尤,包括了Azure Functions和Google Cloud Functions,IBM亦推出了OpenWhisk等Serverless Cloud。
但Lambda從2014年推出後,服務不斷改善;先後支援C#、Python、Java、Javascript(Node.js)四種語言;其中支援C#語言,當然是針對大量Windows平台上的.NET應用,移植至Lambda上。Windows開發人員可利用C#和.NET工具,快速在Lambda開發。AWS甚至推出Visual Studio的插件,供快速配置Lambda;針對Windows開發人員,對Azure雲平台有莫大威脅。
Greengrass支援以X86或者ARM處理器的設備來執行Lambda,最低要求也只是128MB記憶體和1GHz處理器,包括類似Raspberry Pi單板電腦,比Azure IoT Edge略高。但Greengrass只支援Linux作業系統;Qualcomm和其他硬件廠商,已公佈會推出針對Greengrass設計的IoT邊緣設備,顯示業界相當看好。
Lambda的Greengrass之所以強大,另一原因是配合不少AWS其他性能,包括支援AWS的「內容交付方案」(Content delivery network,CDN)Cloudfront,Lambda可直接於邊緣位置,執行動態的內容;以Javascript對用戶要求,直接作出反應,避免所有查詢,都要傳回數據中心處理,因網絡延誤(Latency)而要遠端用戶苦候。AWS的Lambda配合CDN,大大改善了遠端用戶的體驗,不單應用於IoT設備,利用CDN的一般網上用戶,也能受惠。
Lambda登堂入室
Lambda另一優勢,為支援新推出的Step Functions,不同Lambda Functions可組合為功能更強大的企業應用,以Step Functions排錯和作視覺化的配置。Step Functions對於開發企業級應用至為重要,Lambda不再囿於簡單的動作,可建立處理複雜工序的流程。不少評論甚至以為,Step Functions是去年AWS用戶大會re:Invent 2016上最重要的公佈。
不少科技公司加入推動邊緣運算,華為也是其中一家,推出了Edge Computing IoT(EC-IoT解決方案),又在國內推動成立「邊緣計算產業聯盟」(Edge Computing Consortium),成員包括英特爾、ARM、軟通動力、中國科學院沈陽自動化研究所等。但是華為EC-IoT解決方案,內容較為初步,仍處於建立生態環境的階段。
相對而言,IBM邊緣運算更低調,去年才開始支援思科的Edge Analytics架構,推出Edge Analytic Agent(EAA),從BlueMix通過思科平台向邊緣設備部署EAA,蒐集和分析IoT邊緣的數據,先作初步分析和整理,才上傳到數據中心供Watson IoT Platform,整合更多資料作預測分析。但隨著Microsoft正式推出Azure IoT Edge,預計各公有雲,將相繼大力發展邊緣運算。