אפליקציית Cloud Orchestration מספקת דרך יעילה וניתנת להרחבה לניהול מופעי Cuttlefish, במיוחד עבור מכשירים וירטואליים מבוססי-ARM (CHD). OmniLab ATS תומך בתיאום של Cloud, כך שאפשר להריץ בדיקות במכשירים וירטואליים. לפני שמתחילים להשתמש במכשירים וירטואליים, צריך לפעול לפי ההוראות במאמר תחנת בדיקות ל-Android של OmniLab כדי להתקין את OmniLab ATS.
סקירה כללית
שירות Cloud Orchestration מאפשר ל-OmniLab ATS להעביר את הניהול של מופעי Cuttlefish לשירות Cloud Orchestrator ייעודי. לגישה הזו יש כמה יתרונות לעומת המצבים המקומי והמרוחק הקיימים, והיא שומרת על חוויית משתמש מוכרת:
- הפעלת מופעים במקביל: מאפשרת להפעיל כמה מופעים של Cuttlefish בו-זמנית, וכך מקצרת באופן משמעותי את זמן התקורה לפני שהבדיקות מתחילות.
- יכולת הרחבה: מתאים לסביבות בדיקה רחבות היקף.
- בידוד משאבים: מפריד בין סביבת ההרצה של הבדיקה (ATS worker) לבין סביבת הדמיית המכשיר.
דרישות מוקדמות
- מחשב מארח שיכול להריץ את Docker
- גישה לתמונות Docker של Cuttlefish orchestration
הגדרת שירות Cloud Orchestrator
שירות Cloud Orchestrator מנהל את מחזור החיים של מופעי Cuttlefish. אפשר לפרוס את השירות בסביבות שונות, והוא תומך בארכיטקטורות x86 ו-ARM:
- אותו מארח כמו עובד ATS: פועל במאגר Docker באותו מחשב
- מכונה נפרדת: פועל בשרת מקומי שיכול להריץ Docker
- מופע בענן: פועל במכונה וירטואלית בסביבת ענן, למשל Google Compute Engine
התקנה והגדרה של השירות
כדי להפעיל את השירות, פועלים לפי ההוראות שבקובץ Cloud Android Orchestration README.
אימות והרשאות
אם שירות Cloud Orchestrator פועל במחשב מרוחק, צריך לוודא שלמארח של ה-worker של ATS יש את ההרשאות הנדרשות כדי לגשת אליו באמצעות בקשות HTTP. אם חיבור HTTP לא מותר, יכול להיות שתצטרכו להגדיר העברה ליציאה מקומית באמצעות SSH. פרטים נוספים זמינים במאמר בנושא ניסיון בשימוש בכלי לניהול תהליכים בענן.
המצב הצפוי
אחרי שהשירות 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 \
--cloud_orchestrator_service_url=http://HOST:PORT \
--max_local_virtual_devices N \
--use_host_network-
--use_cloud_orchestrator: הפעלת התכונה Cloud Orchestration. -
--cloud_orchestrator_service_url: מציינת את כתובת ה-URL שבה שירות Cloud Orchestrator מאזין, לדוגמה,http://localhost:8080. -
--max_local_virtual_devices: הגדרת המספר המקסימלי של מכשירים וירטואליים שאפשר להקצות בו-זמנית ב-OmniLab ATS. מספר ברירת המחדל הוא 0. -
--use_host_network: שימוש במרחב שמות הרשת של המארח עבור הקונטיינר. ההרשאה הזו נדרשת כדי לגשת לשירות Cloud Orchestrator.
הרצת בדיקה עם מכשירים שמנוהלים בענן
בקטע הזה מוסבר איך מריצים בדיקה במכשירים וירטואליים שמתואמים בענן.
מכשירים נבחרים
ברשימת המכשירים, OmniLab ATS מציג מכשירים וירטואליים שמתואמים בענן כ-placeholder במקום המספרים הסידוריים שלהם. ה-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.
איור 3. משאבים לבדיקת מיפוי.
צפייה בבדיקות וביומנים
אחרי שהבדיקה מסתיימת, אפשר לראות את היומנים בקטע של קובצי הפלט. יומנים ספציפיים שנאספים עבור מופעים שמנוהלים על ידי Cloud Orchestrator כוללים:
-
launcher.log: יומנים ממרכז האפליקציות של Cuttlefish -
kernel.log: יומן ליבת Android רגיל