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