沃尔沃汽车在 Amazon EKS 上使用 Amazon Graviton 简化车载软件测试

作者: Gökhan Kurt, Johannes Foufas, Sushant Dhamnekar |

沃尔沃汽车 Superset 技术堆栈

软件正在取代硬件,成为创新和价值创造的主要驱动力。它开创了新的出行时代,车辆可以无缝融入社会并在全球推广。

对于沃尔沃汽车而言,在 Amazon EKS 和 Amazon Graviton 的支持下实现的软件定义汽车具有特别的变革力量——能够进一步提高安全标准并改善其客户的生活质量。为了利用这一点,沃尔沃汽车最近推出了一种"改变游戏规则"的新技术方法,即沃尔沃汽车 Superset 技术堆栈。

由于 Superset 技术堆栈是沃尔沃汽车所有即将推出的汽车的基础,它将所有工程工作集中在一个方向上,而不是专注于特定的、孤立的汽车项目。这意味着沃尔沃汽车可以持续同时增强其产品阵容中每辆车的性能,从而使 EX90 客户受益于 ES90 软件升级,反之亦然。

这种"闭环"开发方法利用数据、连接、软件和核心计算,将使沃尔沃汽车能够随着时间的推移不断改进其汽车的各个方面。

在这篇博客文章中,您将了解沃尔沃汽车如何在 Amazon Elastic Kubernetes Service(Amazon EKS)和 Amazon Graviton 上构建支持 Superset 技术堆栈的可扩展持续集成 (CI) 平台。CI 正在利用 Zuul、Gerrit、Buildbarn、Bazel 和 jFrog Artifactory 等工具来实现车载软件的高效测试和部署。此外,您将关注沃尔沃汽车构建该平台的历程,演示基于云的自动化和工具如何简化亚马逊云科技上复杂的汽车软件开发。

深度探索 Superset 技术堆栈

沃尔沃汽车的 Superset 技术堆栈包括以下基本平台堆栈:

  1. 一款支持闭环开发流程的强大核心计算系统,建立在 NVIDIA Drive Orin SoC(每秒可进行超过 250 万亿次运算(TOPS)和高通科技的 Snapdragon Cockpit 平台之上。它们协调了汽车中的一切,为基于人工智能的主动安全和驾驶辅助系统的深度学习功能提供了动力。
  2. 5G 连接并与基于亚马逊云科技构建的沃尔沃汽车互联汽车云 (C3) 云基础设施的集成。
  3. 该数据中心具有先进的人工智能功能,可进一步增强安全功能,并将成为北欧最大的人工智能培训中心。
  4. 生态系统整合使汽车能够与基于汽车中多个操作系统和计算机的驾驶员的数字生活无缝集成,从而不断从现实世界的数据中学习,并随着时间的推移对汽车进行改进。

为每个电子控制单元 (ECU) 量身定制的嵌入式软件、QNX 核心计算平台和 NVIDIA Orin SoC 是 Superset 技术堆栈内核心计算系统 (1) 的一部分。这些软件组件在数月的开发中经过了广泛的集成测试。该过程的关键要素是 CI(持续集成)平台。

图 1 SPA3 是分区架构概述,包含 2 个核心计算机、2 个区域控制器和多个 ECU图 1 可扩展产品架构 (SPA3) 是支持沃尔沃汽车 Superset 技术堆栈的电气技术基础,是一个分区架构,包含 2 台核心计算机、2 个分区控制器和多个 ECU

开发 Superset 技术堆栈和克服障碍策略时遇到的障碍

昂贵的硬件在环(HiL)测试
为了测试、验证在 Superset 技术堆栈上运行的众多软件并使其符合汽车标准,沃尔沃汽车在哥德堡开设了一个新的、最先进的软件测试中心,初始投资约为 3 亿瑞典克朗。这座占地 22,000 平方米的设施将满负荷雇用 300 名员工,可容纳约 500 台测试设备和数字测试环境。在极大地扩大了沃尔沃汽车在各个级别的综合软件测试能力的同时,该测试设施将为沃尔沃汽车带来巨额成本。

HiL 测试是瓶颈
该公司目前采用 NVIDIA 和高通计算节点的硬件在环 (HIL) 测试设备是一种稀缺资源。考虑到开发团队每天发布 6,000 多项软件变更,导致每天构建 20,000 个,这反过来又需要每天在 HiL 设备上进行大约 250 次测试,而单个测试必须持续等待 HiL 队列,因此在这些设备上进行测试给开发工作流程造成了严重的瓶颈。

解决方案是通过虚拟化实现 HiL 独立性
沃尔沃汽车正在向左转向基于云的虚拟化方法,在亚马逊云科技平台上测试其软件定义车辆(SDV)架构,这种方法无需依赖太多的物理硬件和测试设施即可实现更具成本效益和可扩展性的测试。虚拟化电子控制单元 (ECU) 和在基于云的环境中执行软件在环 (SiL) 测试使沃尔沃汽车能够进行大量软件验证测试,以提高其车载软件的整体质量和稳定性,与 HiL 钻机相比,它还有助于在虚拟化环境中更轻松地识别和解决集成问题,最终降低验证和完善沃尔沃汽车下一代 SDV 技术所涉及的总体成本。

虚拟化和测试中的技术不匹配
SiL 测试以前在 Linux 仿真环境中运行,该环境缺少目标软件和硬件的许多关键方面。CI 流程中存在运行时环境差距,仿真缺少沃尔沃汽车使用的 QNX 运行时间,而且目标 CPU 架构不正确(AMD 与 ARM),导致过多的重新编译工作以及测试到达昂贵的 HiL 环境时出错。

显然需要在云端运行目标二进制文件,尽量减少对虚拟计算实例的更改,并在车辆中匹配基于 ARM 的目标 CPU 架构。

解决方案是环境平等
为了扩大车载软件的 SiL 测试,沃尔沃汽车的超级技术堆栈开发团队建立了一个在 Amazon EKS 上运行的 CI 平台。测试的嵌入式软件专门针对高通 Snapdragon 芯片组。为了确保环境平等,沃尔沃汽车使用基于 ARM 的 Amazon Graviton 实例和 QNX 提供的适用于 QNX Neutrino RTOS 7.1 的 Amazon Machine Images(AMI),并与新思科技合作在区域 ECU 上虚拟化节点。

沃尔沃汽车认为 t4g.2xlarge 实例是最具成本效益、最适合此用例的实例,因此选择了 Amazon Graviton 2 处理器。这些实例的核心数量和时钟速度最符合汽车硬件的规格。沃尔沃汽车正在考虑是否调整 Amazon Graviton 3 处理器,以测试未来更高规格的汽车模型。

沃尔沃汽车在最近的车型计划中在沃尔沃汽车 ES90 车型中引入了双 NVIDIA Drive Orin 配置,使其成为他们有史以来在核心计算能力方面创造的最强大的汽车。最近,CI-Pipelines 和 Amazon Graviton 节点也进行了调整,以支持针对 NVIDIA DRIVE Orin 配置的测试软件。

复杂的软件依赖关系
在汽车软件开发中,通常来自不同公司的多个团队使用各种云平台和版本控制系统(如 GitHub、GitLab、Gerrit 和 Pagure)进行协作。这些团队负责开发相互依赖的组件,例如 ADAS、连接和场景检测,所有这些组件都必须集成到一个可部署的包中。管理不同存储库之间的更改很复杂,尤其是当一个存储库中的更新依赖于其他存储库时。如果不及早对变更进行测试,通常会出现集成问题。

为了解决这个问题,在合并项目、存储库和组织中的代码之前,必须检测出中断的提交和失败的集成。这种主动方法可以简化开发、减少故障并提高软件质量。

解决方案是项目门控
为了尽早解决集成问题,引入了项目门控的概念。它阻止跨存储库合并未经测试或不兼容的更改。CI 管道仅允许通过所有待处理修改测试的更改,从而确保合并之前的稳定集成。

相比之下,传统开发依赖开发人员在本地测试或直接提交更改,CI 随后会发现问题。这种被动方法容易出错,可能导致 CI 期间、HiL 测试期间失败,甚至更糟糕的是,在最终产品中。

图 2 显示了正在运行的 gating 方法,该方法可停止错误提交 (c3)

图 2 显示了正在运行的门控方法,该方法可阻止错误提交 (c3) 的合并,并且即使更改分散在不同的存储库中,也只允许合并变更(c1、c2、c4)的组合通过测试。

当车辆架构区域存在依赖关系时,这些相互依赖关系甚至会变得更加复杂。下图说明了从 CI 协调器 Zuul 中提取的相互依存关系,沃尔沃汽车选择 Zuul 作为支持"项目门控"流程的平台。

图 3 在 Zuul orchestrator 中可视化示例 CI-Pipeline,用虚线显示了车辆电气架构中被测软件包针对的区域 ECU 或 Core 计算的依赖关系

图 3 在 Zuul orchestrator 中可视化示例 CI-Pipeline,用虚线显示了车辆电气架构中被测软件包针对的区域 ECU 或 Core 计算的依赖关系

CI 平台
让我们来看看 CI 平台的关键组件以及每个组件所具备的不同功能。

图 4 AWS 上的 CI 平台架构和组件 图 4 亚马逊云科技上的 CI 平台架构和组件

  1. 超过 2,000 名嵌入式软件开发人员向 1,000 多个 GitHub 存储库提交代码变更并在 Gerrit 上进行协作,偶尔会产生冲突的更改,这可能会干扰集成测试。
  2. Zuul-CI 负责协调在 Jenkins 上定义的这些测试,并通过模拟最终合并来强制执行项目门控。
  3. 生成的构建工件和任何中间工件都存储在 JFrog Artifactory 中。
  4. 沃尔沃汽车的 CI 平台每天运行超过 20,000 次软件测试,涉及频繁下载和上传源代码、测试定义和二进制包,包括 Artifactory 上的大型基础映像,这导致了不必要的流量,增加了复杂性和成本;为了解决这个问题,沃尔沃汽车正在使用 Buildbarn 和 Bazel。这些工具支持缓存、编译操作的远程执行和并行构建的执行,从而通过将计算工作转移到远程服务器并减少构建过程中的开销和重复来加快构建时间。
  5. 一些持续集成步骤涉及在本地的 HIL 上执行测试。沃尔沃汽车已通过 Amazon Direct Connect 与其测试设施建立了专用的网络连接。
  6. 在软件通过所有验证步骤并进行验证后,通过触发 Jenkins 上定义的发布管道最终将其发布。在采取额外的合规和安全措施后,最终包裹将使用沃尔沃汽车的联网汽车平台 (C3) 通过 Over-The-Air-Update 发送给车辆。C3 还在亚马逊云科技上运行,协调车辆与车辆的通信和数据交换。
  7. CI 平台建立在 Amazon EKS 和 Amazon Graviton 之上。沃尔沃汽车的主要目标是使其成为整个组织的标准和核心 CI 工具。这个目标需要在 pod 和节点级别上进行全面的自动扩展,这可以通过使用 Karpenter 来实现。以前,团队使用静态自动缩放。Grafana 和 Splunk 警报用于手动监控系统,并在需要时手动添加新节点,还需要额外的启动步骤。实例最多需要一分钟才能启动。通常,节点大于必要,并且在大多数情况下未得到充分利用。通过利用 Karpenter,沃尔沃汽车现在可以享受更灵活的节点配置,以自动扩展到各种节点类型。根据来自 pod 的资源请求,Karpenter 将根据该特定资源请求自动选择最具成本效益的节点。在这种新设置中,由于 Karpenter 代表团队监视系统,因此需要较少的监控,并且由于在节点扩展过程中无需手动操作,因此启动节点需要几秒钟。沃尔沃汽车甚至使用自定义指标对 Karpenter 进行了调整,使其适用于网络密集型应用程序。

亚马逊云科技是 Superset 技术堆栈的推动者

作为 CI 平台一部分的应用程序以前是在多个云平台上部署的。这种分布式方法造成了通信瓶颈,可扩展性有限。沃尔沃汽车根据亚马逊云科技的建议,决定将基础设施整合到单个区域和多个可用区内的 Amazon EKS 上。这项整合工作帮助沃尔沃汽车每天在 CI 平台上完成超过 20,000 个测试和创造工作岗位,这表明与之前的多云设置相比,性能有了显著改善,后者每天最多支持 5,000 个工作。

图 5 沃尔沃汽车Zuul租户在今年1月初一周内完成的检查、入场和放行工作的每日分布情况。

图 5 沃尔沃汽车 Zuul 租户在今年 1 月初一周内完成的检查、入场和放行工作的每日分布情况。

这些改进提高了用于软件构建和测试的 CI 管道的整体性能,使在车载软件发布之前运行的测试增加了 4 倍,并且可以自动识别软件问题,从而帮助沃尔沃汽车推出更稳定的车载软件。

结论

在这篇博客文章中,我们向您介绍了沃尔沃汽车基于 Amazon EKS 构建的可扩展持续集成 (CI) 平台,用于管理车载软件开发的软件在环 (SiL) 测试。我们详细描述了该平台的组件及其功能,与之前的多云设置相比,沃尔沃汽车每天能够处理超过 20,000 个测试和构建任务,并取得了重大改进。

请联系亚马逊云科技解决方案架构团队,详细了解 Amazon EKS、Amazon Graviton 和 Karpenter 如何帮助扩展类似的 CI 平台以满足您的需求。



Gökhan Kurt

Gökhan Kurt

Gökhan Kurt 是亚马逊云科技 Automotive 的高级解决方案架构师。他还是汽车和人工智能/机器学习技术领域社区的活跃成员。凭借超过 20 年的软件开发和设计经验,Gökhan 在帮助公司实现物联网和数据分析领域的业务目标方面表现出了专业知识。在过去的十年中,他为多个云平台和行业的客户提供了高级架构指导。工作之余,Gökhan 是一名足球爱好者和网球运动员。

约翰内斯·富法斯

Johannes Foufas

Johannes Foufas 是沃尔沃汽车的首席软件架构师,他通过与控制内燃机燃油喷射和气体流量控制的方法和系统相关的多项专利,对汽车软件工程领域的重大贡献而闻名。最近,他领导沃尔沃汽车开发嵌入式软件开发的持续集成工具链,为沃尔沃汽车核心计算机引入基于 Graviton 的 4 级 SIL 平台,以及引入 Zuul CI、Bazel 和 Buildbarn 作为构建系统。

Sushant Dhamnekar

Sushant Dhamnekar

Sushant Dhamnekar 是亚马逊云科技的高级专业解决方案架构师。作为值得信赖的顾问,Sushant 帮助汽车客户在 GenAI、互联出行和软件定义车辆领域构建高度可扩展、灵活和有弹性的云架构。工作之余,Sushant 喜欢远足、美食、旅行和 HIT 锻炼。


*前述特定亚马逊云科技生成式人工智能相关的服务仅在亚马逊云科技海外区域可用,亚马逊云科技中国仅为帮助您发展海外业务和/或了解行业前沿技术选择推荐该服务。