OmniLab ATS में क्लाउड ऑर्केस्ट्रेशन

Cloud Orchestration ऐप्लिकेशन, Cuttlefish इंस्टेंस को मैनेज करने का एक बेहतर और आसानी से बढ़ाया जा सकने वाला तरीका उपलब्ध कराता है. यह खास तौर पर, एआरएम पर आधारित वर्चुअल डिवाइसों (सीएचडी) के लिए है. OmniLab ATS, क्लाउड ऑर्केस्ट्रेशन के साथ काम करता है. इससे वर्चुअल डिवाइसों पर टेस्ट चलाए जा सकते हैं. वर्चुअल डिवाइसों का इस्तेमाल शुरू करने से पहले, OmniLab ATS इंस्टॉल करने के लिए OmniLab Android Test Station पर जाएं.

खास जानकारी

Cloud Orchestration की मदद से, OmniLab ATS, Cuttlefish इंस्टेंस के मैनेजमेंट को Cloud Orchestrator सेवा को सौंप सकता है. इस तरीके से, लोकल और रिमोट मोड के मुकाबले कई फ़ायदे मिलते हैं. साथ ही, उपयोगकर्ताओं को पहले जैसा अनुभव मिलता है:

  • पैरलल इंस्टेंस लॉन्च करना: इससे एक साथ कई Cuttlefish इंस्टेंस लॉन्च किए जा सकते हैं. इससे टेस्ट शुरू होने से पहले, ओवरहेड टाइम काफ़ी कम हो जाता है.
  • स्केलेबिलिटी: बड़े पैमाने पर टेस्टिंग एनवायरमेंट के लिए सही है.
  • संसाधन आइसोलेशन: यह टेस्ट एक्ज़ीक्यूशन एनवायरमेंट (एटीएस वर्कर) को डिवाइस इम्यूलेशन एनवायरमेंट से अलग करता है.

ज़रूरी शर्तें

  • ऐसी होस्ट मशीन जिस पर Docker चल सकता हो
  • Cuttlefish ऑर्केस्ट्रेशन की Docker इमेज का ऐक्सेस

Cloud Orchestrator सेवा सेट अप करना

Cloud Orchestrator सेवा, Cuttlefish इंस्टेंस की लाइफ़साइकल को मैनेज करती है. इस सेवा को अलग-अलग एनवायरमेंट में डिप्लॉय किया जा सकता है. साथ ही, यह x86 और ARM, दोनों आर्किटेक्चर के साथ काम करती है:

  • ATS वर्कर के तौर पर काम करने वाली मशीन पर ही होस्ट किया गया हो: यह उसी मशीन पर Docker कंटेनर में चलता है
  • अलग मशीन: यह कंपनी की इमारत में मौजूद ऐसे सर्वर पर चलता है जो Docker को चलाने में सक्षम हो
  • क्लाउड इंस्टेंस: यह क्लाउड एनवायरमेंट में मौजूद वर्चुअल मशीन पर चलता है. उदाहरण के लिए, Google Compute Engine

सेवा को इंस्टॉल और सेट अप करना

सेवा लॉन्च करने के लिए, Cloud Android Orchestration README में दिया गया तरीका अपनाएं.

पुष्टि और अनुमतियां

अगर Cloud Orchestrator सेवा किसी रिमोट मशीन पर चल रही है, तो पक्का करें कि ATS वर्कर होस्ट के पास, HTTP अनुरोधों के ज़रिए इसे ऐक्सेस करने की ज़रूरी अनुमतियां हों. अगर एचटीटीपी कनेक्शन की अनुमति नहीं है, तो आपको एसएसएच पोर्ट फ़ॉरवर्डिंग सेट अप करनी पड़ सकती है. ज़्यादा जानकारी के लिए, क्लाउड ऑर्केस्ट्रेटर आज़माना लेख पढ़ें.

अनुमानित स्थिति

Cloud Orchestrator सेवा के चालू होने के बाद, इसे एचटीटीपी का इस्तेमाल करके ऐक्सेस किया जा सकता है. इसके एपीआई से क्वेरी करके, इसकी स्थिति की पुष्टि की जा सकती है:

  • सेवा को पिंग करें: आपको OmniLab ATS वर्कर होस्ट से सेवा एंडपॉइंट तक पहुंचने में कोई समस्या नहीं होनी चाहिए. उदाहरण के लिए, curl -I http://localhost:8080/v1/zones/local/hosts चलाने पर, एचटीटीपी रिस्पॉन्स सही तरीके से मिलना चाहिए. जैसे, HTTP/1.1 200 OK या 302 Found, /username पर रीडायरेक्ट हो रहा हो. इससे यह पुष्टि होती है कि सेवा चालू है और उस तक पहुंचा जा सकता है.

