適用於物聯網邊緣的雲端原生開發
物聯網軟體開始採用雲端原生技術。這對舊型程式碼有何影響?
我們先由名詞定義開始。「雲端原生」方法將一個應用程式分解為一系列的微型服務(圖 1)。由於雲端基礎架構具有同質性,使這些微型服務擁有極高的可攜性。因此,它們可部署在幾乎任何位置,且更新極為快速。
雲端原生工程提供更優異的擴充性、敏捷性,以及重新使用軟體的機會。這也讓工程師更加輕鬆。相較於單一的大型應用程式,小型服務的部署、管理和維護都更加簡單。
企業與嵌入式的交叉處
但雲端原生方法與舊型嵌入式程式碼並不對盤。嵌入式程式碼通常是靜態的,且針對特定平台量身打造。它們經過精心縝密的測試,以確保安全、穩固、可靠且具決定性的運作能力。
要讓舊型程式碼與雲端原生程式碼一同結合並不容易。想想認證方面的諸多問題。
Wind River 現場工程總監 Paul Parkinson 表示:「安全關鍵應用程式需要處在安全關鍵環境中進行代管。」「所有基礎軟體在開發時,其安全整合層級必須至少達到最關鍵應用程式的相同等級。」
雲端原生應用程式會在非決定性的 Linux 上運行,具有許多隱藏的依存性。它們通常無法通過 IEC 61508、ISO 26262,或是 DO-178C 等標準認證。
即使可以,認證的成本「與系統所使用的有效原始碼行數 (eLOC) 成正比」。舉例來說,Linux 的核心部份就有超過 2,500 萬行程式碼。
雲端原生或擁有安全認證?
雲端原生與嵌入式工程的差異可能無法解決,但這沒有關係。這兩者仍然可透過虛擬化與容器化技術結合。
如 圖 2 所示,虛擬化可在監管程式層級上執行多個作業系統。容器化則僅需要單一作業系統。這使容器更加輕便,因為其中僅包含了作業系統與其依存元素。
容器是雲端原生設計的基礎,虛擬化則更適合嵌入式設計。但透過合適的監管程式,便可讓這兩種方法得以結合。
尤其是 Type 1 的「裸機」監管程式,可提供嵌入式系統所需的決定性。因為 Type 1 監管程式直接在硬體上運行,可完整存取系統資源,使其具有高效率的同時保有可靠度。
另一個同樣重要的特點,在於它們可用於分割安全關鍵與非安全性關鍵功能。
Parkinson 表示:「在即時作業系統平台上,使用分割功能代管安全關鍵功能與無安全性需求之一般用途功能的能力,已經過實證證明有效。」「使用硬體虛擬化則能將此提升到另一個層次。」
舉例來說,透過具有安全性認證的監管程式,便可能在即時控制器上雲端原生分析。透過此方法,便可妥善地將雲端原生功能增加至現有的嵌入式設計上。因為並未變更原始程式碼,可將認證成本降到最低,並維持決定性。
但我們要把眼光放得更廣。雲端原生技術可能成為數位轉型的基礎(影片 1)。
在結合 IT 與營運技術時,已經可以看到這樣的轉型。事實上,到 2020 年時,在物聯網產品部份,有百分之 50 的 OT 供應商將會與 IT 公司結成合作夥伴。
當然,這一切都要仰賴可支援雲端原生應用程式的虛擬化平台。好消息是,最新的監管程式便是為此而生。Parkinson 表示:「在近幾年中,我們透過開發、認證,以及部署安全關鍵系統獲得了許多經驗。」