ارکستراسیون ابری در OmniLab ATS

برنامه Cloud Orchestration روشی با کارایی بالا و مقیاس‌پذیر برای مدیریت نمونه‌های Cuttlefish، به ویژه برای دستگاه‌های مجازی مبتنی بر ARM (CHD) ارائه می‌دهد. OmniLab ATS از Cloud Orchestration پشتیبانی می‌کند تا بتوانید آزمایش‌ها را روی دستگاه‌های مجازی اجرا کنید. قبل از شروع استفاده از دستگاه‌های مجازی، OmniLab Android Test Station را برای نصب OmniLab ATS دنبال کنید.

نمای کلی

Cloud Orchestration به OmniLab ATS اجازه می‌دهد تا مدیریت نمونه‌های Cuttlefish را به یک سرویس Cloud Orchestrator اختصاصی واگذار کند. این رویکرد مزایای متعددی نسبت به حالت‌های محلی و راه دور موجود ارائه می‌دهد و در عین حال یک تجربه کاربری آشنا را حفظ می‌کند:

  • راه‌اندازی موازی نمونه: امکان راه‌اندازی چندین نمونه Cuttlefish را به طور همزمان فراهم می‌کند و زمان سربار قبل از شروع آزمایش‌ها را به میزان قابل توجهی کاهش می‌دهد.
  • مقیاس‌پذیری: مناسب برای محیط‌های آزمایشی در مقیاس بزرگ.
  • جداسازی منابع: محیط اجرای تست (ATS worker) را از محیط شبیه‌سازی دستگاه جدا می‌کند.

پیش‌نیازها

  • یک ماشین میزبان که قادر به اجرای داکر باشد
  • دسترسی به ایمیج‌های داکرِ هماهنگ‌سازیِ Cuttlefish

راه‌اندازی سرویس Cloud Orchestrator

سرویس Cloud Orchestrator چرخه حیات نمونه‌های Cuttlefish را مدیریت می‌کند. می‌توانید این سرویس را در محیط‌های مختلف مستقر کنید و از معماری‌های x86 و ARM پشتیبانی می‌کند:

  • میزبان یکسان با کارگر ATS: در یک کانتینر داکر روی همان دستگاه اجرا می‌شود
  • دستگاه جداگانه: روی یک سرور داخلی که قادر به اجرای داکر است، اجرا می‌شود.
  • نمونه ابری: روی یک ماشین مجازی در یک محیط ابری، مثلاً Google Compute Engine، اجرا می‌شود.

نصب و راه‌اندازی سرویس

برای راه‌اندازی سرویس، فایل راهنمای ارکستراسیون ابری اندروید (Cloud Android Orchestration README) را دنبال کنید.

مجوزها و دسترسی‌ها

اگر سرویس 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 redirecting to /username ) را برگرداند و تأیید کند که سرویس فعال و قابل دسترسی است.

پیکربندی OmniLab ATS برای ارکستراسیون ابری

قبل از شروع OmniLab ATS، مطمئن شوید که تمام نمونه‌های Cuttlefish روی میزبان کارگر OmniLab ATS متوقف شده‌اند. OmniLab ATS به طور خودکار دستگاه‌های مجازی را در طول چرخه آزمایش راه‌اندازی و متوقف می‌کند و نمونه‌های Cuttlefish موجود با نمونه‌های مدیریت شده توسط OmniLab ATS تداخل دارند. برای جزئیات بیشتر در مورد متوقف کردن نمونه‌های Cuttlefish، به Stop 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 می‌تواند همزمان اختصاص دهد را تنظیم می‌کند. عدد پیش‌فرض ۰ است.
  • --use_host_network : از فضای نام شبکه میزبان برای کانتینر استفاده می‌کند. این برای دسترسی به سرویس Cloud Orchestrator لازم است.

اجرای یک آزمایش با دستگاه‌های هماهنگ‌شده با ابر

این بخش مراحل اجرای یک آزمایش روی دستگاه‌های مجازی هماهنگ‌شده با ابر را شرح می‌دهد.

دستگاه‌ها را انتخاب کنید

در لیست دستگاه‌ها، OmniLab ATS دستگاه‌های مجازی هماهنگ‌شده با ابر را به جای شماره سریال واقعی آنها، به عنوان متغیرهایی نمایش می‌دهد. متغیرهای ورودی در قالب HOSTNAME:PORT (به عنوان مثال، thehostname:6520 ) نشان داده می‌شوند. حالت‌ها یا موجود هستند یا تخصیص‌یافته . یک متغیر در حالت موجود نشان می‌دهد که دستگاه مجازی در حال اجرا نیست و می‌تواند برای آزمایش اختصاص داده شود.

دستگاه‌های هماهنگ‌شده با ابر را انتخاب کنید

شکل 1. انتخاب دستگاه‌های مجازی هماهنگ‌شده با ابر.

افزودن اقدامات دستگاه

وقتی آزمایشی روی این دستگاه‌ها برنامه‌ریزی می‌شود، ATS به‌طور خودکار اقدامات مورد نیاز دستگاه را برای آماده‌سازی و مدیریت نمونه‌های Cuttlefish در طول چرخه آزمایش اضافه می‌کند.

اقدامات خودکار دستگاه

شکل ۲. اقدامات خودکار دستگاه.

منابع آزمون را تنظیم کنید

هنگام برنامه‌ریزی یک آزمون، باید منابع آزمون مورد نیاز را ارائه دهید. در بخش «تنظیم منابع آزمون» ، مطمئن شوید که فایل‌های آپلود شده را به نام‌های صحیح منابع نگاشت می‌کنید:

  • بسته ابزارهای میزبان، مثلاً cvd-host_package.tar.gz را به نام cvd_host_package نگاشت (map) کنید.
  • فایل فشرده‌ی تصویر دستگاه را به نام cvd_device_image نگاشت (map) کنید.

منابع آزمون برای ارکستراسیون ابری

شکل ۳. نگاشت منابع آزمون.

مشاهده‌ی تست‌های اجرا شده و گزارش‌ها

پس از اتمام آزمایش، می‌توانید گزارش‌ها را در بخش فایل‌های خروجی مشاهده کنید. گزارش‌های خاص جمع‌آوری‌شده برای نمونه‌های مدیریت‌شده توسط Cloud Orchestrator عبارتند از:

  • launcher.log : گزارش‌های مربوط به لانچر Cuttlefish
  • kernel.log : گزارش استاندارد هسته اندروید