תזמור בענן ב-OmniLab ATS

אפליקציית Cloud Orchestration מספקת דרך יעילה וניתנת להתאמה לעומס לניהול מופעי Cuttlefish, במיוחד עבור מכשירים וירטואליים מבוססי-ARM ‏ (CHD). ‫OmniLab ATS תומך בתיזמור של Cloud, כך שאפשר להריץ בדיקות במכשירים וירטואליים. לפני שמתחילים להשתמש במכשירים וירטואליים, צריך לפעול לפי ההוראות במאמר OmniLab Android Test Station כדי להתקין את OmniLab ATS.

סקירה כללית

שירות Cloud Orchestration מאפשר ל-OmniLab ATS להעביר את הניהול של מופעי Cuttlefish לשירות Cloud Orchestrator ייעודי. לגישה הזו יש כמה יתרונות לעומת השיטות הקיימות להפעלת המכשיר באופן מקומי או מרחוק, והיא גם שומרת על חוויית משתמש מוכרת:

  • הפעלת מופעים במקביל: מאפשרת להפעיל כמה מופעים של Cuttlefish בו-זמנית, וכך מקצרת באופן משמעותי את זמן התקורה לפני שהבדיקות מתחילות.
  • יכולת הרחבה: מתאים לסביבות בדיקה בקנה מידה גדול.
  • בידוד משאבים: מפרידים את סביבת ההפעלה של הבדיקה (תהליך עובד של ATS) מסביבת הדמיית המכשיר.

דרישות מוקדמות

  • מחשב מארח שיכול להריץ את Docker
  • גישה לתמונות Docker של Cuttlefish orchestration

הגדרת שירות Cloud Orchestrator

שירות Cloud Orchestrator מנהל את מחזור החיים של מופעי Cuttlefish. אפשר לפרוס את השירות בסביבות שונות, והוא תומך בארכיטקטורות x86 ו-ARM:

  • אותו מארח כמו ATS worker: פועל בקונטיינר Docker באותו מחשב
  • מכונה נפרדת: פועל בשרת מקומי שיכול להריץ את Docker
  • מופע בענן: פועל במכונה וירטואלית בסביבת ענן, למשל Google Compute Engine

התקנה והגדרה של השירות

כדי להפעיל את השירות, פועלים לפי ההוראות בקובץ ה-README של Cloud Android Orchestration.

אימות והרשאות

אם שירות Cloud Orchestrator פועל במחשב מרוחק, צריך לוודא שלמארח של העובד ב-ATS יש את ההרשאות הנדרשות כדי לגשת אליו באמצעות בקשות HTTP. אם חיבור HTTP לא מותר, יכול להיות שתצטרכו להגדיר העברה ליציאה מקומית באמצעות SSH. פרטים נוספים זמינים במאמר בנושא ניסיון ב-Cloud Orchestrator.

המצב הצפוי

אחרי שהשירות Cloud Orchestrator מופעל בהצלחה, אמורה להיות אפשרות להגיע אליו באמצעות HTTP. כדי לאמת את המצב, אפשר לשלוח שאילתה ל-API:

  • שליחת פינג לשירות: צריכה להיות לכם אפשרות להגיע לנקודת הקצה של השירות ממארח העובד של OmniLab ATS. לדוגמה, הפעלת הפקודה curl -I http://localhost:8080/v1/zones/local/hosts צריכה להחזיר תגובת HTTP מוצלחת (HTTP/1.1 200 OK או הפניה אוטומטית 302 Found אל /username), כדי לאשר שהשירות פעיל וזמין.

הגדרת OmniLab ATS לתיזמור בענן

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

כדי להפעיל את Cloud Orchestration ב-OmniLab ATS, צריך להעביר דגלים ספציפיים כשמפעילים את OmniLab ATS:

mtt start --use_cloud_orchestrator \
  --orchestration_service_url=http://HOST:PORT \
  --max_local_virtual_devices N \
  --use_host_network \
  --force_ats_version 2 \
  --force_update
  • --use_cloud_orchestrator: הפעלת התכונה Cloud Orchestration.
  • --orchestration_service_url: מציינת את כתובת ה-URL שבה שירות Cloud Orchestration מאזין, לדוגמה, http://localhost:8080.
  • --max_local_virtual_devices: הגדרת המספר המקסימלי של מכשירים וירטואליים שאפשר להקצות בו-זמנית ב-OmniLab ATS. מספר ברירת המחדל הוא 0.
  • --use_host_network: שימוש במרחב השמות של הרשת של המארח עבור הקונטיינר. ההרשאה הזו נדרשת כדי לגשת לשירות Cloud Orchestration.
  • --force_ats_version 2: כופה את השימוש ב-OmniLab ATS 2.0, שנדרש ל-Cloud Orchestration. מידע נוסף זמין במדריך לשדרוג ל-OmniLab ATS 2.0.
  • --force_update: משיכת הגרסה העדכנית ביותר של בניית הקונטיינר עם ATS 2.0 ותכונות של Cloud Orchestration.

הרצת בדיקה עם מכשירים שמנוהלים בענן

בקטע הזה מוסבר איך מריצים בדיקה במכשירים וירטואליים שמתזמנים בענן.

מכשירים נבחרים

ברשימת המכשירים, OmniLab ATS מציג מכשירים וירטואליים שמתואמים בענן כמחזיקי מקום במקום המספרים הסידוריים שלהם. ה-placeholder מוצג בפורמט HOSTNAME:PORT (לדוגמה, thehostname:6520). הסטטוסים האפשריים הם Available או Allocated. אם המכשיר הווירטואלי נמצא במצב זמין, זה אומר שהוא לא פועל ואפשר להקצות אותו לבדיקה.

בחירה של מכשירים שמתזמנים את הפעולות שלהם בענן

איור 1. בחירת מכשירים וירטואליים שמופעלים בענן.

הוספת פעולות במכשיר

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

פעולות אוטומטיות במכשיר

איור 2. פעולות אוטומטיות במכשיר.

הגדרת משאבי בדיקה

כשמתזמנים מבחן, צריך לספק את המשאבים הנדרשים למבחן. בקטע Set Test Resources, מוודאים שמיפיתם את הקבצים שהועלו לשמות המשאבים הנכונים:

  • ממפים את חבילת הכלים למארחים, לדוגמה, cvd-host_package.tar.gz, לשם cvd_host_package.
  • ממפים את קובץ ה-ZIP של תמונת המכשיר לשם cvd_device_image.

משאבי בדיקה ל-Cloud Orchestration

איור 3. מיפוי משאבי הבדיקה.

צפייה בבדיקות וביומנים

אחרי שהבדיקה מסתיימת, אפשר לראות את היומנים בקטע של קובצי הפלט. יומנים ספציפיים שנאספים עבור מופעים שמנוהלים על ידי Cloud Orchestrator כוללים:

  • launcher.log: יומנים ממרכז האפליקציות של Cuttlefish
  • kernel.log: יומן ליבת Android רגיל