Aplikasi Cloud Orchestration menyediakan cara yang berperforma tinggi dan skalabel untuk mengelola instance Cuttlefish, terutama untuk perangkat virtual berbasis ARM (CHD). ATS OmniLab mendukung Cloud Orchestration sehingga Anda dapat menjalankan pengujian di perangkat virtual. Sebelum mulai menggunakan perangkat virtual, ikuti OmniLab Android Test Station untuk menginstal OmniLab ATS.
Ringkasan
Cloud Orchestration memungkinkan OmniLab ATS mendelegasikan pengelolaan instance Cuttlefish ke layanan Cloud Orchestrator khusus. Pendekatan ini menawarkan beberapa keunggulan dibandingkan dengan mode lokal dan jarak jauh yang ada sekaligus mempertahankan pengalaman pengguna yang sudah dikenal:
- Peluncuran instance paralel: Memungkinkan peluncuran beberapa instance Cuttlefish secara bersamaan, sehingga mengurangi waktu overhead secara signifikan sebelum pengujian dimulai.
- Skalabilitas: Cocok untuk lingkungan pengujian skala besar.
- Isolasi resource: Memisahkan lingkungan eksekusi uji (ATS worker) dari lingkungan emulasi perangkat.
Prasyarat
- Mesin host yang dapat menjalankan Docker
- Akses ke image Docker orkestrasi Cuttlefish
Menyiapkan layanan Cloud Orchestrator
Layanan Cloud Orchestrator mengelola siklus proses instance Cuttlefish. Anda dapat men-deploy layanan di berbagai lingkungan, dan layanan ini mendukung arsitektur x86 dan ARM:
- Host yang sama dengan pekerja ATS: Berjalan di container Docker pada mesin yang sama
- Mesin terpisah: Berjalan di server lokal yang dapat menjalankan Docker
- Instance cloud: Berjalan di virtual machine dalam lingkungan cloud, misalnya, Google Compute Engine
Menginstal dan menyiapkan layanan
Ikuti README Cloud Android Orchestration untuk meluncurkan layanan.
Otentikasi dan izin
Jika layanan Cloud Orchestrator berjalan di komputer jarak jauh, pastikan host pekerja ATS memiliki izin yang diperlukan untuk mengaksesnya melalui permintaan HTTP. Jika koneksi HTTP tidak diizinkan, Anda mungkin perlu menyiapkan penerusan port SSH. Untuk mengetahui detailnya, lihat Mencoba orkestrator cloud.
Status yang diharapkan
Setelah layanan Cloud Orchestrator berhasil dimulai, layanan tersebut akan dapat dijangkau menggunakan HTTP. Anda dapat memverifikasi statusnya dengan membuat kueri API-nya:
- Ping layanan: Anda harus dapat menjangkau endpoint layanan dari host pekerja ATS OmniLab. Misalnya, menjalankan
curl -I http://localhost:8080/v1/zones/local/hostsakan menampilkan respons HTTP yang berhasil (baikHTTP/1.1 200 OKmaupun pengalihan302 Foundke/username), yang mengonfirmasi bahwa layanan aktif dan dapat dijangkau.
Mengonfigurasi ATS OmniLab untuk Cloud Orchestration
Sebelum memulai OmniLab ATS, pastikan semua instance Cuttlefish di host pekerja OmniLab ATS dihentikan. ATS OmniLab otomatis meluncurkan dan menghentikan perangkat virtual selama siklus pengujian, dan instance Cuttlefish yang ada berkonflik dengan instance yang dikelola oleh ATS OmniLab. Untuk mengetahui detail tentang cara menghentikan instance Cuttlefish, lihat Menghentikan Cuttlefish.
Untuk mengaktifkan Cloud Orchestration di OmniLab ATS, teruskan flag tertentu saat memulai 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: Menetapkan jumlah maksimum perangkat virtual yang dikelola oleh Cloud Orchestrator yang dapat dialokasikan secara bersamaan oleh OmniLab ATS. Jumlah defaultnya adalah 0.--orchestration_service_url: Menentukan URL tempat layanan Cloud Orchestration mendengarkan, misalnya,http://localhost:8080.--use_host_network: Menggunakan namespace jaringan host untuk container. Hal ini diperlukan untuk mengakses layanan Cloud Orchestration.--force_ats_version 2: Memaksa penggunaan OmniLab ATS 2.0, yang diperlukan untuk Cloud Orchestration. Untuk mengetahui informasi selengkapnya, lihat panduan upgrade OmniLab ATS 2.0.--force_update: Menarik build container terbaru dengan fitur ATS 2.0 dan Cloud Orchestration.
Mengonfigurasi spesifikasi hardware perangkat virtual (opsional)
Secara default, setiap instance perangkat virtual yang diatur cloud disediakan dengan
empat CPU, RAM 8192 MB (8 GB), SIM reguler, dan image kartu SD yang terpasang. Saat meluncurkan OmniLab ATS dengan Cloud Orchestration, Anda dapat mengganti salah satu setelan default ini dengan meneruskan flag server lab yang sesuai dalam perintah mtt start menggunakan --extra_docker_args. Setiap flag bersifat independen:
hanya teruskan flag yang ingin Anda ubah dan abaikan sisanya untuk mempertahankan nilai defaultnya.
--android_jit_emulator_cpus: Menetapkan jumlah core CPU untuk setiap instance perangkat virtual. Jika tidak disetel atau 0, setelan defaultnya adalah4.--android_jit_emulator_memory_mb: Menetapkan memori dalam megabyte (MB) untuk setiap instance perangkat virtual. Jika tidak disetel atau 0, setelan defaultnya adalah8192.--android_jit_emulator_modem_simulator_sim_type: Menetapkan jenis SIM yang diemulasi oleh simulator modem untuk setiap instance perangkat virtual:1untuk SIM reguler, atau2untuk SIM dengan hak istimewa operator (diperlukan olehCtsCarrierApiTestCases). Jika tidak ditetapkan atau 0, defaultnya adalah1.--android_jit_emulator_use_sdcard: Menetapkan apakah akan membuat image kartu SD kosong dan melampirkannya ke setiap instance perangkat virtual (trueataufalse). Nilai defaultnya adalahtrue. Setel kefalseuntuk menonaktifkan pembuatan kartu SD.
Contoh berikut mengganti keempat default:
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"'Menjalankan pengujian dengan perangkat yang diorkestrasi cloud
Bagian ini menjelaskan langkah-langkah untuk menjalankan pengujian pada perangkat virtual yang diorkestrasi cloud.
Perangkat tertentu
Di daftar perangkat, OmniLab ATS menampilkan perangkat virtual yang diatur cloud sebagai
penampung, bukan nomor serinya yang sebenarnya. Placeholder ditampilkan dalam format HOSTNAME:PORT (misalnya, thehostname:6520). Statusnya adalah Tersedia atau Dialokasikan. Penampung
dalam status Tersedia menunjukkan bahwa perangkat virtual tidak
berjalan dan dapat dialokasikan untuk pengujian.
Gambar 1. Memilih perangkat virtual yang diatur cloud.
Menambahkan tindakan perangkat
Saat pengujian dijadwalkan di perangkat ini, ATS akan otomatis menambahkan tindakan perangkat yang diperlukan untuk menyediakan dan mengelola instance Cuttlefish selama siklus pengujian.
Gambar 2. Tindakan perangkat otomatis.
Menetapkan resource pengujian
Saat menjadwalkan pengujian, Anda harus menyediakan resource pengujian yang diperlukan. Di bagian Setel Resource Pengujian, pastikan Anda memetakan file yang diupload ke nama resource yang benar:
- Petakan paket alat host, misalnya,
cvd-host_package.tar.gz, ke namacvd_host_package. - Petakan zip image perangkat ke nama
cvd_device_image.
Gambar 3. Memetakan resource pengujian.
Melihat operasi pengujian dan log
Setelah pengujian selesai, Anda dapat melihat log di bagian file output. Log spesifik yang dikumpulkan untuk instance yang dikelola Cloud Orchestrator meliputi:
launcher.log: Log dari peluncur Cuttlefishkernel.log: Log kernel Android standar