Cloud Telemetry Simulation

Yazılım Tanımlı Araç (SDV) Bulut Telemetri Simülasyonu platformu, Google Cloud'da araç telemetri simülasyonları çalıştırmak için ölçeklenebilir ve isteğe bağlı bir altyapı sunar.

Sistem, fiziksel donanım olmadan sanal bir Android Automotive ortamından (Cuttlefish) telemetri kampanyalarını simüle etmenize olanak tanır. İstekleri alarak, geçici Compute Engine sanal makineleri (VM'ler) oluşturarak, Docker container'larında simülasyonlar çalıştırarak, sonuçları toplayıp Cloud Storage'a yükleyerek ve kaynakları silerek simülasyon yaşam döngüsünü yönetir.

Bu yaklaşım, telemetri ardışık düzenlerini test etmek için uygun maliyetli ve yüksek düzeyde ölçeklenebilir bir platform sağlar. Bunun nedeni, kaynakların yalnızca simülasyon yürütme sırasında kullanılmasıdır.

Amaç ve özellikler

Sistem, simülasyon yaşam döngüsünü yönetir ve temel altyapı yönetimini soyutlar.

  • İsteğe bağlı ölçeklenebilirlik: Sistem, kullanıma dayalı maliyet sağlamak için yalnızca simülasyon süresince kaynak (Compute Engine sanal makineleri) oluşturur.
  • Eşzamanlılık yönetimi: Sistem, paralel simülasyonlar için yapılandırılabilir bir sınır uygular (ör. varsayılan olarak 5). Fazla istekleri sıraya alır ve alanlar kullanılabilir olduğunda bunları otomatik olarak planlar.
  • Etkinliğe dayalı mimari: Sistem; istek işleme, planlama, tamamlama ve temizleme gibi ayrılmış ve esnek iş akışı düzenlemesi için Cloud Functions ve Pub/Sub'ı kullanır.
  • Entegre durum yönetimi: Sistem, her simülasyonun canlı durumunu ve yapılandırmasını (ör. Simulation request received, running, completed, failed veya cancelled) izlemek için bir Firestore veritabanı kullanır.
  • Yapı yönetimi: Sistem, gerekli giriş dosyalarının indirilmesini ve tüm simülasyon çıkışlarının (ör. raporlar, günlükler, hata raporları ve Logcat dosyaları) Cloud Storage'a yüklenmesini otomatik olarak gerçekleştirir.
  • Kaynak temizleme: Otomatik bir Cloud Scheduler işi, sahipsiz sanal makineleri veya veritabanı girişlerini temizleyerek kaynak sızıntılarını önler.

Mimari

Sistem, çeşitli Google Cloud hizmetleriyle sunucusuz, etkinliğe dayalı bir mimari kullanır. Sistemle bir web kullanıcı arayüzü veya REST API kullanarak etkileşim kurabilirsiniz.

  • Kullanıcı etkileşimi: Sağlanan web demosunu veya özel bir uygulamayı kullanabilir ya da doğrudan API uç noktalarıyla etkileşim kurabilirsiniz.
  • Düzenleme katmanı:
    • read-simulation: Bu işlev, simülasyonları, çalışan sanal makinelerin sayısını ve aynı anda çalışan sanal makinelerin yapılandırılmış maksimum sayısını sorgulamanıza olanak tanır.
    • receive-request: Sistem, istekleri katı bir resim parmak izi izin verilenler listesine göre doğrular ve Pub/Sub'da yayınlar.
    • schedule-simulation: Eventarc, bu işlevi Pub/Sub mesajlarına veya Firestore değişikliklerine göre tetikler. Eşzamanlılık sınırını kontrol eder ve sanal makineleri hazırlar.
    • finish-simulation: Temsilci, durumu güncellemek ve temizleme işlemini tetiklemek için bir çalıştırmanın sonunda bu işlevi çağırır.
    • delete-simulation: Bu işlev, manuel iptal ve kaynak temizleme işlemlerini gerçekleştirir.
  • Durum yönetimi (Firestore): Firestore veritabanı, her simülasyonun durumunu (ör. Simulation request received, running, completed, failed veya cancelled) ve yapılandırmasını izler. Bu veritabanı, tüm simülasyon yürütme verilerini depolar.
  • Veri depolama (Cloud Storage): Sistem, simülasyonla ilgili tüm dosyaları bir Cloud Storage paketinde depolar. Giriş yapılandırma dosyaları, çıkış raporları, Cuttlefish cihazından alınan günlükler, hata raporları ve Logcat dosyaları buna dahildir.
  • Yürütme katmanı (Compute Engine):
    • schedule-simulation işlevi, her simülasyon için bir Compute Engine sanal makinesi oluşturur. Sanal makine, simulation-agent Docker container'ını çalıştırır.
    • simulation-agent, Cloud Storage'dan giriş dosyalarını alır, SDV örneğini başlatır ve telemetri simülatörünü çalıştırıp sonuç verilerini almak için Cuttlefish sanal cihazıyla etkileşimleri yönetir.
  • Bakım (Cloud Scheduler): Kaynak sızıntılarını önlemek için artık kaynakları (ör. başarısız sanal makineler veya eski veritabanı girişleri) temizlemek üzere düzenli olarak planlanmış bir iş çalıştırılır.

Sonraki adımlar

Cloud Telemetry Simulation'ı kullanmaya başlamak için aşağıdaki kılavuzlara bakın:

  • Dağıtım Kılavuzu: Altyapıyı nasıl kuracağınızı ve simülasyon temsilcisini nasıl oluşturacağınızı öğrenin.
  • Kullanıcı Rehberi: Web demosu veya REST API'yi kullanarak simülasyonları nasıl çalıştıracağınızı öğrenin.