亚马逊AWS官方博客
基于亚马逊云科技服务,构建虚拟工程工作台
如今的汽车越来越多地依赖软件,因此软件开发正日益成为汽车开发中的决定性因素。在汽车软件开发方面,汽车制造商面临以下挑战:
- 自动驾驶和个性化信息娱乐等先进功能增加了软件的复杂性,同时客户期望不断提高,给汽车行业 OEM 厂商带来了加速功能部署的压力;
- 工程师和测试人员使用非常专业的工具链、第三方组件集成、安全和质量标准,这些都需要深入的专业知识;
- 不同工具链的系统配置要求可能带来环境不兼容的风险,复杂且多样化的软件开发环境不仅增加了集成的难度,还需要大量协调工作。
因此,汽车行业 OEM 厂商需要适应性强的解决方案,满足软件复杂性、不断变化的期望和创新需求,从而实现软件定义汽车。在这篇博客中,您将了解如何基于 AWS 创建 VEW(virtual engineering workbench,虚拟工程工作台),以及如何使用 VEW 框架来实现各种用例。
VEW 简介
整体框架
为了应对汽车软件开发的挑战,VEW 提供一致的、预配置的工具、目标平台和模拟环境,自动化 CICD 流水线以及用户自助服务界面,以标准化开发过程。其中,CICD 能够快速缩减从构建到部署时间,实现敏捷开发方式在车联软件研发领域的落地。自助服务用户界面缩短了对平台的熟悉时间,可以帮助开发人员快速构建属于自己的开发,验证环境。因此,VEW 旨在简化开发过程,加快开发速度,并最终实现车厂研发环节降本提效的目的。
工具:提升生产力
VEW 的“工具”作为起步的跳板,提供针对特定用例定制的预定义环境。这些环境配备了开发人员启动项目所需的所有工具、集成开发环境(IDE)和许可证(License)及相应管理工具。无论是开发高级驾驶辅助系统,个性化信息娱乐应用亦或是 ECU 开发,这些专业环境确保开发人员拥有合适的软硬件来有效地开始工作。
目标平台:连接软件和硬件
在 VEW 中,“目标平台”在将软件连接到后期目标环境方面发挥着关键作用。通过提供不同层次的软件/硬件堆栈,开发人员可以根据特定用例定制测试目标平台,确保他们的软件与预期功能和架构保持一致。这种灵活性满足了从人机界面(HMI)开发人员到 BSW(底层软件)开发人员等车辆软件开发人员的多样化需求。
环境输入:功能的基础
“环境输入”包含前面讨论的“目标平台”的输入。输入可以是用户的模拟输入,或者历史总线数据。这些环境作为“目标平台”工作负载的关键输入,如用于 HMI 相关验证的用户输入模拟。这些环境与目标平台之间的交互验证了软件的功能。这种验证确保正在开发的软件在各种条件下按预期执行。通过目标平台和环境输入的虚拟化,也使得硬件资源的缺乏不会成为开发测试过程中的瓶颈,每一位使用 VEW 的开发工程师都可以快速获得其需要的验证环境。
自动化编排:简化流程
“自动化编排”是虚拟工程工作台的核心。这种自动化编排 VEW 的每个方面。从配置环境到管理工作流程,自动化提高了效率。它确保任务基于前序步骤的自动触发执行,最大限度地减少所需的人工。通过利用自动化编排,开发人员可以专注于创新和问题解决,而不是重复性的操作任务,这有助于缩短上市时间和功能迭代周期。
自助服务门户:用户赋能
“自助服务门户”是一个面向用户的界面,简化了开发者与 VEW 的交互。该门户使开发者能够轻松启动任务和管理环境,而无需关注平台底层的运行原理。这种简化的方法允许开发人员专注于开发。他们可以高效地协调流程,为项目做出贡献,而不会被关于平台,底层资源的技术细节所困扰。
通过整合这些关键元素——工具、目标平台、环境输入、自动化编排和自助服务门户——VEW 为客户提供了一个集成解决方案,简化了软件开发。它为开发人员提供了所需的工具、针对不同虚拟化级别的支持,以及能够进行全面验证的关键环境,有助于实现更高效和更富有成效的软件开发过程。
架构
软件定义汽车的参考架构如图所示,该参考架构以物理硬件为基础层,每个硬件环境都在云端拥有对应的虚拟化环境。该架构主要由 CI/CD 流水线、开发工具链以及系统镜像库,如 QNX、Yocto Linux、Synopsys Silver ECU ARM、Android 和 EB 实时操作系统等 AMI 构成,这些系统镜像实质上是硬件的数字孪生。
基于此架构,工程技术人员可根据需求选择相应的工具链和镜像组合,快速构建各类应用场景。无论是 Android 开发、AEB 开发还是 ECU 开发,该架构都能确保从小规模到大规模部署的环境一致性,有效支持全球协同开发。
在 AWS 上构建虚拟工程工作台,遵循以下 4 个原则:
- 整个工程链都应当是开发人员可以自助访问的,不需要运维人员的参与;
- 平台满足全球协同开发的场景,覆盖整车软件研发的工具链和测试环境,为在单一平台上容纳各种项目和用户奠定了基础;
- 通过引入虚拟化,有效地减少了硬件依赖,使开发人员能够在虚拟环境中高效工作,而不受物理资源的限制;
- 致力于确保整个开发过程中软件构件的一致性和可重现性,保证了环境的兼容性和可重用性。
整个 VEW 包含了下面 6 个基础模块:
Web 应用程序
Web 应用程序包含作为自助服务门户的入口。它允许用户根据其角色查找、配置和管理他们的工作台产品。Web 应用程序基于身份验证并包括基于角色的访问控制(RBAC),提供这些功能。这意味着用户被分配的特定角色,将决定他们可以访问的工作台产品类型。
产品目录
产品目录负责将工作台产品打包、分发和配置到可供最终用户访问的目录中。产品是您希望可以在 AWS 上部署的一组 AWS 云资源,例如为电子控制单元(ECU)开发人员提供的 AUTOSAR Classic 工作台产品,或为系统集成商提供的 XiL 测试工作台产品。产品可以包含一个或多个 AWS 资源,如 EC2 实例、存储卷、数据库、监控配置和网络组件,也可以是打包的 AWS Marketplace 产品。
AWS Service Catalog 使产品管理变得更容易。例如,为了添加新产品,产品贡献者需要创建 Service Catalog 产品模板和堆栈的新版本。然后,他们需要在产品模板中更新 AMI(Amazon Machine Image,镜像)标识符与相关镜像。将新产品注册到目录后,新产品就可以部署到目标项目账户中了。
AMI 工厂
AMI 工厂利用 AWS EC2 Image Builder,致力于以自动化方式为所有产品创建、测试和分发 AMI。AMI 是工作台实例的基础。具体来说,在产品目录中创建产品后,Amazon EventBridge 触发 AMI 工厂构建中的 AWS Step Functions 工作流。然后,工作流启动 EC2 Image Builder 管道,最终自动为创建的产品创建工作台 AMI。在流程结束时,会为特定产品创建一个包含所有必要工具集及其配置的 AMI。当下一次,再次尝试启动工作台时,工作台底层会直接通过 AMI 启动所需要的资源环境,该环境将包含用户已经安装的工具链和环境配置。
多租户用例环境
我们利用多租户用例环境来处理不同的用例,如 AUTOSAR Classic、XiL 开发、智能驾驶舱等。使用 AMI 工厂创建用例特定的 AMI 后,我们将它们自动部署到目标用例账户,如 AUTOSAR Classic,并使用产品 AMI 创建 Amazon EC2 实例作为用例工作台。这种多租户架构允许开发人员专注在自己的功能研发上,并能更加便捷地提供成本监控等优势。通过这种方式,可以将不同的项目及其各自的数据/构件分离到受保护的环境中。
Landing Zone
VEW 可与客户现有的 Landing Zone 集成。这个 Landing Zone 为 VEW 提供自动化的账户加入和账户管理能力。它负责创建和准备网络和账户设置。此外,它允许用户使用 AWS Control Tower 通过 AWS IAM Identity Center 或第三方身份提供商,从公司网络全局安全地访问工作台。
运营
在运营系统架构中,为整个平台提供集中监控能力。日志和指标存储在各自的账户中,并由 AWS Key Management Service 加密。运营部分还预制了常见的 DevOps 所需指标的收集和计算,并提供仪表板。
应用案例:Stellantis 基于虚拟工程工作台实现虚拟开发与验证
汽车软件开发遵循设计、实施和验证阶段,不同的团队分别执行这些阶段。如前所述,一致性和功能周期时间是这些阶段中的挑战。为了应对这些挑战,我们在 VEW 上引入了 SDV 用例模板,它包括运行时环境和自动化流水线来构建可复用的运行时环境。运行时环境和管道存储在产品目录中。Build Artifacts 存储在中央存储库中,其中一个或多个 artifacts 可以作为下游用例的输入。
AUTOSAR 的虚拟验证
让我们以 Autosar Classic 开发用例为例。ECU 开发人员可以配置一个 AUTOSAR Classic 工作台,其中包含实现新功能和为新功能创建二进制文件所需的所有必要工具集。当代码准备就绪时,他们将代码和构件推送到像 AWS CodeCommit 或 Github 这样的代码存储库中。随之,会自动触发验证和验证管道,使用与 ECU 开发人员完全相同的运行时环境来构建、测试和验证开发的代码。成功验证后,创建的二进制文件会上传到 STLA Stellantis Artifactory,可以在集成管道中使用。从而允许软件开发生命周期早期阶段的开发人员重用下游构件,如测试管道,从而直接验证代码的更改。
优势
现在您已经了解了 VEW,让我们总结一下它如何解决我们之前讨论的挑战:加速功能开发和部署,处理需要深入知识的专业工具链,以及处理复杂多样且存在集成挑战的软件环境。
通过在受支持的环境中提供预装了 Vector AUTOSAR 和 dSPACE 仿真工具等行业标准工具的环境,我们显著将开发人员的上手时间缩短到几分钟。这些在不同开发组之间稳定且可共享的环境有效解决了集成和兼容性问题。
利用自助服务门户、AMI 工厂以及目标平台和环境输入,使专业工具链通过用户友好的界面轻松为开发人员所用,无需高级知识。这种可访问性提高了质量,促进了构件流管理的独立性,从而减少了验证更改所需的时间,进而缩短了周期时间。
通过平台自动化将各个组织链接到受规管的开发流程中,并强制使用可重用构件,建立了透明、一致的软件流程,实现了无需手动交互的软件开发生命周期。
总结
通过采用 VEW,汽车制造商可以显著缩短开发周期,提高软件质量,简化复杂工具链的使用,并实现更透明、一致的开发流程。这不仅提高了开发效率,还为创新提供了更大的空间,使汽车制造商能够更快地响应市场需求和技术变革。
展望未来,VEW 代表了汽车软件开发的新范式。随着软件定义汽车的重要性不断增加,VEW 这样的解决方案将成为汽车制造商保持竞争力的关键工具。通过拥抱这种创新方法,汽车行业将能够更好地应对软件定义时代的挑战,推动智能、互联和自动驾驶技术的进步。