图像
Masaru Nagai
Masaru Nagai
Principal Software Engineer
已发布: 2022年8月26日

概要

为了实现高度的自动驾驶社会,开发大规模且复杂的车载用软件平台,瑞萨始终以最新的方式传达给用户,瑞萨,已经应用了DevOps开发模式。

背景

DevOps是一种软件开发模式,它使软件能够快速构建和测试,并比以前更早、更频繁、更高质量地发布给终端用户。 然而,除了技术方面,如持续集成/交付(CI/CD)和系统监控,DevOps的实际应用需要一套改进的做法,如信息共享、简化审批流程、技术和工作进度限制,以便在整个组织中以共同的目标进行合作。 除了CI/CD、系统监控等技术方面,还需要流程/文化方面的能力,如分享信息、简化审批流程和培养以学习为导向的文化,包括技术和工作进度限制等改进做法。根据谷歌云DORA(DEVOPS RESEARCH & ASSESSMENT)团队几乎每年发布的《DevOps现状报告》,拥有最有效的DevOps实践的精英企业的部署频率超过了一天几次。 同时在稳定性方面取得比别人更高的成绩。 部署频率可以理解为软件开发的速度,而稳定性则是质量。 换句话说,应用DevOps有望同时提高软件开发的速度和质量。

目前,整个汽车行业正在向软硬件分离的开发方式转变,在软件优先的基础上,首先开发和实现软件,以保证产品开发的自由度,提高产品强度。 为了应对这种变化,高质量的软件必须比以前更快、更频繁地发布。 因此,适应DevOps模式正成为车载软件开发的必要条件,而且各公司已经开始为此而努力。

图像
DevOps concepts

具体例

在我们的车载软件开发方面,我们在2020年开始致力于向DevOps的组织转型,并实施了一些举措,如单一主线开发,修订SW架构以减少设备/操作系统的依赖性,以及创建一个组织性的DevOps开发基础设施。 这些努力的结果是开发了R-Car SDK。 这些成果反映在R-Car SDK的开发上,它使我们从为每个设备/操作系统开发不同的产品,并在六个月到两年的时间内发布每个产品,到每三个月定期向客户同时发布所有支持设备/操作系统的产品。 实现这一目标的挑战是确保DevOps团队能够每三个月定期向客户发布所有支持设备和操作系统的产品。

实现这一目标的挑战包括一个新的资源库管理系统,以支持DevOps开发中的自动测试和审查,流程/文化的变化,以适应敏捷的工作流程,其中小的变化是逐步建立的,以及使用嵌入式软件专用的评估板进行自动测试。

为了解决这些问题,我们成立了一个专门的DevOps开发基础设施建设小组,根据为实现CI/CD(DevOps的核心)所设定的目标,定量地衡量每个团队的进展,并提供反馈。 此外,我们还不断致力于培训和建立一个自动测试机制。

例如,来自日本、欧洲、美国和越南四个开发基地的约300名开发人员参与了SDK的开发,平均每月约有280次更新,最频繁的月份有410次。 所有更新都在系统注册后反映到主线之前进行自动测试,审核/批准的过程也在无纸化系统上有效地实施等,在基础设施/系统方面也进行了改善,结果,能够达到高频率发布高品质软件的DevOps特有的效果我们正在给客户送最新的软件。

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

总结

本文主要介绍了DevOps的趋势、汽车行业的动向、我们不断地努力。在不久的将来,自动驾驶将会成为现实,软件定义汽车的时代已经到来了。在基于云端开发的时代,车载软件也会在云上的DevOps环境下开发。今后,瑞萨将致力于在这样的开发环境下为容开箱即用的SW平台的开发提供服务。