“云技術(shù)永遠(yuǎn)不會(huì)用于汽車開發(fā)“。說(shuō)到云部署在汽車行業(yè)的應(yīng)用,業(yè)界曾經(jīng)認(rèn)為云技術(shù)并不適合用在汽車行業(yè)的產(chǎn)品開發(fā)。知識(shí)產(chǎn)權(quán)保護(hù)、數(shù)據(jù)的安全、流程不夠透明、遷移成本過(guò)高、IT部門的保守等種種現(xiàn)實(shí)問(wèn)題成為了云技術(shù)應(yīng)用在汽車開發(fā)上的阻礙。然而,隨著電動(dòng)車巨頭特斯拉等一眾公司的成功,行業(yè)的發(fā)展趨勢(shì)變得不言自明: 汽車行業(yè)正朝著更加注重軟件驅(qū)動(dòng)的方向發(fā)展,越來(lái)越多的OEM正重新定位,將重心放在軟件和技術(shù)方面。驅(qū)動(dòng)這樣的轉(zhuǎn)變的因素有很多,比如高級(jí)輔助駕駛系統(tǒng) (ADAS),電動(dòng)出行技術(shù) (E-mobility) ,以及信息娛樂(lè)和舒適系統(tǒng)的開發(fā)等。總的來(lái)說(shuō),汽車行業(yè)已經(jīng)開始采用云技術(shù)推動(dòng)汽車軟件的設(shè)計(jì),汽車軟件向著更先進(jìn),更智能的方向邁進(jìn)。本文著重探討云技術(shù)在汽車行業(yè)應(yīng)用的優(yōu)勢(shì)和注意事項(xiàng),以及其在汽車行業(yè)軟件設(shè)計(jì)質(zhì)量保證領(lǐng)域的實(shí)際應(yīng)用。
云技術(shù)的關(guān)鍵要素
首先明確云技術(shù)應(yīng)用的關(guān)鍵要素。云技術(shù)是一種按需提供計(jì)算存儲(chǔ)網(wǎng)絡(luò)或其他IT資源的計(jì)算模式。對(duì)于云技術(shù)而言,算力和應(yīng)用程序可在任意位置的集中式服務(wù)器農(nóng)場(chǎng)中運(yùn)行,這些服務(wù)器不受空間約束,可以是OEM在本地的部署,也可以是各個(gè)地方公共云上的服務(wù)器。虛擬機(jī) (VM) 是一種虛擬的計(jì)算環(huán)境,是云技術(shù)的關(guān)鍵資源。在這些服務(wù)器當(dāng)中,使用虛擬機(jī)進(jìn)行計(jì)算,并可以根據(jù)工作的負(fù)載動(dòng)態(tài)部署或撤銷。理論上,云計(jì)算的算力可以無(wú)限擴(kuò)展。個(gè)人電腦的角色也十分重要,是云計(jì)算中與云計(jì)算中心計(jì)算能力進(jìn)行交互的主要接口。帶寬資源在云計(jì)算中同樣值得提及,為了使云應(yīng)用程序發(fā)揮作用,需要足夠的帶寬接入使設(shè)備可以實(shí)現(xiàn)快速的互聯(lián)網(wǎng)連接,并需要監(jiān)控實(shí)際使用的應(yīng)用服務(wù),以確保一切正常運(yùn)行。這些云技術(shù)的要素幫助提高了開發(fā)工作的靈活度,并使工作更容易擴(kuò)展。從企業(yè)的角度來(lái)說(shuō),云技術(shù)能夠幫助企業(yè)降低成本,提高效率。
圍繞云技術(shù),關(guān)鍵的概念也有很多。容器 (Container) 是一種把應(yīng)用程序及其依賴項(xiàng)到打包在一起的一種技術(shù),使其可以方便地在云環(huán)境中部署運(yùn)行及管理應(yīng)用程序。容器技術(shù)常見(jiàn)的一種實(shí)現(xiàn)被稱為Docker, Docker是一種開源的容器化平臺(tái),可以幫助開發(fā)者將應(yīng)用程序及依賴項(xiàng)打包,并在支持Docker的環(huán)境中運(yùn)行,使其不受環(huán)境差異的影響。對(duì)于集群技術(shù),Kubernetes (又稱k8s) 是一種容器編排系統(tǒng),幫助企業(yè)管理容器化的應(yīng)用程序。Automation (自動(dòng)化),作為云計(jì)算的重要概念,其目的在于降本增效。對(duì)于自動(dòng)化管道及構(gòu)建管道,Jenkins、 Bamboo、Git等等常被提及。Jenkins是一個(gè)由Java編寫的、開源的持續(xù)集成的工具,類似的還有Bamboo。Jenkins主要幫助團(tuán)隊(duì)進(jìn)行自動(dòng)化的構(gòu)建、測(cè)試和發(fā)布過(guò)程,提高軟件交付的效率及質(zhì)量。此外,同樣需要版本控制系統(tǒng)的支持,比如Git。可以使用Git來(lái)追蹤項(xiàng)目的變化,協(xié)同開發(fā)。倉(cāng)庫(kù) (Repository) 用于存儲(chǔ)云技術(shù)相關(guān)的軟件要素。IaaS (基礎(chǔ)架構(gòu)即服務(wù)),PaaS (平臺(tái)即服務(wù)) 和SaaS (軟件即服務(wù)) 是云服務(wù)的主要類型。IaaS (基礎(chǔ)架構(gòu)即服務(wù)) 提供計(jì)算存儲(chǔ)網(wǎng)絡(luò)資源,用戶可以按照實(shí)際使用需求支付費(fèi)用。PaaS (平臺(tái)即服務(wù)) 提供開發(fā),部署和運(yùn)用應(yīng)用程序的平臺(tái)。SaaS (軟件即服務(wù)) 提供已經(jīng)預(yù)先構(gòu)建好的軟件應(yīng)用程序。CaaS (內(nèi)容即服務(wù)) 以提供消費(fèi)者基礎(chǔ)網(wǎng)絡(luò)資源以及操作系統(tǒng)服務(wù)為中心。DbaaS (數(shù)據(jù)庫(kù)即服務(wù)) 為客戶提供數(shù)據(jù)庫(kù)的訪問(wèn),而無(wú)需部署或管理底層的基礎(chǔ)設(shè)施。無(wú)服務(wù)器 (Serverless) 通常稱為功能即服務(wù) (FaaS),是以PaaS (平臺(tái)即服務(wù)) 為基礎(chǔ),提供一個(gè)微型的架構(gòu),中層客戶無(wú)需部署配置或者管理服務(wù)器的服務(wù),代碼運(yùn)行所需要的服務(wù)器服務(wù)都由云端平臺(tái)來(lái)提供。對(duì)于小型公司來(lái)說(shuō),可以運(yùn)用云計(jì)算來(lái)托管其網(wǎng)站應(yīng)用程序,無(wú)需投資建立自己的硬件軟件,從而節(jié)省支出。而大型企業(yè)也可以使用云計(jì)算技術(shù)來(lái)擴(kuò)展IT基礎(chǔ)設(shè)施,以滿足業(yè)務(wù)需求的多樣化。
行業(yè)機(jī)遇與挑戰(zhàn)
云技術(shù)的關(guān)鍵詞和主要運(yùn)用形式已作過(guò)介紹,下面來(lái)關(guān)注云技術(shù)的應(yīng)用優(yōu)勢(shì)和面對(duì)的挑戰(zhàn)??蓴U(kuò)展性是云計(jì)算的首要和關(guān)鍵優(yōu)勢(shì)。靈活的工具配置使云計(jì)算可以更好地適應(yīng)不同的工作場(chǎng)景和負(fù)載。集中的管理可以實(shí)現(xiàn)實(shí)時(shí)的監(jiān)控,使運(yùn)作流程透明且可控。全局的標(biāo)準(zhǔn)化同樣重要,云計(jì)算可以提供一種更為精簡(jiǎn)工作流的實(shí)現(xiàn)過(guò)程,同時(shí)其易維護(hù)性保障了系統(tǒng)的可維護(hù)性和高效利用。云計(jì)算的這些優(yōu)勢(shì)幫助企業(yè)達(dá)到降低成本,同時(shí)提高透明度的作用。
當(dāng)然,云技術(shù)同樣面臨一些挑戰(zhàn)。首先,由于云計(jì)算的應(yīng)用可能需要用戶更改其原本的工具使用模式,這使得用戶的使用習(xí)慣面臨改變,不適應(yīng)的情況可能出現(xiàn),用戶的接受度成為一大挑戰(zhàn)。此外,將項(xiàng)目完全遷移至云端也會(huì)耗費(fèi)一定時(shí)間,項(xiàng)目的運(yùn)行速度或進(jìn)展可能因此延緩,企業(yè)在進(jìn)行遷移前需要更好的準(zhǔn)備工作以應(yīng)對(duì)這些問(wèn)題。云端工具鏈的不夠完備,一些重要的工具可能還未實(shí)現(xiàn)云端化,云工具鏈的不完備也可能造成困擾,需要技術(shù)的持續(xù)發(fā)展來(lái)幫助工具鏈實(shí)現(xiàn)完全云端化。使用云技術(shù)還可能會(huì)導(dǎo)致企業(yè)對(duì)第三方服務(wù)的依賴,這其中也存在風(fēng)險(xiǎn)。
汽車行業(yè)中云部署的經(jīng)典案例
在汽車行業(yè)的軟件開發(fā)和測(cè)試中,云部署架構(gòu)的實(shí)際應(yīng)用主要有兩種: “桌面云”和“過(guò)程云”?!白烂嬖啤币杂脩魹橹行摹T谶@種應(yīng)用案例中,最終的用戶,也就是PC前的工作人員,通過(guò)傳統(tǒng)PC觸發(fā)應(yīng)用程序,而算力和數(shù)據(jù)存儲(chǔ)在云端的某服務(wù)器農(nóng)場(chǎng)中。從用戶體驗(yàn)上來(lái)說(shuō),基本與傳統(tǒng)PC無(wú)異。使用的軟件與應(yīng)用以交互的方式被使用?!斑^(guò)程云”則是以過(guò)程為中心,在用戶端以自動(dòng)化流程觸發(fā)應(yīng)用程序,其觸發(fā)的自動(dòng)化管道前文已有所介紹,主要有Jenkins、Git和Bamboo等等工具。最終的結(jié)果以報(bào)告或事件的方式自動(dòng)分發(fā)。
下面來(lái)分析具體架構(gòu)案例。對(duì)于軟件開發(fā)來(lái)說(shuō),當(dāng)開發(fā)人員和測(cè)試人員向Git倉(cāng)庫(kù) (Git Repository) 提交 (Commit) 一個(gè)模型更新或測(cè)試變更時(shí),此行為會(huì)主動(dòng)觸發(fā) (Trigger) Jenkins主節(jié)點(diǎn)上的自動(dòng)化管道,此自動(dòng)化管道中包含了一系列對(duì)測(cè)試環(huán)境的描述。當(dāng)測(cè)試環(huán)境描述文件發(fā)生變更時(shí),Jenkins主節(jié)點(diǎn)作為數(shù)據(jù)中心樞紐被自動(dòng)觸發(fā),負(fù)責(zé)控制和分發(fā)這些更改的管道設(shè)置。Jenkins主節(jié)點(diǎn)首先向代理節(jié)點(diǎn) (Agent Nodes) 請(qǐng)求部署,隨后,代理節(jié)點(diǎn)會(huì)向云端倉(cāng)庫(kù) (Container Repository) 請(qǐng)求下載相應(yīng)的容器 (Docker)。如圖1所示,Docker倉(cāng)庫(kù)中,已部署好適應(yīng)不同平臺(tái) (Windows或Linux) 的容器包。隨后,適合系統(tǒng)要求的容器包將被請(qǐng)求并部署至Jenkins代理節(jié)點(diǎn)上。容器包(Docker)隨后接收到自動(dòng)化管道發(fā)出的命令,繼而從Git倉(cāng)庫(kù) (Git Repository) 簽出 (Check Out) 相應(yīng)的模型及配置文件等需要的信息。并根據(jù)具體指令進(jìn)行靜態(tài)分析。Jenkins主節(jié)點(diǎn)隨后請(qǐng)求結(jié)果,而分析結(jié)果將會(huì)被發(fā)送回Jenkins主節(jié)點(diǎn),并自動(dòng)存儲(chǔ)。最后,Jenkins主節(jié)點(diǎn)負(fù)責(zé)向代理節(jié)點(diǎn) (Agent Nodes) 請(qǐng)求取消部署,關(guān)閉不再需要的容器 (Docker),并將最終報(bào)告發(fā)送給開發(fā)或測(cè)試人員。
圖 1:桌面云設(shè)置
而從用戶出發(fā),用戶端 (User Clients) 也可以進(jìn)行擴(kuò)展,通過(guò)使用終端服務(wù)器來(lái)完成開發(fā)、測(cè)試和分析全過(guò)程 (由圖2所示)。用戶可以是單一或多個(gè)開發(fā)或測(cè)試人員從終端服務(wù)器 (Terminalserver) 登錄。服務(wù)器會(huì)針對(duì)不同的工作環(huán)境和要求匹配不同的工具鏈并進(jìn)行設(shè)置。如果需要相應(yīng)的工具許可,可以向浮動(dòng)許可證服務(wù)器發(fā)送相應(yīng)請(qǐng)求,而相應(yīng)的許可也可以被托管在不同位置。為保證安全,服務(wù)器通常配置為冗余或異地冗余的模式。這種情況下,由提交 (Commit) 操作自動(dòng)觸發(fā)的Jenkins主節(jié)點(diǎn)分發(fā)相應(yīng)的自動(dòng)化管道 (Automation Pipeline) 到代理節(jié)點(diǎn) (Agent Nodes) ,代理節(jié)點(diǎn) (Agent Nodes) 則可以通過(guò)Kubernetes進(jìn)行擴(kuò)展,從而由靜態(tài)擴(kuò)展轉(zhuǎn)向可擴(kuò)展的代理,進(jìn)而實(shí)現(xiàn)云環(huán)境的擴(kuò)展。
圖 2:可擴(kuò)展的云端自動(dòng)化
對(duì)于云架構(gòu)的過(guò)程支持,如果需要容器中的軟件工具,MES模賽思可以提供相應(yīng)的容器模板輔助構(gòu)建配置。
許可模式及工具鏈的云部署
回顧此前的關(guān)鍵詞解釋,根據(jù)云服務(wù)商交付模式的不同,云服務(wù)模型主要可以分為:
- 軟件即服務(wù) (SaaS)
- 平臺(tái)或基礎(chǔ)架構(gòu)即服務(wù) (PaaS or IaaS)
軟件即服務(wù) (SaaS) 中,用戶應(yīng)用是托管服務(wù)的集成部分,按使用量付費(fèi)是主要的業(yè)務(wù)開展方式。平臺(tái)或基礎(chǔ)架構(gòu)即服務(wù) (PaaS or IaaS) 需要關(guān)注客戶租用的算力以及操作系統(tǒng)的容量。平臺(tái)即服務(wù) (PaaS) 包括操作系統(tǒng)及數(shù)據(jù)庫(kù),而基礎(chǔ)架構(gòu)即服務(wù) (IaaS)包括硬件和虛擬機(jī) (VM)。使用平臺(tái)或基礎(chǔ)架構(gòu)即服務(wù) (PaaS or IaaS) 的客戶擁有應(yīng)用軟件的所有權(quán)和許可,并可以通過(guò)定制計(jì)劃來(lái)明確使用成本。而在高工作負(fù)載的情況下,額外容量變得非常重要,因此,更為靈活的動(dòng)態(tài)訂閱模式能夠在超出常規(guī)用量的情況下提供額外的支持。
對(duì)于MBD工具鏈來(lái)說(shuō),行業(yè)的主流為基礎(chǔ)架構(gòu)托管。應(yīng)用及工具鏈多保存在公司內(nèi)部,這樣的架構(gòu)有利于對(duì)開發(fā)過(guò)程的監(jiān)控和靈活調(diào)控。對(duì)于汽車廠商,基礎(chǔ)架構(gòu)即服務(wù) (IaaS) 是主要的云技術(shù)運(yùn)用方式。動(dòng)態(tài)許可模式是目前行業(yè)的需求所在,也是MES模賽思所使用的許可模式。
MES模賽思的工具鏈目前已完全適配云許可的模式,并可以提供Windows和Linux版本。對(duì)于汽車行業(yè)來(lái)說(shuō),許可訂閱是主流選擇。許可模式的一種是開發(fā)者云桌面,用于交互式云環(huán)境,為桌面遷移到云設(shè)計(jì)。對(duì)于許可模式的覆蓋范圍,自動(dòng)化全球云覆蓋全球許可,做到完全自動(dòng)化和高動(dòng)態(tài),并且可以在全球任何地方使用,為過(guò)程遷移到云設(shè)計(jì)。同樣,目前MES模賽思支持在云端設(shè)置MBD工具鏈,并可為試點(diǎn)項(xiàng)目提供基于云的沙箱環(huán)境,并為Docker容器提供配置模板。MES模賽思同樣支持在云端設(shè)置的自動(dòng)化管道 (Automation Pipeline) 。
圖 3:MES模賽思云服務(wù)
如圖3所示,從技術(shù)咨詢,到工具與工作流,最后到構(gòu)建與遷移,MES模賽思能夠?yàn)榭蛻籼峁┰撇渴鸬娜讨С郑瑤椭蛻魧?shí)現(xiàn)工具鏈的云部署。
MES模賽思軟件技術(shù)有限公司(Model Engineering Solutions,簡(jiǎn)稱MES)是一家高科技軟件公司,專為軟件項(xiàng)目的質(zhì)量保證提供解決方案。MES為客戶基于模型的軟件開發(fā)提供技術(shù)支持,使其符合IEC 61508、ISO 26262或ASPICE等行業(yè)標(biāo)準(zhǔn)。
MES模賽思的主要客戶包括整車廠如戴姆勒、大眾、豐田和吉利等以及博世、西門子和三星等行業(yè)供應(yīng)商。在汽車行業(yè)中,除少數(shù)幾家公司外,全球數(shù)十家頂尖制造商及供應(yīng)商均在他們的開發(fā)環(huán)境中使用MES的解決方案。為支持其全球客戶,MES已在美國(guó)和中國(guó)建立了子公司,并與全球分銷商網(wǎng)絡(luò)緊密合作。
MES模賽思的產(chǎn)品包括4種質(zhì)量工具軟件:MES Model Examiner?、MES Test Manager?、MES Model & Refactor?和MES Quality Commander?,它們共同構(gòu)成了一個(gè)工具鏈,全面保障基于模型的軟件開發(fā)過(guò)程中所有階段的質(zhì)量。通過(guò)MES Jenkins Plugin,該工具鏈也可以在持續(xù)集成環(huán)境中使用。工具鏈主要應(yīng)用平臺(tái)為MATLAB?Simulink?。除了MES質(zhì)量工具外,MES測(cè)試中心和MES學(xué)院的專家們還為全球客戶提供關(guān)于質(zhì)量保證和開發(fā)流程優(yōu)化的定制咨詢服務(wù)及培訓(xùn)課程。
MES模賽思是dSPACE 公司的戰(zhàn)略合作伙伴和MathWorks及ETAS的產(chǎn)品合作伙伴。MES學(xué)院與SAE International有合作關(guān)系。