以微型服務解決物聯網軟體問題
隨著物聯網系統日益複雜,開發人員現正轉向採用微型服務架構,藉此以更快速、簡易且安全的方式推出與更新物聯網軟體。
微型服務架構是一個鬆散組合的架構,利用虛擬化方式將系統軟體元件獨立分隔為「容器」。
圖 1 說明了 Docker 這項最受歡迎的其中一個容器化技術如何將主機作業系統與其他應用程式、公用程式和第三方服務隔離,且前述項目皆獨立分隔為個別容器。
視佔用的空間而定,特定架構內的不同服務可存放在雲端、霧閘道或伺服器中,或存放在物聯網邊緣裝置本身內。如此一來,就可確保將特定的軟體功能留存在對使用案例最具效益的位置(圖 2)。一般而言,容器化的軟體元件之間是透過標準化 API 互相通訊。
以容器為基礎的微型服務架構,其結構讓物聯網開發人員可大規模地快速部署軟體,無須擔憂干擾系統中其他位置的軟體相依性。透過此架構,也可根據目標硬體平台增添容器化通訊協定與網路支援,進而確保新舊裝置具有可擴充的互通連線能力。
這些功能讓物聯網軟體升級作業更為迅速、反覆性更高,同時也讓程式碼庫管理作業更為精細,並且能更妥善地運用軟體工程資源。
物聯網邊緣的微型服務容器
容器化軟體架構源自企業內部,讓 IT 開發人員能安全地將在相同硬體上執行的應用程式與服務互相分隔。為了支援逐漸增加的功能,更多運算能力皆轉移至物聯網裝置上,因此對於有下列需求的邊緣部署而言,容器成為深具吸引力的選項:
- 多樣的通訊協定與資料格式
- 各種不同層級的分析能力
- 迅速的反覆性系統升級
- 產品差異化與快速的上市時間
- 有效率地使用資源
但是,在邊緣運作的微型服務架構必須克服資料中心內沒有的艱難挑戰。例如,當架構內整合了更多微型服務時,就必須進行更大量的網路連線與通訊作業,如此一來也會增加延遲。
隨著架構內包含的裝置與服務數量漸增,也會造成更多的潛在故障點,而需要確保安全的介面也更多。最後一點則是,隨著分散式異質裝置與環境與日俱增,協調其中各項服務的作業也愈發複雜。
為了克服物聯網邊緣的這類容器問題,Dell OEM 與其他公司推出了 EdgeX Foundry 微型服務架構。
適用於邊緣的開放式微型服務,不受限制又可延伸
EdgeX Foundry 是開放原始碼且不偏袒任何廠商的中立專案,由 The Linux Foundation 主導,其中包含十多種不限硬體與作業系統的微型服務(圖 3)。此平台的設計可為建置差異化物聯網解決方案的廠商提高互通性,並縮短上市時間。透過 Docker 與 Docker Compose 即可部署微型服務。
EdgeX Foundry 的主要微型服務可分為三類:
- 裝置服務,在物聯網邊緣裝置或閘道上執行,負責處理 OT 感應器資料的收集與通訊作業。這些服務支援多種業界標準通訊協定,可快速整合新舊系統。
- 核心服務,存放於閘道平台或現場的霧伺服器,讓本機資料可持久化,並且提供命令功能與組態資訊。核心服務亦能提供裝置監控與管理等較複雜功能所需的基礎架構。
- 匯出服務,位於閘道、現場霧伺服器或雲端上,可將傳送至企業的資料加以轉換、格式化,並進行篩選。為了確保可將 OT 感應器資料匯出為與企業資料模型相容的格式,例如 JSON 等,這項服務是不可或缺的。
除了這幾項基本服務外,鬆散組合的 EdgeX Foundry 微型服務架構也支援選購服務,例如本機分析、安全性、排程、裝置管理、警示與資料記錄等,您可針對手邊的應用程式新增、移除或量身訂做這類服務(圖 4)。
這些微型服務彼此通訊時是使用 REST API,這可讓即時應用程式的通訊延遲情況減至最少。同時因為 EdgeX Foundry 可在單一硬體平台上支援眾多應用程式與服務,所以在進行全面性物聯網部署時,需要的獨立系統數量也更少。隨著彙整功能的系統數量逐漸減少,也可將安全性弱點與故障點的數量降至最低。
微型服務的微電腦
EdgeX Foundry 參與人員仍在持續將架構效能最佳化,其目標是可在單一 Raspberry Pi 3 裝置上執行所有裝置服務、核心服務與匯出服務。這項實作的目標啟動時間設定為低於一分鐘,而在不同服務層間的資料擷取、處理與啟動的延遲時間則低於一秒。
現行的容器化核心服務軟體佔用空間為 113 MB,啟動時間則低於 10 秒。這讓 EdgeX Foundry 軟體堆疊可相容於 Dell Edge Gateway 5100 等系統,此系統是以搭載 2 GB 之 DDR3L-1067 MHz RAM 的 Intel Atom® E3825 處理器為基礎,並且支援 32 GB 固態硬碟。
無論在邊緣的何處,微型服務皆具備彈性
對物聯網開發人員而言,EdgeX Foundry 鬆散組合的容器化架構意味著他們可大規模地快速將所需能力部署在架構中最為合理的位置。此外,或許更重要的一點是在部署其他應用程式與服務時,無須擔憂干擾系統中其他位置的軟體相依性。這讓物聯網軟體升級作業更為迅速、反覆性更高,同時也讓程式碼庫管理作業更具效率也更為精細。
EdgeX Foundry 微型服務架構的其他公用程式可確保從工廠現場到雲端,新舊裝置之間皆具有可擴充的互通連線能力。這麼一來,物聯網組織即能利用基礎功能加快上市時間,同時將珍貴的軟體工程資源保留給加值功能、服務與創新。
若要進一步瞭解微型服務架構與 EdgeX Foundry,請觀看隨選網路研討會「A Microservice Approach to IoT Edge Computing」。