L'app Cloud Orchestration offre un modo scalabile e ad alte prestazioni per gestire le istanze Cuttlefish, in particolare per i dispositivi virtuali basati su ARM (CHD). OmniLab ATS supporta l'orchestrazione cloud per consentirti di eseguire test su dispositivi virtuali. Prima di iniziare a utilizzare i dispositivi virtuali, segui le istruzioni riportate in OmniLab Android Test Station per installare OmniLab ATS.
Panoramica
Cloud Orchestration consente a OmniLab ATS di delegare la gestione delle istanze Cuttlefish a un servizio Cloud Orchestrator dedicato. Questo approccio offre diversi vantaggi rispetto alle modalità locale e remota esistenti, pur mantenendo un'esperienza utente familiare:
- Avvio parallelo delle istanze:consente di avviare più istanze Cuttlefish contemporaneamente, riducendo significativamente il tempo di overhead prima dell'inizio dei test.
- Scalabilità:adatta ad ambienti di test su larga scala.
- Isolamento delle risorse:disaccoppia l'ambiente di esecuzione dei test (worker ATS) dall'ambiente di emulazione del dispositivo.
Prerequisiti
- Una macchina host in grado di eseguire Docker
- Accesso alle immagini Docker di orchestrazione di Cuttlefish
Configura il servizio Cloud Orchestrator
Il servizio Cloud Orchestrator gestisce il ciclo di vita delle istanze Cuttlefish. Puoi eseguire il deployment del servizio in vari ambienti e supporta le architetture x86 e ARM:
- Stesso host del worker ATS: viene eseguito in un container Docker sulla stessa macchina
- Macchina separata: viene eseguito su un server on-premise in grado di eseguire Docker
- Istanza cloud:viene eseguita su una macchina virtuale in un ambiente cloud, ad esempio Google Compute Engine
Installare e configurare il servizio
Segui il file README di Cloud Android Orchestration per avviare il servizio.
Autenticazione e autorizzazioni
Se il servizio Cloud Orchestrator è in esecuzione su una macchina remota, assicurati che l'host worker ATS disponga delle autorizzazioni necessarie per accedervi tramite richieste HTTP. Se la connessione HTTP non è consentita, potresti dover configurare l'inoltro delle porte SSH. Per maggiori dettagli, vedi Prova Cloud Orchestrator.
Stato previsto
Dopo l'avvio del servizio Cloud Orchestrator, dovrebbe essere raggiungibile tramite HTTP. Puoi verificarne lo stato eseguendo una query sulla relativa API:
- Ping del servizio:dovresti essere in grado di raggiungere l'endpoint del servizio dall'host worker OmniLab ATS. Ad esempio, l'esecuzione di
curl -I http://localhost:8080/v1/zones/local/hostsdovrebbe restituire una risposta HTTP riuscita (HTTP/1.1 200 OKo un reindirizzamento302 Founda/username), confermando che il servizio è attivo e raggiungibile.
Configura OmniLab ATS per Cloud Orchestration
Prima di avviare OmniLab ATS, assicurati che tutte le istanze Cuttlefish sull'host worker OmniLab ATS siano arrestate. OmniLab ATS avvia e arresta automaticamente i dispositivi virtuali durante il ciclo di test e le istanze Cuttlefish esistenti sono in conflitto con le istanze gestite da OmniLab ATS. Per informazioni dettagliate sull'arresto delle istanze Cuttlefish, vedi Arrestare Cuttlefish.
Per attivare l'orchestrazione cloud in OmniLab ATS, passa flag specifici quando avvii 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: imposta il numero massimo di dispositivi virtuali gestiti da Cloud Orchestrator che OmniLab ATS può allocare contemporaneamente. Il numero predefinito è 0.--orchestration_service_url: specifica l'URL in cui il servizio Cloud Orchestration è in ascolto, ad esempiohttp://localhost:8080.--use_host_network: utilizza lo spazio dei nomi di rete dell'host per il container. Questo passaggio è obbligatorio per accedere al servizio Cloud Orchestration.--force_ats_version 2: impone l'utilizzo di OmniLab ATS 2.0, necessario per l'orchestrazione cloud. Per saperne di più, consulta la guida all'upgrade di OmniLab ATS 2.0.--force_update: estrae l'ultima build del container con le funzionalità ATS 2.0 e Cloud Orchestration.
Configurare le specifiche hardware del dispositivo virtuale (facoltativo)
Per impostazione predefinita, ogni istanza di dispositivo virtuale orchestrata nel cloud viene sottoposta a provisioning con
quattro CPU, 8192 MB (8 GB) di RAM, una SIM normale e un'immagine della scheda SD
collegata. Quando avvii OmniLab ATS con Cloud Orchestration, puoi
ignorare uno qualsiasi di questi valori predefiniti passando il flag del server lab corrispondente nel
comando mtt start utilizzando --extra_docker_args. Ogni flag è indipendente:
passa solo i flag che vuoi modificare e ometti gli altri per mantenere i valori
predefiniti.
--android_jit_emulator_cpus: imposta il numero di core della CPU per ogni istanza del dispositivo virtuale. Se non viene impostato o è 0, il valore predefinito è4.--android_jit_emulator_memory_mb: imposta la memoria in megabyte (MB) per ogni istanza di dispositivo virtuale. Se non viene impostato o è 0, il valore predefinito è8192.--android_jit_emulator_modem_simulator_sim_type: imposta il tipo di SIM che il simulatore di modem emula per ogni istanza del dispositivo virtuale:1per una SIM normale o2per una SIM con privilegi dell'operatore (richiesti daCtsCarrierApiTestCases). Se non è impostato o è 0, il valore predefinito è1.--android_jit_emulator_use_sdcard: imposta se creare un'immagine della scheda SD vuota e collegarla a ogni istanza del dispositivo virtuale (trueofalse). Il valore predefinito ètrue. Impostafalseper disattivare la creazione di schede SD.
L'esempio seguente sostituisce tutti e quattro i valori predefiniti:
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"'Eseguire un test con dispositivi orchestrati dal cloud
Questa sezione descrive i passaggi per eseguire un test su dispositivi virtuali orchestrati nel cloud.
Alcuni dispositivi
Nell'elenco dei dispositivi, OmniLab ATS mostra i dispositivi virtuali orchestrati nel cloud come
segnaposto anziché i numeri di serie effettivi. I segnaposto vengono visualizzati
nel formato HOSTNAME:PORT (ad esempio,
thehostname:6520). Gli stati sono Disponibile o Allocato. Un segnaposto nello stato Disponibile indica che il dispositivo virtuale non è in esecuzione e può essere allocato per il test.
Figura 1. Selezione di dispositivi virtuali orchestrati nel cloud.
Aggiungere azioni dispositivo
Quando viene pianificato un test su questi dispositivi, ATS aggiunge automaticamente le azioni del dispositivo richieste per eseguire il provisioning e gestire le istanze Cuttlefish durante il ciclo di test.
Figura 2. Azioni automatiche del dispositivo.
Imposta le risorse di test
Quando pianifichi un test, devi fornire le risorse di test richieste. Nella sezione Imposta risorse di test, assicurati di mappare i file caricati ai nomi delle risorse corretti:
- Mappa il pacchetto di strumenti dell'host, ad esempio
cvd-host_package.tar.gz, al nomecvd_host_package. - Mappa il file ZIP dell'immagine del dispositivo al nome
cvd_device_image.
Figura 3. Mappatura delle risorse di test.
Visualizzare esecuzioni di test e log
Al termine del test, puoi visualizzare i log nella sezione dei file di output. I log specifici raccolti per le istanze gestite da Cloud Orchestrator includono:
launcher.log: Log di Avvio app Cuttlefishkernel.log: Log del kernel Android standard