Cloud Orchestration অ্যাপ, Cuttlefish ইনস্ট্যান্স ম্যানেজ করার জন্য একটি উচ্চ-পারফর্ম্যান্স, স্কেলেবল উপায় প্রদান করে, বিশেষ করে ARM-ভিত্তিক ভার্চুয়াল ডিভাইসের (CHD) জন্য। OmniLab ATS-এ Cloud Orchestration কাজ করে যাতে আপনি ভার্চুয়াল ডিভাইসে টেস্ট রান করতে পারেন। ভার্চুয়াল ডিভাইস ব্যবহার করা শুরু করার আগে, OmniLab ATS ইনস্টল করতে OmniLab Android Test Station অনুসরণ করুন।
এক নজরে
ক্লাউড অর্কেস্ট্রেশন, OmniLab ATS-কে Cuttlefish ইনস্ট্যান্সের ম্যানেজমেন্ট ডেডিকেটেড ক্লাউড অর্কেস্ট্রেটর পরিষেবায় ডেলিগেট করতে দেয়। এই পদ্ধতিটি আগে থেকে থাকা লোকাল ও রিমোট মোডের তুলনায় অনেক সুবিধা দেয় এবং একই সাথে ব্যবহারকারীর পরিচিত অভিজ্ঞতা বজায় রাখে:
- সমান্তরালভাবে ইনস্ট্যান্স লঞ্চ করা: একাধিক Cuttlefish ইনস্ট্যান্স একই সাথে লঞ্চ করার অনুমতি দেয়, এর ফলে পরীক্ষা শুরু হওয়ার আগে ওভারহেড সময় উল্লেখযোগ্যভাবে কমে যায়।
- স্কেলেবিলিটি: বড় স্কেলের টেস্টিং এনভায়রনমেন্টের জন্য উপযুক্ত।
- রিসোর্স আইসোলেশন: ডিভাইস এমুলেশন এনভায়রনমেন্ট থেকে টেস্ট এক্সিকিউশন এনভায়রনমেন্ট (ATS ওয়ার্কার) আলাদা করে।
পূর্বশর্ত
- Docker চালানোর উপযুক্ত হোস্ট মেশিন
- Cuttlefish অর্কেস্ট্রেশন Docker ইমেজে অ্যাক্সেস
Cloud Orchestrator পরিষেবা সেট-আপ করুন
Cloud Orchestrator পরিষেবা Cuttlefish ইনস্ট্যান্সের লাইফসাইকেল ম্যানেজ করে। আপনি বিভিন্ন এনভায়রনমেন্টে পরিষেবাটি ডেপ্লয় করতে পারবেন এবং এটি x86 ও ARM আর্কিটেকচার, দু'টির সাথেই কাজ করে:
- ATS ওয়ার্কারের মতো একই হোস্ট: একই মেশিনে Docker কন্টেনারে চলে
- আলাদা মেশিন: Docker চালাতে পারে এমন অন-প্রিমিজ সার্ভারে চলে
- ক্লাউড ইনস্ট্যান্স: ক্লাউড এনভায়রনমেন্টে ভার্চুয়াল মেশিনে রান করে, যেমন Google Compute Engine
পরিষেবা ইনস্টল ও সেট-আপ করা
পরিষেবা লঞ্চ করতে Cloud Android Orchestration README ফাইলটি অনুসরণ করুন।
অনুমোদন ও অনুমতি
Cloud Orchestrator পরিষেবা কোনও রিমোট মেশিনে চললে, ATS ওয়ার্কার হোস্টের কাছে HTTP অনুরোধের মাধ্যমে এটি অ্যাক্সেস করার জন্য প্রয়োজনীয় অনুমতি আছে কিনা তা নিশ্চিত করুন। HTTP কানেকশনের অনুমতি না থাকলে, আপনাকে SSH পোর্ট ফরওয়ার্ডিং সেট-আপ করতে হতে পারে। আরও বিবরণের জন্য, ক্লাউড অর্কেস্ট্রেটর ব্যবহার করে দেখুন লিঙ্কে দেখুন।
প্রত্যাশিত স্ট্যাটাস
Cloud Orchestrator পরিষেবা সফলভাবে শুরু হওয়ার পরে, HTTP ব্যবহার করে এটি অ্যাক্সেস করা যাবে। আপনি এর API কোয়েরি করে এর অবস্থা যাচাই করতে পারেন:
- পরিষেবা পিং করুন: OmniLab ATS ওয়ার্কার হোস্ট থেকে
পরিষেবার এন্ডপয়েন্টে পৌঁছাতে পারা উচিত। যেমন,
curl -I http://localhost:8080/v1/zones/local/hostsরান করালে একটি সফল HTTP উত্তর (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 একইসাথে অ্যালোকেট করতে পারে। ডিফল্ট সংখ্যা হল ০।--orchestration_service_url: URL নির্দিষ্ট করে যেখানে ক্লাউড অর্কেস্ট্রেশন পরিষেবা শুনছে, যেমন,http://localhost:8080।--use_host_network: কন্টেনারের জন্য হোস্টের নেটওয়ার্ক নেমস্পেস ব্যবহার করে। Cloud Orchestration পরিষেবা অ্যাক্সেস করার জন্য এটি প্রয়োজন।--force_ats_version 2: Cloud Orchestration-এর জন্য প্রয়োজনীয় OmniLab ATS 2.0 ব্যবহার করতে বাধ্য করে। আরও তথ্যের জন্য, OmniLab ATS 2.0 আপগ্রেড গাইড দেখুন।--force_update: ATS 2.0 এবং ক্লাউড অর্কেস্ট্রেশন ফিচার সহ লেটেস্ট কন্টেনার বিল্ড পুল করে।
ভার্চুয়াল ডিভাইসের হার্ডওয়্যার স্পেসিফিকেশন কনফিগার করা (ঐচ্ছিক)
ডিফল্ট হিসেবে, প্রতিটি ক্লাউড-অর্কস্ট্রেটেড ভার্চুয়াল ডিভাইস ইনস্ট্যান্স চারটি সিপিইউ, ৮১৯২ এমবি (৮ জিবি) র্যাম, একটি সাধারণ সিম এবং একটি অ্যাটাচ করা এসডি কার্ড ইমেজ সহ প্রোভিশন করা হয়। ক্লাউড অর্কেস্ট্রেশন সহ OmniLab ATS লঞ্চ করার সময়, আপনি
--extra_docker_args ব্যবহার করে mtt start কমান্ডে সংশ্লিষ্ট ল্যাব সার্ভার ফ্ল্যাগ পাস করিয়ে
এইসব ডিফল্ট ওভাররাইড করতে পারবেন। প্রতিটি ফ্ল্যাগ স্বতন্ত্র:
আপনি যে ফ্ল্যাগগুলি পরিবর্তন করতে চান শুধুমাত্র সেগুলি পাস করুন এবং বাকিগুলি তাদের ডিফল্ট মান রাখতে বাদ দিন।
--android_jit_emulator_cpus: প্রতিটি ভার্চুয়াল ডিভাইস ইনস্ট্যান্সের জন্য CPU কোরের সংখ্যা সেট করে। সেট করা না থাকলে বা ০ হলে, ডিফল্ট হিসেবে4সেট করা হয়।--android_jit_emulator_memory_mb: প্রতিটি ভার্চুয়াল ডিভাইস ইনস্ট্যান্সের জন্য মেগাবাইটে (MB) মেমরি সেট করে। সেট করা না থাকলে বা ০ হলে, ডিফল্ট হিসেবে8192হয়।--android_jit_emulator_modem_simulator_sim_type: প্রতিটি ভার্চুয়াল ডিভাইস ইনস্ট্যান্সের জন্য মডেম সিমুলেটর যে সিম টাইপ এমুলেট করে তা সেট করে: রেগুলার সিমের জন্য1অথবা ক্যারিয়ার প্রিভিলেজ সহ সিমের জন্য2(CtsCarrierApiTestCases-এর জন্য প্রয়োজনীয়)। সেট করা না থাকলে বা 0 হলে, ডিফল্ট হিসেবে1সেট করা হয়।--android_jit_emulator_use_sdcard: খালি SD কার্ড ইমেজ তৈরি করে প্রতিটি ভার্চুয়াল ডিভাইস ইনস্ট্যান্সে অ্যাটাচ করা হবে কিনা তা সেট করে (trueবাfalse)। ডিফল্ট হিসেবেtrueসেট করা থাকে। এসডি কার্ড তৈরি করা বন্ধ করতেfalse-এ সেট করুন।
নিম্নলিখিত উদাহরণে চারটি ডিফল্টই ওভাররাইড করা হয়েছে:
mtt start --max_orchestration_virtual_devices N \
--orchestration_service_url=http://HOST:PORT \
--use_host_network \
--force_ats_version 2 \
--force_update \
--extra_docker_args '-e LAB_SERVER_OPTS="--android_jit_emulator_cpus=CPUS --android_jit_emulator_memory_mb=MEMORY_MB --android_jit_emulator_modem_simulator_sim_type=SIM_TYPE --android_jit_emulator_use_sdcard=USE_SDCARD"'ক্লাউড-অর্কেস্ট্রেটেড ডিভাইসের মাধ্যমে পরীক্ষা চালান
এই বিভাগে ক্লাউড-অর্কেস্ট্রেটেড ভার্চুয়াল ডিভাইসে টেস্ট চালানোর ধাপগুলি বর্ণনা করা হয়েছে।
ডিভাইসগুলি বেছে নিন
ডিভাইসের তালিকায়, OmniLab ATS, ক্লাউড-অর্কেস্ট্রেটেড ভার্চুয়াল ডিভাইসকে
প্লেসহোল্ডার হিসেবে দেখায়, সেগুলির আসল সিরিয়াল নম্বর হিসেবে নয়। প্লেসহোল্ডারগুলি HOSTNAME:PORT ফর্ম্যাটে
দেখানো হয় (যেমন,
thehostname:6520)। স্ট্যাটাস হয় উপলভ্য অথবা অ্যালোকেট করা হয়েছে। উপলভ্য স্ট্যাটাসে
থাকা ভার্চুয়াল ডিভাইস থেকে বোঝা যায় যে সেটি
চলছে না এবং পরীক্ষার জন্য বরাদ্দ করা যেতে পারে।
ছবি ১. ক্লাউড-অর্কেস্ট্রেটেড ভার্চুয়াল ডিভাইস বেছে নেওয়া।
ডিভাইস অ্যাকশন যোগ করা
এইসব ডিভাইসে কোনও পরীক্ষা শিডিউল করা হলে, পরীক্ষা চক্র চলাকালীন Cuttlefish ইনস্ট্যান্স প্রোভিশন ও ম্যানেজ করার জন্য ATS অটোমেটিক প্রয়োজনীয় ডিভাইস অ্যাকশন যোগ করে।
ছবি ২. অটোমেটিক ডিভাইস অ্যাকশন।
টেস্ট রিসোর্স সেট করা
পরীক্ষা শিডিউল করার সময়, আপনাকে প্রয়োজনীয় পরীক্ষার রিসোর্স প্রদান করতে হবে। টেস্ট রিসোর্স সেট করুন বিভাগে, আপলোড করা ফাইলগুলি সঠিক রিসোর্সের নামের সাথে ম্যাপ করা হয়েছে কিনা তা নিশ্চিত করুন:
- হোস্ট টুলের প্যাকেজ, যেমন,
cvd-host_package.tar.gz, কেcvd_host_packageনামের সাথে ম্যাপ করুন। - ডিভাইসের ছবির জিপ ফাইলকে
cvd_device_imageনামের সাথে ম্যাপ করুন।
ছবি ৩. টেস্ট রিসোর্স ম্যাপ করা।
টেস্ট রান ও লগ দেখা
টেস্ট সম্পূর্ণ হওয়ার পরে, আপনি আউটপুট ফাইল বিভাগে লগ দেখতে পাবেন। Cloud Orchestrator-ম্যানেজ করা ইনস্ট্যান্সের জন্য সংগ্রহ করা নির্দিষ্ট লগের মধ্যে এগুলি অন্তর্ভুক্ত:
launcher.log: Cuttlefish লঞ্চার থেকে লগkernel.log: স্ট্যান্ডার্ড Android কার্নেল লগ