Платформа симуляции облачной телеметрии для программно-определяемых автомобилей (SDV) предоставляет масштабируемую инфраструктуру по запросу для запуска симуляций телеметрии автомобилей в Google Cloud.
Система позволяет симулировать кампании телеметрии в виртуальной среде Android Automotive (Cuttlefish) без физического оборудования. Он управляет жизненным циклом симуляции, получая запросы, создавая временные виртуальные машины Compute Engine, запуская симуляции в контейнерах Docker, собирая и загружая результаты в Cloud Storage и удаляя ресурсы.
Такой подход позволяет создать экономичную и легко масштабируемую платформу для тестирования конвейеров телеметрии, поскольку ресурсы потребляются только во время выполнения симуляции.
Цель и возможности
Система управляет жизненным циклом симуляции и абстрагирует управление базовой инфраструктурой.
- Масштабируемость по запросу. Система создает ресурсы (виртуальные машины Compute Engine) только на время симуляции, чтобы обеспечить оплату на основе использования.
- Управление параллельными процессами. Система применяет настраиваемое ограничение на количество параллельных симуляций (например, по умолчанию их может быть не более пяти). Она ставит лишние запросы в очередь и автоматически планирует их выполнение, когда появляются свободные слоты.
- Архитектура, управляемая событиями. Система использует Cloud Functions и издатель-подписчик для раздельной и устойчивой оркестрации рабочих процессов, которая включает обработку запросов, планирование, завершение и очистку.
- Интегрированное управление состоянием. Система использует базу данных Firestore для отслеживания текущего состояния и конфигурации каждого моделирования (например,
Simulation request received,running,completed,failedилиcancelled). - Управление артефактами. Система автоматически скачивает необходимые входные файлы и загружает все выходные данные симуляции (например, отчеты, журналы, отчеты об ошибках и файлы Logcat) в Cloud Storage.
- Очистка ресурсов. Автоматизированное задание Cloud Scheduler предотвращает утечку ресурсов, очищая потерянные виртуальные машины или записи базы данных.
Архитектура
Система использует бессерверную архитектуру, управляемую событиями, с несколькими сервисами Google Cloud. Взаимодействовать с системой можно через веб-интерфейс или REST API.
- Взаимодействие с пользователем. Вы можете использовать предоставленную веб-демонстрацию, собственное приложение или взаимодействовать напрямую с конечными точками API.
- Уровень оркестрации:
read-simulation– позволяет запрашивать симуляции, количество запущенных виртуальных машин и максимальное настроенное количество одновременно работающих виртуальных машин.receive-request: система проверяет запросы по строгому белому списку цифровых отпечатков изображений и публикует их в Pub/Sub.schedule-simulation– Eventarc запускает эту функцию на основе сообщений Pub/Sub или изменений в Firestore. Он проверяет лимит параллелизма и подготавливает виртуальные машины.finish-simulation– агент вызывает эту функцию в конце выполнения, чтобы обновить статус и запустить очистку.delete-simulation: эта функция обрабатывает отмену вручную и очистку ресурсов.
- Управление состоянием (Firestore). База данных Firestore отслеживает состояние (например,
Simulation request received,running,completed,failedилиcancelled) и конфигурацию каждой симуляции. В этой базе данных хранятся все данные о выполнении симуляции. - Хранилище данных (Cloud Storage). Система хранит все файлы, связанные с симуляцией, в сегменте Cloud Storage. Это входные файлы конфигурации, выходные отчеты, журналы с устройства Cuttlefish, отчеты об ошибках и файлы Logcat.
- Уровень выполнения (Compute Engine):
- Функция
schedule-simulationсоздает виртуальную машину Compute Engine для каждой симуляции. На виртуальной машине запускается контейнер Dockersimulation-agent. simulation-agentизвлекает входные файлы из Cloud Storage, запускает экземпляр SDV и управляет взаимодействием с виртуальным устройством Cuttlefish, чтобы запустить симулятор телеметрии и получить результирующие данные.
- Функция
- Обслуживание (Cloud Scheduler). Запланированное задание периодически запускается для очистки всех потерянных ресурсов (например, неисправных виртуальных машин или устаревших записей базы данных), чтобы предотвратить утечку ресурсов.
Дальнейшие действия
Чтобы начать работу с Cloud Telemetry Simulation, ознакомьтесь со следующими руководствами:
- Руководство по развертыванию. Узнайте, как настроить инфраструктуру и создать агент симуляции.
- Руководство пользователя. Узнайте, как запускать симуляции с помощью веб-демо или REST API.