Cloud Telemetry Simulation

פלטפורמת Software-Defined Vehicle (SDV) Telemetry Cloud Simulation מספקת תשתית גמישה לפי דרישה להרצת סימולציות של טלמטריה של רכבים ב-Google Cloud.

המערכת מאפשרת לכם לדמות קמפיינים של טלמטריה מסביבת Android Automotive וירטואלית (Cuttlefish) בלי חומרה פיזית. היא מתזמנת את מחזור החיים של הסימולציה על ידי קבלת בקשות, יצירת מכונות וירטואליות (VM) זמניות של Compute Engine, הפעלת סימולציות בתוך קונטיינרים של Docker, איסוף תוצאות והעלאה שלהן ל-Cloud Storage ומחיקת משאבים.

הגישה הזו מספקת פלטפורמה חסכונית וניתנת להרחבה גבוהה לבדיקת צינורות טלמטריה, כי המשאבים נצרכים רק במהלך ההרצה של הסימולציה.

מטרה ויכולות

המערכת מתזמנת את מחזור החיים של הסימולציה ומבצעת הפשטה של ניהול התשתית הבסיסית.

  • מדרגיות על פי דרישה: המערכת יוצרת משאבים (מכונות וירטואליות ב-Compute Engine) רק למשך הסימולציה כדי לספק עלות מבוססת-שימוש.
  • ניהול של פעולות שמתבצעות בו-זמנית: המערכת אוכפת מגבלה שניתנת להגדרה על סימולציות מקבילות (למשל, 5 כברירת מחדל). היא מכניסה את הבקשות העודפות לתור ומתזמנת אותן באופן אוטומטי כשהמשבצות מתפנות.
  • ארכיטקטורה מבוססת-אירועים: המערכת משתמשת ב-Cloud Functions וב-Pub/Sub לתזמור של תהליכי עבודה מנותקים ועמידים, שכולל טיפול בבקשות, תזמון, סיום וניקוי.
  • ניהול מצב משולב: המערכת משתמשת במסד נתונים של Firestore כדי לעקוב אחרי המצב וההגדרה של כל סימולציה בזמן אמת (לדוגמה, PENDING,‏ RUNNING,‏ COMPLETED או FAILED).
  • ניהול ארטיפקטים: המערכת מטפלת באופן אוטומטי בהורדה של קובצי קלט נדרשים ובהעלאה של כל פלט הסימולציה (לדוגמה, דוחות, יומנים, דוחות באגים וקובצי Logcat) אל Cloud Storage.
  • ניקוי משאבים: משימה אוטומטית ב-Cloud Scheduler מונעת דליפות משאבים על ידי ניקוי מכונות וירטואליות יתומות או רשומות במסד נתונים.

ארכיטקטורה

המערכת משתמשת בארכיטקטורה מבוססת-אירועים ללא שרתים עם כמה שירותי Google Cloud. אפשר לבצע פעולות במערכת באמצעות ממשק משתמש באינטרנט או API בארכיטקטורת REST.

  • אינטראקציה עם המשתמש: אתם יכולים להשתמש בהדגמה שמופיעה באתר, באפליקציה בהתאמה אישית או ליצור אינטראקציה ישירה עם נקודות הקצה של ה-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, דוחות באגים וקבצי Logcat.
  • שכבת הביצוע (Compute Engine):
    • הפונקציה schedule-simulation יוצרת מכונה וירטואלית ב-Compute Engine לכל סימולציה. המכונה הווירטואלית מריצה את קונטיינר Docker‏ simulation-agent.
    • הסקריפט simulation-agent שולף קובצי קלט מ-Cloud Storage, מפעיל את מופע ה-SDV ומנהל את האינטראקציות עם המכשיר הווירטואלי Cuttlefish כדי להריץ את סימולטור הטלמטריה ולאחזר את הנתונים שמתקבלים.
  • תחזוקה (Cloud Scheduler): משימה מתוזמנת שפועלת באופן תקופתי כדי לנקות משאבים יתומים (לדוגמה, מכונות וירטואליות שנכשלו או רשומות ישנות במסד נתונים) ולמנוע דליפות של משאבים.

השלבים הבאים

כדי להתחיל להשתמש בסימולציה של טלמטריה בענן, תוכלו להיעזר במדריכים הבאים:

  • מדריך הפריסה: כאן מוסבר איך להגדיר את התשתית ולבנות את סוכן הסימולציה.
  • מדריך למשתמש: כאן מוסבר איך להריץ סימולציות באמצעות הדמו באינטרנט או ה-API בארכיטקטורת REST.