日本国内事例:自動車分野でのCI/CDと自動化の取り組み
(本内容は、GitLab Connect 2022の講演内容を記事化したものをご紹介しています。)
ルネサスエレクトロニクスについて
ルネサスエレクトロニクスは「To Make Our Lives Easier」を掲げ、自動車、産業、インフラ、IoTの4つの成⻑分野へソリューションを提供することで、より安全で、健康でスマートな社会に発展させることをパーパスとしている。
半導体デバイスをはじめとするルネサスの製品は、日々の暮らしに欠かせないあらゆる組込み機器に搭載されている。特に、自動車分野においては、信頼性の高い車載制御や自動運転技術、電気自動車などに適用されている。
今回は、自動車分野のソフトウェア開発にフォーカスしてCI/CD(継続的インテグレーションと継続的デリバリー)の取り組みを紹介したい。
自動車業界でなぜCI/CDなのか
自動車業界でなぜ、ソフトウェア開発にCI/CDが求められているのだろうか。
自動車業界は今、100年に1度の変革期と言われる。背景には「環境への配慮」「安全・セキュリティ」「快適・便利」を重視するエンドユーザーの価値の変化がある。そして、「コネクティビティ」「自動運転」「シェアード&サービス」「電動化」「パーソナライゼーション」といった業界を取り巻くトレンドが相まって、「Software-Defined Vehicle」というアーキテクチャ変革、すなわち、ソフトウェア
がクルマの価値を決める時代になりつつある。
自動車のソフトウェア化によって、車載ソフトウェアは大規模化、複雑化しており、車載ソフトウェアをより早く、高品質で開発し、市場に投入できることが求められている。
こうした市場環境の中、ルネサスは「品質を損なうことなく、頻繁にソフトウェアを届ける」ことをポリシーとしてきた。しかし、ソフトウェアのリリース頻度は早くても6ヵ月、⻑くて2年であった。よりリリース頻度を高め、お客様へ頻繁に信頼性の高い製品を届けるために、最新のCI/CD技術による段階的な開発と完全な自動化が必要不可欠だった。
ルネサスのグローバルなCI/CDインフラ
ルネサスでは、車載ソフトウェアの開発者向けに「R-Car」というSDK(ソフトウェア開発キット)を開発するCI/CDインフラを構築し、2020年からDevOpsの運用を本格的に開始した。このインフラ上で、グローバルの4つのリージョンの500人もの開発者が、共通システム上を介して30以上のプロジェクトでSDKの開発に従事している。
世界中の開発者が並行して作成したソフトウェアは、開発者がコードをプッシュするたびにシステムが自動でビルドを行い、テストされ品質が確認される。そして、SDKにパッケージされ月1回の頻度でお客様である自動車メーカーに届けられている。
CI/CDのパイプラインの大まかな流れは次のとおりだ。まず、CIフェーズでは、各開発者が自身のコードをプッシュしたら、コードやドキュメント上のレビューをマージリクエスト上で実施する。ドキュメントの生成、自動テストを経て開発チームの承認、マージが行われる。そして、CDフェーズでは、1日1回の頻度でSDKにパッケージされ、SDKのテストを実施し、品質を確認して、月1回の頻度でお客様にデリバリーされる。これにより、1ヵ月サイクルでのSDKリリースを実現している。
3つの課題
課題1.「分断された開発環境」
課題2.「品質担保と規模の両立」
課題3.「組み込みソフトウェアのテスト自動化」
DevOps開始当初は、チームごとに異なる開発ツールを利用していたため、それが開発の効率化を妨げる課題となっていた。
そこで、DevOpsプラットフォームをGitLabに統一することにした。GitLab採用の決め手は大きく2つあり、1つは「ジオレプリケーション」などのグローバルな開発体制を支える機能が搭載されていること。
そして2つめは、マージリクエストのアプルーバル(承認)など、組織で品質を保つための運用に有用な機能が搭載されていることだ。
具体的なGitLab活用
(続きは以下リンクにてお読みいただけます)
弊社パートナー様はNetworld Dev Portal アカウント(無料)登録いただくと、GitLabパートナー制度や DevSecOps関連提案資料などのパートナー限定コンテンツがご覧いただけます。
DevSecOps全般、GitLab製品または本サイトについては以下よりお問い合わせ下さい。