软件定义车辆 (SDV) 遥测云模拟平台提供可扩缩的按需基础架构,可在 Google Cloud 上运行车辆遥测模拟。
该系统可让您在虚拟 Android Automotive 环境 (Cuttlefish) 中模拟遥测广告系列,而无需使用实体硬件。它通过接收请求、创建临时 Compute Engine 虚拟机 (VM)、在 Docker 容器内运行模拟、收集结果并将其上传到 Cloud Storage 以及删除资源来编排模拟生命周期。
这种方法可提供经济高效且高度可扩缩的平台来测试遥测流水线,因为只有在执行模拟期间才会消耗资源。
用途和功能
系统可编排模拟生命周期并抽象化底层基础架构管理。
- 按需扩缩:系统仅在模拟期间创建资源(Compute Engine 虚拟机),以提供基于使用情况的费用。
- 并发管理:系统会对并行模拟的数量强制执行可配置的限制(例如,默认值为 5)。它会将过多的请求排入队列,并在有可用槽时自动安排这些请求。
- 事件驱动型架构:该系统使用 Cloud Functions 和 Pub/Sub 来实现解耦且弹性的工作流编排,其中包括请求处理、调度、最终确定和清理。
- 集成式状态管理:系统使用 Firestore 数据库来跟踪每个模拟的实时状态和配置(例如
PENDING、RUNNING、COMPLETED或FAILED)。 - 制品管理:系统会自动处理所需输入文件的下载,并将所有模拟输出(例如报告、日志、bug 报告和 Logcat 文件)上传到 Cloud Storage。
- 资源清理:自动化的 Cloud Scheduler 作业可通过清理孤立的虚拟机或数据库条目来防止资源泄露。
架构
该系统采用无服务器的事件驱动型架构,并使用多项 Google Cloud 服务。您可以使用 Web 界面或 REST API 与该系统进行交互。
- 用户互动:您可以使用提供的 Web 演示应用、自定义应用,或直接与 API 端点互动。
- 编排层:
read-simulation:此函数可让您查询模拟、正在运行的虚拟机的数量以及配置的并发运行的虚拟机数量上限。receive-request:系统会根据严格的图片指纹允许列表验证请求,并将请求发布到 Pub/Sub。schedule-simulation:Eventarc 根据 Pub/Sub 消息或 Firestore 更改触发此函数。它会检查并发限制并预配虚拟机。finish-simulation:代理会在运行结束时调用此函数,以更新状态并触发清理。delete-simulation:此函数用于处理手动取消和资源清理。
- 状态管理 (Firestore):Firestore 数据库会跟踪每次模拟的状态(例如
PENDING、RUNNING、COMPLETED或FAILED)和配置。此数据库存储所有模拟执行数据。 - 数据存储 (Cloud Storage):系统会将所有与模拟相关的文件存储在 Cloud Storage 存储分区中。这包括输入配置文件、输出报告、来自 Cuttlefish 设备的日志、bug 报告和 Logcat 文件。
- 执行层 (Compute Engine):
schedule-simulation函数会为每次模拟创建一个 Compute Engine 虚拟机。该虚拟机会运行simulation-agentDocker 容器。simulation-agent从 Cloud Storage 中提取输入文件,启动 SDV 实例,并管理与 Cuttlefish 虚拟设备的互动,以执行遥测模拟器并检索生成的数据。
- 维护(Cloud Scheduler):定期运行的预定作业,用于清理任何孤立资源(例如失败的虚拟机或过时的数据库条目),以防止资源泄露。
后续步骤
如需开始使用 Cloud Telemetry Simulation,请参阅以下指南: