Симулятор облачной телеметрии

Платформа симуляции облачной телеметрии для программно-определяемых автомобилей (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 для каждой симуляции. На виртуальной машине запускается контейнер Docker simulation-agent.
    • simulation-agent извлекает входные файлы из Cloud Storage, запускает экземпляр SDV и управляет взаимодействием с виртуальным устройством Cuttlefish, чтобы запустить симулятор телеметрии и получить результирующие данные.
  • Обслуживание (Cloud Scheduler). Запланированное задание периодически запускается для очистки всех потерянных ресурсов (например, неисправных виртуальных машин или устаревших записей базы данных), чтобы предотвратить утечку ресурсов.

Дальнейшие действия

Чтобы начать работу с Cloud Telemetry Simulation, ознакомьтесь со следующими руководствами: