Orkestrasi Cloud di OmniLab ATS

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/hosts akan menampilkan respons HTTP yang berhasil (baik HTTP/1.1 200 OK maupun pengalihan 302 Found ke /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 adalah 4.
  • --android_jit_emulator_memory_mb: Menetapkan memori dalam megabyte (MB) untuk setiap instance perangkat virtual. Jika tidak disetel atau 0, setelan defaultnya adalah 8192.
  • --android_jit_emulator_modem_simulator_sim_type: Menetapkan jenis SIM yang diemulasi oleh simulator modem untuk setiap instance perangkat virtual: 1 untuk SIM reguler, atau 2 untuk SIM dengan hak istimewa operator (diperlukan oleh CtsCarrierApiTestCases). Jika tidak ditetapkan atau 0, defaultnya adalah 1.
  • --android_jit_emulator_use_sdcard: Menetapkan apakah akan membuat image kartu SD kosong dan melampirkannya ke setiap instance perangkat virtual (true atau false). Nilai defaultnya adalah true. Setel ke false untuk 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.

Pilih Perangkat yang Diorkestrasi Cloud

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.

Tindakan Perangkat Otomatis

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 nama cvd_host_package.
  • Petakan zip image perangkat ke nama cvd_device_image.

Resource Pengujian untuk Cloud Orchestration

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 Cuttlefish
  • kernel.log: Log kernel Android standar