O app Cloud Orchestration oferece uma maneira escalonável e de alta performance para gerenciar instâncias do Cuttlefish, principalmente para dispositivos virtuais baseados em ARM (CHD). O OmniLab ATS oferece suporte à orquestração de nuvem para que você possa executar testes em dispositivos virtuais. Antes de começar a usar dispositivos virtuais, siga Android Test Station OmniLab para instalar o OmniLab ATS.
Visão geral
A orquestração de nuvem permite que o OmniLab ATS delegue o gerenciamento de instâncias do Cuttlefish a um serviço dedicado do Cloud Orchestrator. Essa abordagem oferece várias vantagens em relação aos modos locais e remotos atuais, preservando uma experiência do usuário familiar:
- Inicialização de instâncias paralelas:permite iniciar várias instâncias do Cuttlefish simultaneamente, reduzindo significativamente o tempo de sobrecarga antes do início dos testes.
- Escalonabilidade:adequada para ambientes de teste em grande escala.
- Isolamento de recursos:desvincula o ambiente de execução do teste (trabalhador do ATS) do ambiente de emulação de dispositivos.
Pré-requisitos
- Uma máquina host capaz de executar o Docker
- Acesso às imagens do Docker de orquestração do Cuttlefish
Configurar o serviço do Cloud Orchestrator
O serviço do Cloud Orchestrator gerencia o ciclo de vida das instâncias do Cuttlefish. É possível implantar o serviço em vários ambientes, e ele oferece suporte às arquiteturas x86 e ARM:
- Mesmo host que o trabalhador do ATS:é executado em um contêiner do Docker na mesma máquina
- Máquina separada:é executado em um servidor local capaz de executar o Docker
- Instância de nuvem:é executado em uma máquina virtual em um ambiente de nuvem, por exemplo, o Google Compute Engine
Instalar e configurar o serviço
Siga o README da orquestração do Android na nuvem para iniciar o serviço.
Autenticação e permissões
Se o serviço do Cloud Orchestrator estiver sendo executado em uma máquina remota, verifique se o host do trabalhador do ATS tem as permissões necessárias para acessá-lo por solicitações HTTP. Se a conexão HTTP não for permitida, talvez seja necessário configurar o encaminhamento de porta SSH. Para mais detalhes, consulte Testar o orquestrador de nuvem.
Estado esperado
Depois que o serviço do Cloud Orchestrator for iniciado, ele poderá ser acessado usando HTTP. É possível verificar o estado dele consultando a API:
- Ping no serviço:é possível acessar o endpoint do serviço no host do trabalhador do OmniLab ATS. Por exemplo, executar
curl -I http://localhost:8080/v1/zones/local/hostsretorna uma resposta HTTP bem-sucedida (HTTP/1.1 200 OKou um redirecionamento302 Foundpara/username), confirmando que o serviço está ativo e acessível.
Configurar o OmniLab ATS para orquestração de nuvem
Antes de iniciar o OmniLab ATS, verifique se todas as instâncias do Cuttlefish no host do trabalhador do OmniLab ATS estão interrompidas. O OmniLab ATS inicia e interrompe automaticamente os dispositivos virtuais durante o ciclo de teste, e as instâncias do Cuttlefish atuais entram em conflito com as instâncias gerenciadas pelo OmniLab ATS. Para mais detalhes sobre como interromper instâncias do Cuttlefish, consulte Interromper o Cuttlefish.
Para ativar a orquestração de nuvem no OmniLab ATS, transmita flags específicas ao iniciar o 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: define o número máximo de dispositivos virtuais gerenciados pelo Cloud Orchestrator que o OmniLab ATS pode alocar simultaneamente. O número padrão é 0.--orchestration_service_url: especifica o URL em que o serviço de orquestração de nuvem está escutando, por exemplo,http://localhost:8080.--use_host_network: usa o namespace de rede do host para o contêiner. Isso é necessário para acessar o serviço de orquestração de nuvem.--force_ats_version 2: força o uso do OmniLab ATS 2.0, que é necessário para a orquestração de nuvem. Para mais informações, consulte o Guia de upgrade do OmniLab ATS 2.0.--force_update: extrai o build de contêiner mais recente com os recursos do ATS 2.0 e da orquestração de nuvem.
Executar um teste com dispositivos orquestrados na nuvem
Esta seção descreve as etapas para executar um teste em dispositivos virtuais orquestrados na nuvem.
Dispositivos selecionados
Na lista de dispositivos, o OmniLab ATS mostra dispositivos virtuais orquestrados na nuvem como marcadores de posição em vez dos números de série reais. Os marcadores de posição são mostrados
no formato de HOSTNAME:PORT (por exemplo,
thehostname:6520). Os estados são Disponível ou Alocado. Um marcador de posição no estado Disponível indica que o dispositivo virtual não está em execução e pode ser alocado para o teste.
Figura 1. Selecionar dispositivos virtuais orquestrados na nuvem.
Adicionar ações do dispositivo
Quando um teste é programado nesses dispositivos, o ATS adiciona automaticamente as ações necessárias do dispositivo para provisionar e gerenciar as instâncias do Cuttlefish durante o ciclo de teste.
Figura 2. Ações automáticas do dispositivo.
Definir recursos de teste
Ao programar um teste, é necessário fornecer os recursos de teste necessários. Na seção Definir recursos de teste, verifique se você mapeou os arquivos enviados para os nomes de recursos corretos:
- Mapeie o pacote de ferramentas do host, por exemplo,
cvd-host_package.tar.gz, para o nomecvd_host_package. - Mapeie o arquivo ZIP da imagem do dispositivo para o nome
cvd_device_image.
Figura 3. Mapeamento de recursos de teste.
Ver execuções e registros de teste
Depois que o teste for concluído, será possível visualizar os registros na seção de arquivos de saída. Os registros específicos coletados para instâncias gerenciadas pelo Cloud Orchestrator incluem:
launcher.log: registros do inicializador do Cuttlefishkernel.log: registro padrão do kernel do Android