Cloud Telemetry Simulation

פלטפורמת הסימולציה של טלמטריית ענן לרכב מוגדר באמצעות תוכנה (SDV) מספקת תשתית ניתנת להרחבה על פי דרישה להרצת סימולציות של טלמטריית רכב ב-Google Cloud.

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

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

מטרה ויכולות

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

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

ארכיטקטורה

המערכת משתמשת בארכיטקטורה מבוססת-אירועים בלי שרת (serverless) עם כמה שירותי 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.