Cloud Telemetry Simulation

Yazılımla Tanımlanan Araç (SDV) Telemetri Bulutu Simülasyonu platformu, Google Cloud'da araç telemetri simülasyonlarını çalıştırmak için ölçeklenebilir ve isteğe bağlı bir altyapı sağlar.

Bu sistem, fiziksel donanım olmadan sanal bir Android Automotive ortamında (Cuttlefish) telemetri kampanyalarını simüle etmenize olanak tanır. İstekleri alarak, geçici Compute Engine sanal makineleri oluşturarak, Docker kapsayıcı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, kaynaklar yalnızca simülasyon yürütme sırasında kullanıldığından telemetri ardışık düzenlerini test etmek için uygun maliyetli ve yüksek oranda ölçeklenebilir bir platform sağlar.

Amaç ve Yetenekler

Sistem, simülasyon yaşam döngüsünü düzenler 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 kaynaklar (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 (örneğin, varsayılan olarak 5). Aşırı istekleri sıraya alır ve yer açıldığında otomatik olarak planlar.
  • Etkinlik odaklı mimari: Sistem, istek işleme, planlama, sonlandırma ve temizleme gibi işlemlerin yer aldığı 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 (örneğin, PENDING, RUNNING, COMPLETED veya FAILED) canlı durumunu ve yapılandırmasını izlemek için Firestore veritabanını kullanır.
  • Yapay ürün yönetimi: Sistem, gerekli giriş dosyalarının indirilmesini ve tüm simülasyon çıkışı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, yetim kalmış sanal makineleri veya veritabanı girişlerini temizleyerek kaynak sızıntılarını önler.

Mimari

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

  • Kullanıcı etkileşimi: Sağlanan web demosunu, özel bir uygulamayı kullanabilir veya doğrudan API uç noktalarıyla etkileşimde bulunabilirsiniz.
  • Düzenleme katmanı:
    • read-simulation: Bu işlev, simülasyonları, çalışan sanal makine 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 izin verilenler listesindeki resim parmak izlerine 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 VM'leri sağlar.
    • finish-simulation: Temsilci, durumu güncellemek ve temizliği tetiklemek için bu işlevi çalıştırmanın sonunda ç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 (örneğin, PENDING, RUNNING, COMPLETED veya FAILED) 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ı 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, giriş dosyalarını Cloud Storage'dan çeker, SDV örneğini başlatır ve telemetri simülatörünü yürütmek ve sonuçtaki verileri almak için Cuttlefish sanal cihazıyla etkileşimleri yönetir.
  • Bakım (Cloud Scheduler): Kaynak sızıntılarını önlemek için düzenli olarak planlanmış bir iş çalıştırılarak herhangi bir yetim kaynak (örneğin, başarısız olan VM'ler veya eski veritabanı girişleri) temizlenir.

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 aracısını nasıl oluşturacağınızı öğrenin.
  • Kullanıcı Kılavuzu: Web demosunu veya REST API'yi kullanarak simülasyonları nasıl çalıştıracağınızı öğrenin.