最近在研究汽車( Automotive)產業,看到一個有趣也熟悉的議題,也就是牽扯到軟硬整合的 Automotive 產業該怎麼導入 DevOps ?以往我們熟悉的 DevOps 不就是寫好 code 把 code 部署上去營運就好?(好啦這是過度簡化版)。不過把這個情境移到 Automotive 產業就變成得更加複雜了,也順帶產生一堆需要被解決的問題,也正因為這樣才會看到 Jfrog 的 Automotive DevOps Summit。
雖然早在 2012 年研究 DevOps 工具時就知道 Jfrog ,但那時候只把它當作 Artifactory 看待,後沒就沒繼續追蹤下去,沒想到他已經轉型成 SaaS 公司並且在 NASDAQ 上市,後續還持續演進緊抓著 DevOps 的議題,有興趣的可以參考這篇文章介紹的很清楚:美股個股分析- 乘著DevOps浪潮的的SaaS公司- JFrog Ltd.(NASDAQ:FROG)。然後大概是 2019 年他們開始切入 Automotive 產業,在官網上可以看到這篇文章 Automotive DevOps: Rules of the Road Ahead,裡面描述為什麼這個議題突然變得如此重要?因為 Autonomous Cars are Code,現代的車子裡面充滿了各種微電腦和程式,更不用說未來的自駕車,下圖是一個系統裡面會有多少程式。
而這些程式都需要遵守這些 Rule,就很需要 DevOps 實踐:
- Rule 0: Don’t kill anyone!
- Rule 1: Should be up-to-date with the turn of a key.
- Rule 2: The car should get better over time.
- Rule 3: Reduce anxiety for drivers and developers.
Automotive 產業的 DevOps
那首先 Automotive 產業的DevOps會遇到哪些問題?這個 talk 第一個吸引我的注意力:How the Automotive Industry can enjoy modern DevOps for C & C++,因為一但牽扯到軟硬整合,基本上所使用的語言不是 C 就是 C++。
一但牽扯到 C/C++,接下來就會遇到 portable 的問題:
- 問你要運行在哪個平台?
- 怎麼 build?
- 怎麼 include 和管理 lib 和第三方 lib?
- 要以怎樣的形式發佈和管理 binary 欓?
在這個 talk 裡面提到一個專門為了解決這個問題開發的 Open source 套件 Conan, the C and C++ package manager,在這個使用清單裡面也可以看到許多車廠都有參與其中。
大概看一下設定黨的內容跟 pip 的設定很像
[requires] poco/1.9.4 [generators] gcc cmake txt [options] poco:shared=True openssl:shared=True [imports] bin, *.dll -> ./bin # Copies all dll files from the package "bin" folder to my project "bin" folder lib, *.dylib* -> ./bin # Copies all dylib files from the package "lib" folder to my project "bin" folder
另外一個重點是他跟 build system 是可以獨立分開的
更多詳細內容可以看他們的文件:conan document
不過我想接下來要研究的應該就是,如何管理各種平台和版本的 lib,甚至如何跟Git branch 搭配,想起來就蠻複雜的。
沒有留言 :
張貼留言