Arm 的 SOAFEE 將汽車帶到云端,第一部分
Arm 宣布了其 SOAFEE(嵌入式邊緣的可擴展開放架構(gòu))軟件框架項目。其他公司也參與其中,預(yù)計還會有更多公司加入。Arm 將 SOAFEE 定義為實時運行且具有安全意識的開放軟件架構(gòu)和參考軟件實現(xiàn)。
該軟件架構(gòu)使云技術(shù)能夠與汽車功能安全和實時要求相結(jié)合。SOAFEE 原型設(shè)計和早期開發(fā)正在進(jìn)行中。
這是 Arm 的一個絕妙之舉,而且很有可能成功。SOAFEE 利用了汽車軟件開發(fā)的許多增長趨勢,包括使用云平臺以及相關(guān)技術(shù)和生態(tài)系統(tǒng)。SOAFEE 還可以從汽車對軟件即服務(wù) (SaaS) 不斷增長的需求中受益。
下表總結(jié)了 Arm SOAFEE 項目。
SOAFEE解釋
開源參考項目是用于云軟件開發(fā)的軟件框架,部署為嵌入式汽車代碼。
SOAFEE 的目標(biāo)是利用云原生開發(fā)的優(yōu)勢來解決汽車復(fù)雜性的挑戰(zhàn)和限制,例如功能安全和實時控制。云原生包括許多技術(shù)、工作流程和設(shè)計策略,可以改進(jìn)汽車軟件的開發(fā)、部署和更新——從生產(chǎn)到車輛生命周期。
SOAFEE 還利用了兩個較早的 Arm 計劃——Project Cassini 和 Arm SystemReady。Project Cassini 是一項開放、協(xié)作、基于標(biāo)準(zhǔn)的計劃,旨在跨 Arm 的邊緣生態(tài)系統(tǒng)提供云原生軟件。Project Cassini 利用各種基于 Arm 的平臺為邊緣應(yīng)用程序創(chuàng)建安全基礎(chǔ)。
SystemReady 是一個基于一組硬件和固件標(biāo)準(zhǔn)的合規(guī)認(rèn)證計劃。這些標(biāo)準(zhǔn)包括基本系統(tǒng)架構(gòu)和基本啟動要求規(guī)范以及特定于市場的補充。
一個特別興趣小組已經(jīng)啟動,但到目前為止還沒有可用的網(wǎng)站。已經(jīng)支持 SOAFEE 的 20 家公司是 SIG 成員,預(yù)計還會有更多公司加入。
云原生
SOAFEE基于Arm平臺開發(fā)汽車軟件具有多重優(yōu)勢,加速汽車軟件開發(fā)和部署的云原生技術(shù)。
跨基于 Arm 的硬件和軟件平臺的軟件可移植性將會增加。由于更好的開發(fā)工具,軟件質(zhì)量也有望提高。代碼數(shù)量也應(yīng)該基于更快的開發(fā)時間和更低的成本而增長。
許多優(yōu)勢都基于 SOAFE 使用的技術(shù),總結(jié)如下。軟件容器是實現(xiàn)許多 SOAFEE 優(yōu)勢的關(guān)鍵技術(shù)。
云原生技術(shù)已成功用于云軟件開發(fā),是 SOAFEE 框架的核心。這些技術(shù)是軟件容器、微服務(wù)架構(gòu)、編排器和 DevOps。以下是 Arm白皮書的摘要,解釋了其 SOAFEE 方法。
容器技術(shù)對于汽車軟件來說可能是最重要的。與運輸集裝箱的類比是有用的:運輸集裝箱在運輸過程中將內(nèi)容物與其他貨物隔離,保護(hù)內(nèi)容物免受天氣和盜竊。
軟件容器包括應(yīng)用程序代碼、配置文件、庫和運行應(yīng)用程序所需的依賴項??梢詫⑷萜饕暈榭梢砸浦驳狡渌到y(tǒng)的虛擬化應(yīng)用程序。但是,容器與特定的操作系統(tǒng)及其硬件和軟件功能相關(guān)聯(lián)。
軟件容器在云部署和數(shù)據(jù)中心中運行良好。SOAFEE 使用與部署在汽車 ECU 中的相同技術(shù)進(jìn)行云開發(fā)。
顧名思義,微服務(wù)是一種面向服務(wù)的架構(gòu)方法,其中應(yīng)用程序構(gòu)建為小型獨立服務(wù)單元的集合。軟件工程方法側(cè)重于將應(yīng)用程序劃分為具有良好定義接口的單功能模塊。在云原生部署中,微服務(wù)封裝在容器中。這使微服務(wù)能夠在定義的容器運行時環(huán)境中執(zhí)行,并且可以由編排器管理和監(jiān)控部署。
微服務(wù)被定義為松耦合,因為對一項服務(wù)的更改不應(yīng)影響另一項服務(wù)的性能。這意味著微服務(wù)可以獨立于系統(tǒng)的其余部分進(jìn)行測試。該結(jié)構(gòu)允許在對完全組合的系統(tǒng)進(jìn)行集成測試之前對復(fù)雜的系統(tǒng)進(jìn)行劃分,以測試單個服務(wù)。
編排器是云原生生態(tài)系統(tǒng)的重要組成部分,負(fù)責(zé)管理基于微服務(wù)的應(yīng)用程序的配置、部署和監(jiān)控。編排器使用多個標(biāo)準(zhǔn)接口:
· 編排器和容器運行時之間的容器運行時接口;
· 容器網(wǎng)絡(luò)接口,用于配置和控制網(wǎng)絡(luò)、防火墻和其他組件的標(biāo)準(zhǔn);
· 容器存儲接口,用于暴露容器實例可用的存儲;和
· 啟用對容器內(nèi)系統(tǒng)資源的托管訪問的設(shè)備插件。
編排器使用這些接口通過啟用微服務(wù)之間的通信和訪問正確操作所需的數(shù)據(jù)來管理復(fù)雜的應(yīng)用程序部署。
有幾個編排器選項,Kubernetes 成為默認(rèn)的行業(yè)標(biāo)準(zhǔn)。Kubernetes 也稱為 K8s,是一種開源編排器,用于自動部署、擴展和管理容器化應(yīng)用程序。輕量級 Kubernetes 或 K3 占用空間更小,更適合嵌入式和資源受限的環(huán)境。
云原生的工作流方面稱為 DevOps,開發(fā)工作流與部署操作相結(jié)合。以定義和管理的方式結(jié)合這兩個學(xué)科可以簡化應(yīng)用程序的開發(fā)、部署和持續(xù)改進(jìn)。
DevOps 對于在車輛生命周期內(nèi)管理汽車軟件特別有用,包括網(wǎng)絡(luò)安全、無線錯誤修復(fù)和功能軟件更新以及越來越多的 SaaS。