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