Cloud Orchestration के लिए OmniLab ATS को कॉन्फ़िगर करना

OmniLab ATS शुरू करने से पहले, पक्का करें कि OmniLab ATS वर्कर होस्ट पर सभी Cuttlefish इंस्टेंस बंद हों. OmniLab ATS, टेस्ट साइकल के दौरान वर्चुअल डिवाइसों को अपने-आप लॉन्च और बंद करता है. साथ ही, मौजूदा Cuttlefish इंस्टेंस, OmniLab ATS से मैनेज किए गए इंस्टेंस के साथ काम नहीं करते. Cuttlefish इंस्टेंस को बंद करने के बारे में जानकारी के लिए, Cuttlefish को बंद करना लेख पढ़ें.

OmniLab ATS में Cloud Orchestration की सुविधा चालू करने के लिए, 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 ATS, एक साथ इतने ही वर्चुअल डिवाइसों को असाइन कर सकता है. डिफ़ॉल्ट संख्या 0 होती है.
  • --orchestration_service_url: यह उस यूआरएल के बारे में बताता है जहां Cloud Orchestration सेवा काम कर रही है. उदाहरण के लिए, http://localhost:8080.
  • --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, क्लाउड-ऑर्केस्ट्रेटेड वर्चुअल डिवाइसों को उनके असली सीरियल नंबर के बजाय, प्लेसहोल्डर के तौर पर दिखाता है. प्लेसहोल्डर, HOSTNAME:PORT फ़ॉर्मैट में दिखाए जाते हैं. उदाहरण के लिए, thehostname:6520. इनकी स्थिति उपलब्ध है या बंट गया है होती है. उपलब्ध है स्थिति में मौजूद प्लेसहोल्डर से पता चलता है कि वर्चुअल डिवाइस काम नहीं कर रहा है और इसे टेस्ट के लिए असाइन किया जा सकता है.

क्लाउड से मैनेज किए जाने वाले डिवाइस चुनें

पहली इमेज. क्लाउड-ऑर्केस्ट्रेटेड वर्चुअल डिवाइसों को चुनना.

डिवाइस की कार्रवाइयां जोड़ना

इन डिवाइसों पर टेस्ट शेड्यूल होने पर, एटीएस अपने-आप ज़रूरी डिवाइस ऐक्शन जोड़ देता है. इससे टेस्ट साइकल के दौरान, Cuttlefish इंस्टेंस को प्रोविज़न और मैनेज किया जा सकता है.

डिवाइस से जुड़ी कार्रवाइयां अपने-आप होने की सुविधा

दूसरी इमेज. डिवाइस की कार्रवाइयां अपने-आप होने की सुविधा.

टेस्ट के लिए संसाधन सेट करना

टेस्ट शेड्यूल करते समय, आपको टेस्ट के लिए ज़रूरी संसाधन देने होंगे. टेस्ट के संसाधन सेट करें सेक्शन में जाकर, पक्का करें कि आपने अपलोड की गई फ़ाइलों को सही संसाधन के नामों से मैप किया हो:

  • होस्ट टूल पैकेज, जैसे कि cvd-host_package.tar.gz को नाम cvd_host_package पर मैप करें.
  • डिवाइस की इमेज वाली ZIP फ़ाइल को नाम cvd_device_image पर मैप करें.

Cloud Orchestration के लिए टेस्ट रिसॉर्स

तीसरी इमेज. मैपिंग की जांच करने वाले संसाधन.

टेस्ट रन और लॉग देखना

जांच पूरी होने के बाद, आउटपुट फ़ाइलों वाले सेक्शन में जाकर लॉग देखे जा सकते हैं. Cloud Orchestrator की मदद से मैनेज किए जाने वाले इंस्टेंस के लिए, ये लॉग इकट्ठा किए जाते हैं:

  • launcher.log: Cuttlefish लॉन्चर के लॉग
  • kernel.log: स्टैंडर्ड Android कर्नल लॉग