Cloud Orchestration ऐप्लिकेशन, Cuttlefish इंस्टेंस को मैनेज करने का तेज़ और स्केलेबल तरीका है. यह खास तौर पर, एआरएम पर आधारित वर्चुअल डिवाइसों (सीएचडी) के लिए है. OmniLab ATS, Cloud Orchestration के साथ काम करता है, ताकि वर्चुअल डिवाइसों पर टेस्ट किए जा सकें. वर्चुअल डिवाइसों का इस्तेमाल शुरू करने से पहले, OmniLab ATS इंस्टॉल करने के लिए, OmniLab Android Test Station के निर्देशों का पालन करें.
खास जानकारी
Cloud Orchestration की मदद से, OmniLab ATS, Cuttlefish इंस्टेंस के मैनेजमेंट को Cloud Orchestrator की सेवा को सौंप सकता है. इस तरीके से, मौजूदा लोकल और रिमोट मोड की तुलना में कई फ़ायदे मिलते हैं. साथ ही, उपयोगकर्ताओं को पहले जैसा अनुभव मिलता है:
- एक साथ कई इंस्टेंस लॉन्च करना: इससे एक साथ कई Cuttlefish इंस्टेंस लॉन्च किए जा सकते हैं. इससे टेस्ट शुरू होने से पहले लगने वाला समय काफ़ी कम हो जाता है.
- स्केलेबिलिटी: यह बड़े पैमाने पर टेस्टिंग एनवायरमेंट के लिए सही है.
- संसाधन आइसोलेशन: यह टेस्ट के लिए इस्तेमाल होने वाले एनवायरमेंट (ATS वर्कर) को डिवाइस इम्यूलेशन एनवायरमेंट से अलग करता है.
ज़रूरी शर्तें
- एक ऐसा होस्ट मशीन जो Docker चला सके
- Cuttlefish ऑर्केस्ट्रेशन Docker इमेज का ऐक्सेस
Cloud Orchestrator सेवा सेट अप करना
Cloud Orchestrator सेवा, Cuttlefish इंस्टेंस की लाइफ़साइकल मैनेज करती है. इस सेवा को अलग-अलग एनवायरमेंट में डिप्लॉय किया जा सकता है. यह x86 और एआरएम, दोनों आर्किटेक्चर के साथ काम करती है:
- ATS वर्कर के तौर पर एक ही होस्ट: यह उसी मशीन पर Docker कंटेनर में चलती है
- अलग मशीन: यह किसी ऐसे ऑन-प्रिमाइसेस सर्वर पर चलती है जो Docker चला सकता है
- क्लाउड इंस्टेंस: यह क्लाउड एनवायरमेंट में मौजूद वर्चुअल मशीन पर चलती है. उदाहरण के लिए, Google Compute Engine
सेवा इंस्टॉल और सेट अप करना
सेवा लॉन्च करने के लिए, Cloud Android Orchestration के README फ़ाइल में दिए गए निर्देशों का पालन करें.
पुष्टि करने की सुविधा और अनुमतियां
अगर Cloud Orchestrator सेवा किसी रिमोट मशीन पर चल रही है, तो पक्का करें कि ATS वर्कर होस्ट के पास, एचटीटीपी अनुरोधों के ज़रिए इसे ऐक्सेस करने की ज़रूरी अनुमतियां हों. अगर एचटीटीपी कनेक्शन की अनुमति नहीं है, तो आपको SSH पोर्ट फ़ॉरवर्डिंग सेट अप करनी पड़ सकती है. ज़्यादा जानकारी के लिए, क्लाउड ऑर्केस्ट्रेटर आज़माएं लेख पढ़ें.
अनुमानित स्थिति
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 --use_cloud_orchestrator \
--orchestration_service_url=http://HOST:PORT \
--max_local_virtual_devices N \
--use_host_network \
--force_ats_version 2 \
--force_update--use_cloud_orchestrator: इससे Cloud Orchestration की सुविधा चालू होती है.--orchestration_service_url: इससे वह यूआरएल तय होता है जहां Cloud Orchestration सेवा सुन रही है. उदाहरण के लिए,http://localhost:8080.--max_local_virtual_devices: इससे वर्चुअल डिवाइसों की वह ज़्यादा से ज़्यादा संख्या तय होती है जिन्हें OmniLab ATS एक साथ असाइन कर सकता है. डिफ़ॉल्ट संख्या 0 होती है.--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. इनकी स्थितियां या तो उपलब्ध या असाइन किया गया होती हैं. उपलब्ध स्थिति में मौजूद प्लेसहोल्डर से पता चलता है कि वर्चुअल डिवाइस चालू नहीं है और इसे टेस्ट के लिए असाइन किया जा सकता है.
पहली इमेज. क्लाउड ऑर्केस्ट्रेशन की सुविधा वाले वर्चुअल डिवाइस चुनना.
डिवाइस की कार्रवाइयां जोड़ना
जब इन डिवाइसों पर टेस्ट शेड्यूल किया जाता है, तो ATS, टेस्ट साइकल के दौरान Cuttlefish इंस्टेंस को प्रोविज़न और मैनेज करने के लिए, ज़रूरी डिवाइस की कार्रवाइयां अपने-आप जोड़ देता है.
दूसरी इमेज. डिवाइस की अपने-आप होने वाली कार्रवाइयां.
टेस्ट के संसाधन सेट करना
टेस्ट शेड्यूल करते समय, आपको टेस्ट के लिए ज़रूरी संसाधन देने होंगे. टेस्ट के संसाधन सेट करें सेक्शन में, पक्का करें कि अपलोड की गई फ़ाइलें, संसाधन के सही नामों से मैप की गई हों:
- होस्ट टूल पैकेज को, उदाहरण के लिए,
cvd-host_package.tar.gzकोcvd_host_packageनाम से मैप करें. - डिवाइस इमेज zip को
cvd_device_imageनाम से मैप करें.
तीसरी इमेज. टेस्ट के संसाधन मैप करना.
टेस्ट रन और लॉग देखना
टेस्ट पूरा होने के बाद, आउटपुट फ़ाइलें सेक्शन में जाकर, लॉग देखे जा सकते हैं. Cloud Orchestrator से मैनेज किए जाने वाले इंस्टेंस के लिए इकट्ठा किए गए खास लॉग में ये शामिल हैं:
launcher.log: Cuttlefish लॉन्चर से मिले लॉगkernel.log: Android कर्नेल का स्टैंडर्ड लॉग