يوفّر تطبيق Cloud Orchestration طريقة عالية الأداء وقابلة للتوسّع لإدارة مثيلات Cuttlefish، خاصةً للأجهزة الافتراضية المستندة إلى ARM (CHD). تتيح منصة OmniLab ATS استخدام Cloud Orchestration، ما يتيح لك إجراء الاختبارات على الأجهزة الافتراضية. قبل البدء في استخدام الأجهزة الافتراضية، اتّبِع الخطوات الواردة في محطة اختبار Android في OmniLab لتثبيت OmniLab ATS.
نظرة عامة
تتيح Cloud Orchestration لـ OmniLab ATS تفويض إدارة مثيلات Cuttlefish إلى خدمة Cloud Orchestrator مخصّصة. يقدّم هذا النهج العديد من المزايا مقارنةً بالوضعَين المحلي وعن بُعد الحاليَين، مع الحفاظ على تجربة مستخدم مألوفة:
- تشغيل مثيلات متوازية: يسمح بتشغيل عدة مثيلات من Cuttlefish في الوقت نفسه، ما يقلّل بشكل كبير من الوقت الإضافي قبل بدء الاختبارات.
- قابلية التوسّع: تناسب بيئات الاختبار على نطاق واسع.
- عزل الموارد: يتم فصل بيئة التنفيذ التجريبي (العامل في "خدمة الاختبار الآلي") عن بيئة محاكاة الجهاز.
المتطلبات الأساسية
- جهاز مضيف يمكنه تشغيل Docker
- الوصول إلى صور Docker الخاصة بتنظيم Cuttlefish
إعداد خدمة Cloud Orchestrator
تتولّى خدمة Cloud Orchestrator إدارة مراحل نشاط مثيلات Cuttlefish. يمكنك نشر الخدمة في بيئات مختلفة، وهي تتوافق مع بنية x86 وARM:
- المضيف نفسه الذي يعمل عليه ATS: يتم تشغيله في حاوية Docker على الجهاز نفسه
- جهاز منفصل: يتم تشغيله على خادم داخل المؤسسة يمكنه تشغيل Docker
- الجهاز الافتراضي على السحابة الإلكترونية: يعمل على جهاز افتراضي في بيئة سحابية، مثل Google Compute Engine
تثبيت الخدمة وإعدادها
اتّبِع ملف README الخاص بخدمة Cloud Android Orchestration لتشغيل الخدمة.
المصادقة والأذونات
إذا كانت خدمة Cloud Orchestrator تعمل على جهاز بعيد، تأكَّد من أنّ مضيف ATS worker لديه الأذونات اللازمة للوصول إليها من خلال طلبات HTTP. إذا لم يكن مسموحًا بالاتصال عبر HTTP، قد تحتاج إلى إعداد إعادة توجيه منفذ SSH. لمزيد من التفاصيل، يُرجى الاطّلاع على تجربة أداة تنسيق السحابة الإلكترونية.
الحالة المتوقّعة
بعد بدء خدمة Cloud Orchestrator بنجاح، يجب أن يكون من الممكن الوصول إليها باستخدام HTTP. يمكنك التحقّق من حالتها من خلال طلب بيانات من واجهة برمجة التطبيقات الخاصة بها:
- فحص الاتصال بالخدمة: يجب أن تتمكّن من الوصول إلى نقطة نهاية الخدمة من مضيف عامل 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_orchestrator_service_url: تحدّد عنوان URL الذي تستمع إليه خدمة Cloud Orchestrator، على سبيل المثال،http://localhost:8080. --max_local_virtual_devices: يضبط هذا الحقل الحد الأقصى لعدد الأجهزة الافتراضية التي يمكن أن يخصّصها نظام OmniLab ATS في الوقت نفسه. العدد التلقائي هو 0.-
--use_host_network: تستخدم مساحة اسم شبكة المضيف للحاوية. هذه الخطوة مطلوبة للوصول إلى خدمة Cloud Orchestrator.
إجراء اختبار باستخدام أجهزة منسَّقة في السحابة الإلكترونية
يوضّح هذا القسم خطوات إجراء اختبار على الأجهزة الافتراضية التي تتم إدارتها من السحابة الإلكترونية.
أجهزة محددة
في قائمة الأجهزة، يعرض OmniLab ATS الأجهزة الافتراضية التي يتم تنسيقها على السحابة الإلكترونية كعناصر نائبة بدلاً من أرقامها التسلسلية الفعلية. تظهر العناصر النائبة بالتنسيق HOSTNAME:PORT (على سبيل المثال، thehostname:6520). وتكون الحالات إما متوفّرة أو مخصّصة. يشير العنصر النائب في الحالة متاح إلى أنّ الجهاز الافتراضي لا يعمل ويمكن تخصيصه للاختبار.
الشكل 1: اختيار الأجهزة الافتراضية التي تتم إدارتها من السحابة الإلكترونية
إضافة إجراءات الجهاز
عند تحديد موعد لإجراء اختبار على هذه الأجهزة، يضيف نظام ATS تلقائيًا إجراءات الجهاز المطلوبة لتوفير مثيلات Cuttlefish وإدارتها أثناء دورة الاختبار.
الشكل 2: إجراءات الجهاز التلقائية
ضبط موارد الاختبار
عند جدولة اختبار، يجب توفير موارد الاختبار المطلوبة. في قسم ضبط موارد الاختبار، تأكَّد من ربط الملفات التي تم تحميلها بأسماء الموارد الصحيحة:
- اربط حزمة أدوات المضيف، مثل
cvd-host_package.tar.gz، بالاسمcvd_host_package. - اربط ملف zip الخاص بنسخة الجهاز بالاسم
cvd_device_image.
الشكل 3: ربط موارد الاختبار
عرض عمليات الاختبار والسجلّات
بعد اكتمال الاختبار، يمكنك الاطّلاع على السجلات في قسم ملفات الإخراج. تشمل السجلات المحدّدة التي يتم جمعها للآلات الافتراضية المُدارة من خلال Cloud Orchestrator ما يلي:
-
launcher.log: سجلّات مشغّل Cuttlefish -
kernel.log: سجلّ نواة Android العادي