画像
Masaru Nagai
永井 優
主任技師
掲載: 2022年6月3日

概要

高度な自動運転社会の実現に向けて、大規模かつ複雑なソフトウェアプラットフォームを開発し、ユーザーへ常に最新で届けるために、ルネサスではDevOps手法を適用しています。

背景

DevOpsとはソフトウェアの開発モデルの1つです。DevOps では、ソフトウェアを迅速にビルド・テストし、エンドユーザーへのリリースを、従来よりも早く、高い頻度かつ高品質で可能とします。しかし、DevOpsを実際に適用するためには、継続的インテグレーション/デリバリー (CI/CD)、システムのモニタリングといった技術的な側面に加えて、共通の目的のもと組織全体で協調するために、情報を共有、承認プロセスの効率化、技術や仕掛り制限のような改善のためのプラクティス (手法・やり方) などの学習を重視する文化の醸成、 といったプロセス/文化的な側面についての能力も必要となります。 Google Cloud DORA (DEVOPS RESEARCH & ASSESSMENT) チームがほぼ毎年発行しているレポート State of DevOps Reportによれば、最も効果的にDevOpsを実践しているElite パフォーマーは、一日数回以上のデプロイ頻度を実現しながら、安定性においては他よりも高い成果をあげています。デプロイ頻度はソフトウェアの開発スピード、安定性は品質と読み替えることができます。つまり、DevOpsを適用することで、ソフトウェア開発スピードと品質、その両面を同時に改善することが期待できます。

現在、自動車業界全体はソフトウェアファーストの考え方のもと、商品開発での開発自由度確保と商品力向上のため、ハードとソフトを分離、その上でソフトを先行して開発・実装する開発スタイルへの変革をすすめています。この変化に対応するためには、高品質なソフトウェアをこれまでよりも迅速かつ頻繁にリリースできなければなりません。そのため、車載ソフトウェア開発においても、DevOpsモデルへの適応は必要不可欠となってきており、すでに各社取り組みを始めています。DevOpsワークフロー、テクノロジや文化への対応は自動車業界全体で取り組むべき課題となっています。

画像
DevOps concepts
DevOps concepts

具体例

当社の車載ソフトウェア開発においても、DevOps への組織的な変革に2020年から取り組み始め、シングルメインライン開発、デバイス/OSへの依存を低減するSWアーキテクチャへの見直し、組織的な DevOps 開発インフラストラクチャの構築といった取り組みを実施してきました。その結果は、R-Car SDK の開発に活かされており、従来はデバイス/OS毎に異なる製品を開発し、それぞれの製品を半年から2年かけてリリースしていたものを、サポートしている全てのデバイス/OS向け製品を同時に3ヶ月毎に定期的に顧客リリースできるようにまでなりました。

実現にあたり課題となったのは、DevOps開発での自動テスト,レビューを支援する新しいリポジトリ管理システムや小さな変更を段階的に積み上げるアジャイル型ワークフローへ対応するためのプロセス/文化の変革、組み込みソフトウェア特有の評価ボードを用いた自動テストの実現です。

これらの課題を解決するためにDevOps開発インフラストラクチャ構築の専任チームを立上げ、DevOpsの肝となるCI/CDの実現に向けて設定したゴールに対し、各チームの進捗状況を定量的に測定、フィードバックを実施、加えてCI/CDやアジャイル開発等のトレーニングや自動テストの仕組み構築などに継続的に取り組んできました。

例えば、本SDKの開発には日本, 欧州, 米国, ベトナム の 4つの開発拠点から約300人の開発者が参加、月あたり更新回数は平均約280回、多い月では約410回になります。全ての更新はシステムへ登録されるとメインラインに反映される前に自動テストされ、レビュー/承認のプロセスもペーパーレスでシステム上で効率的に実施する等、インフラ/システム面でも改善を行い、結果、高品質なソフトウェアを高頻度でリリースするというDevOpsならではの効果を達成でき、お客様に最新のソフトウェアを届けています。

画像
R-Car SDK CI/CD system
R-Car SDK CI/CD system

まとめ

本記事では主にDevOpsのトレンド、自動車業界の動向、これまでの私達の取り組みを紹介いたしました。近い将来、自動運転が現実となり、ソフトウェアがクルマを定義する時代がやってきます。その時代では車載ソフトウェアもクラウド上のDevOps環境で開発されるようになっていくでしょう。今後、ルネサスはそのような環境でも利用しやすいSWプラットフォームの開発・提供に取り組んでいきます。

この記事をシェアする