Linux基金會旗下的EdgeX Foundry其邊緣運算物聯網軟體EdgeX,釋出第二個名為California的主要更新版本,這個版本主打安全性與彈性,安全功能新增了反向代理(Reverse Proxy)與安全憑證儲存,另外,EdgeX也使用Go語言重新改寫,整體容量縮小效能提升,使其能夠在樹莓派3上執行。

EdgeX是具備標準、開源和實務操作性等特色的物聯網邊緣運算開發框架。EdgeX主要貢獻開發者Jason A. Shepherd提到,他們的目標是要分離連接標準與應用程式的裝置介面,EdgeX也因為獨立平臺和鬆散耦合的微服務,獲得更好的彈性與擴展性,並能使用通用API將不同語言開發的服務整合在一起。

California是接著去年10月的Barcelona後的版本,Barcelona版本提供參照裝置服務,支援BACNet、Modbus、低功耗藍牙(BLE)、MQTT、SNMP和Fischertechnik,另外,也支援Azure IoT套裝和Google IoT Core連接器。而California版本釋出的主要更新目的為提升安全性,新增基於Kong的反向代理,以保護REST API通訊與機密儲存。新的反向代理要求任何EdgeX微服務的外部客戶端,在載入EdgeX API前先進行身分認證。

新的機密儲存則是採用基於HashiCorp的開源Vault,這個功能可以讓使用者用EdgeX,安全的儲存諸如帳號密碼等敏感資料,執行加密、向企業發出HTTPS呼叫或是將EdgeX安全地連接雲端供應商等工作。Jason A. Shepherd提到,反向代理與機密儲存是EdgeX建構其他功能的基礎,不過,在Barcelona版本的EdgeX還沒有安全性的功能,因為他們希望安全性功能可以完整的由產業專家社群共同制定,於California版本一起推出。

EdgeX的另一個重大的改變,便是將開發語言從原本的Java轉移至Go,官方提到,雖然這個工作讓California版本發布延遲了數個月,但是結果卻十分值得。EdgeX的容量、啟動時間、記憶體使用與CPU使用率都大幅度的下降。用Java開發的EdgeX容量高達267MB,如果加上容器的話就更可觀了達519MB,不過改用Go開發後只有42MB,即便加上容器也只有68MB,記憶體的使用效率提升也很可觀,從原本Java需要的1302MB縮減到了27MB,啟動時間也從35秒縮短到了一秒以內。

這樣的效能提升,讓官方可以指定樹莓派3作為官方平臺。Jason A. Shepherd表示,Go語言的並發模型比其他開發語言優秀,由Google支援外,也與其他諸如Docker和Kubernetes等軟體工具整合良好,不過他也提到,將EdgeX從Java轉為Go語言開發,原因也不完全是效能考量,同時也是為了避免向Java支付授權費用。

不過,Go只是一個基準參照語言,開發者仍然可以用其他語言使用相同的API,而專案的裝置服務SDK也同時支援了C語言。他提到,C比Go更能節省空間,因此對於那些建構低階的邊緣運算應用,可能是更好的選擇,但是之所以EdgeX Foundry最後選擇了Go最為主要支援語言,是因為他在硬體和作業系統上更加獨立。

官方預告,今年10月還會釋出Delhi版本,即將會新增可管理性服務、裝置服務SDK、改進單元與效能測試,以及測試用基本的EdgeX使用者介面。同時也還會持續改進Kong和Vault的安全功能。


Advertisement

更多 iThome相關內容