פלטפורמת הסימולציה של טלמטריית ענן לרכב מוגדר-תוכנה (SDV) מספקת תשתית ניתנת להתאמה על פי דרישה, להרצת סימולציות של טלמטריית רכב ב-Google Cloud.
המערכת מאפשרת לדמות קמפיינים של טלמטריה מסביבה וירטואלית של Android Automotive (Cuttlefish) בלי חומרה פיזית. הוא מתזמר את מחזור החיים של הסימולציה על ידי קבלת בקשות, יצירת מכונות וירטואליות (VM) זמניות של Compute Engine, הרצת סימולציות בתוך קונטיינרים של Docker, איסוף והעלאה של תוצאות ל-Cloud Storage ומחיקת משאבים.
הגישה הזו מספקת פלטפורמה חסכונית וניתנת להרחבה לבדיקת צינורות עיבוד נתונים של נתוני טלמטריה, כי המשאבים נצרכים רק במהלך ביצוע הסימולציה.
מטרה ויכולות
המערכת מתזמרת את מחזור החיים של הסימולציה ומפשטת את ניהול התשתית הבסיסית.
- מדרגיות על פי דרישה: המערכת יוצרת משאבים (מכונות וירטואליות של Compute Engine) רק למשך הסימולציה, כדי לספק עלות שמבוססת על השימוש.
- ניהול בו-זמניות: המערכת אוכפת מגבלה שאפשר להגדיר על סימולציות מקבילות (לדוגמה, 5 כברירת מחדל). הוא מכניס לתור בקשות עודפות ומתזמן אותן באופן אוטומטי כשמתפנים משבצות זמן.
- ארכיטקטורה מבוססת-אירועים: המערכת משתמשת ב-Cloud Functions וב-Pub/Sub לתזמור של תהליכי עבודה מנותקים וגמישים, כולל טיפול בבקשות, תזמון, סיום וניקוי.
- ניהול מצב משולב: המערכת משתמשת במסד נתונים של Firestore כדי לעקוב אחרי המצב בזמן אמת וההגדרות של כל סימולציה (לדוגמה,
Simulation request received,running,completed,failedאוcancelled). - ניהול פריטי מידע שנוצרו בתהליך הפיתוח (Artifact): המערכת מטפלת באופן אוטומטי בהורדה של קובצי הקלט הנדרשים ובהעלאה של כל פלט הסימולציה (לדוגמה, דוחות, יומנים, דוחות על באגים וקובצי 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 עוקב אחרי המצב (לדוגמה,
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, קראו את המדריכים הבאים:
- מדריך פריסה: איך מגדירים את התשתית ויוצרים את נציג הסימולציה.
- מדריך למשתמש: איך מריצים סימולציות באמצעות הדגמה באינטרנט או API בארכיטקטורת REST.