يوفر تطبيق Cloud Orchestration طريقة عالية الأداء وقابلة للتوسع لإدارة مثيلات Cuttlefish، خاصةً للأجهزة الافتراضية المستندة إلى ARM (CHD). تتوافق محطة اختبار Android من OmniLab مع Cloud Orchestration، ما يتيح لك إجراء الاختبارات على الأجهزة الافتراضية. قبل البدء في استخدام الأجهزة الافتراضية ، اتّبِع تعليمات محطة اختبار Android من OmniLab لتثبيت محطة اختبار Android من OmniLab.
نظرة عامة
يتيح Cloud Orchestration لمحطة اختبار Android من OmniLab تفويض إدارة مثيلات Cuttlefish إلى خدمة Cloud Orchestrator مخصّصة. يوفّر هذا النهج عدة مزايا مقارنةً بالوضعَين المحلي والبعيد الحاليَين ، مع الحفاظ على تجربة مستخدم مألوفة:
- تشغيل متوازٍ للمثيلات: يسمح بتشغيل عدة مثيلات من Cuttlefish في الوقت نفسه، ما يقلّل بشكلٍ كبير من وقت الإعداد قبل بدء الاختبارات.
- قابلية التوسّع: يناسب بيئات الاختبار على نطاق واسع.
- عزل الموارد: يفصل بيئة التنفيذ التجريبي (ATS worker) عن بيئة محاكاة الجهاز.
المتطلبات الأساسية
- جهاز مضيف قادر على تشغيل Docker
- الوصول إلى صور Docker لتنسيق Cuttlefish
إعداد خدمة Cloud Orchestrator
تُدير خدمة Cloud Orchestrator دورة حياة مثيلات Cuttlefish. يمكنك نشر الخدمة في بيئات مختلفة، وهي متوافقة مع كل من بنية x86 وARM:
- المضيف نفسه الذي يشغّل ATS worker: يتم تشغيلها في حاوية Docker على الجهاز نفسه
- جهاز منفصل: يتم تشغيلها على خادم محلي قادر على تشغيل Docker
- مثيل سحابي: يتم تشغيلها على جهاز افتراضي في بيئة سحابية، مثل Google Compute Engine
تثبيت الخدمة وإعدادها
اتّبِع تعليمات ملف Cloud Android Orchestration README لتشغيل الخدمة.
المصادقة والأذونات
إذا كانت خدمة Cloud Orchestrator تعمل على جهاز بعيد، تأكَّد من أنّ مضيف ATS worker لديه الأذونات اللازمة للوصول إليها من خلال طلبات HTTP. إذا لم يكن الاتصال عبر HTTP مسموحًا، قد تحتاج إلى إعداد إعادة توجيه منفذ SSH. لمزيد من التفاصيل، يُرجى الاطّلاع على تجربة Cloud Orchestrator.
الحالة المتوقّعة
بعد بدء خدمة Cloud Orchestrator بنجاح، يجب أن يكون من الممكن الوصول إليها باستخدام HTTP. يمكنك التحقّق من حالتها من خلال طلب بيانات من واجهة برمجة التطبيقات الخاصة بها:
- إرسال طلب ping إلى الخدمة: يجب أن تتمكّن من الوصول إلى نقطة نهاية الخدمة من مضيف ATS worker في OmniLab. على سبيل المثال، يجب أن يؤدي تشغيل
curl -I http://localhost:8080/v1/zones/local/hostsإلى عرض استجابة HTTP ناجحة (إماHTTP/1.1 200 OKأو عملية إعادة توجيه302 Foundإلى/username)، ما يؤكّد أنّ الخدمة نشطة ويمكن الوصول إليها.
ضبط محطة اختبار Android من OmniLab لاستخدام Cloud Orchestration
قبل بدء محطة اختبار Android من OmniLab، تأكَّد من إيقاف جميع مثيلات Cuttlefish على مضيف ATS worker في OmniLab. تُشغّل محطة اختبار Android من OmniLab الأجهزة الافتراضية وتوقفها تلقائيًا أثناء دورة الاختبار، وتتعارض مثيلات Cuttlefish الحالية مع المثيلات التي تُديرها محطة اختبار Android من OmniLab. لمزيد من التفاصيل حول إيقاف مثيلات Cuttlefish، يُرجى الاطّلاع على إيقاف Cuttlefish.
لتفعيل Cloud Orchestration في OmniLab ATS، مرِّر علامات معيّنة عند بدء OmniLab ATS:
mtt start --max_orchestration_virtual_devices N \
--orchestration_service_url=http://HOST:PORT \
--use_host_network \
--force_ats_version 2 \
--force_update--max_orchestration_virtual_devices: يضبط الحد الأقصى لعدد الأجهزة الافتراضية التي يُديرها Cloud Orchestrator والتي يمكن لمجموعة أدوات اختبار السيارات من OmniLab تخصيصها في الوقت نفسه. العدد التلقائي هو 0.--orchestration_service_url: يحدّد عنوان URL الذي تستمع إليه خدمة Cloud Orchestration، على سبيل المثال،http://localhost:8080.--use_host_network: يستخدم مساحة اسم شبكة المضيف للحاوية. هذه الخطوة مطلوبة للوصول إلى خدمة Cloud Orchestration.--force_ats_version 2: يفرض استخدام الإصدار 2.0 من محطة اختبار Android من OmniLab، وهو مطلوب لاستخدام Cloud Orchestration. لمزيد من المعلومات، يُرجى الاطّلاع على دليل الترقية إلى الإصدار 2.0 من محطة اختبار Android من OmniLab.--force_update: يجلب أحدث إصدار من الحاوية يتضمّن الإصدار 2.0 من مجموعة أدوات اختبار السيارات (ATS) وميزات Cloud Orchestration.
إجراء اختبار باستخدام الأجهزة التي يتم تنسيقها من خلال السحابة الإلكترونية
يصف هذا القسم خطوات إجراء اختبار على الأجهزة الافتراضية التي يتم تنسيقها من خلال السحابة الإلكترونية.
أجهزة محددة
في قائمة الأجهزة، تعرض محطة اختبار Android من OmniLab الأجهزة الافتراضية التي يتم تنسيقها من خلال السحابة الإلكترونية كعناصر نائبة بدلاً من أرقامها التسلسلية الفعلية. تظهر العناصر النائبة
بالتنسيق HOSTNAME:PORT (على سبيل المثال،
thehostname:6520). وتكون الحالات إما متاحة أو مخصّصة. يشير العنصر النائب في الحالة متاحة إلى أنّ الجهاز الافتراضي غير قيد التشغيل ويمكن تخصيصه للاختبار.
الشكل 1: اختيار الأجهزة الافتراضية التي يتم تنسيقها من خلال السحابة الإلكترونية
إضافة إجراءات الجهاز
عند جدولة اختبار على هذه الأجهزة، تضيف محطة اختبار Android من OmniLab تلقائيًا إجراءات الجهاز المطلوبة لتوفير مثيلات Cuttlefish وإدارتها أثناء دورة الاختبار.
الشكل 2: إجراءات الجهاز التلقائية
ضبط موارد الاختبار
عند جدولة اختبار، يجب توفير موارد الاختبار المطلوبة. في قسم ضبط موارد الاختبار ، تأكَّد من ربط الملفات التي تم تحميلها بأسماء الموارد الصحيحة:
- اربط حزمة أدوات المضيف، على سبيل المثال،
cvd-host_package.tar.gz، بالاسمcvd_host_package. - اربط ملف zip لصورة الجهاز بالاسم
cvd_device_image.
الشكل 3: ربط موارد الاختبار
عرض عمليات تشغيل الاختبارات والسجلّات
بعد اكتمال الاختبار، يمكنك عرض السجلّات في قسم ملفات الإخراج. تتضمّن السجلّات المحدّدة التي يتم جمعها للمثيلات التي تُديرها خدمة Cloud Orchestrator ما يلي:
launcher.log: سجلّات من مشغّل Cuttlefishkernel.log: سجلّ أساسي عادي لنظام التشغيل Android