Organización de la nube en el ATS de OmniLab

La app de Cloud Orchestration proporciona una forma escalable y de alto rendimiento para administrar instancias de Cuttlefish, en especial para dispositivos virtuales basados en ARM (CHD). OmniLab ATS admite Cloud Orchestration para que puedas ejecutar pruebas en dispositivos virtuales. Antes de comenzar a usar dispositivos virtuales, sigue OmniLab Android Test Station para instalar OmniLab ATS.

Descripción general

Cloud Orchestration permite que OmniLab ATS delegue la administración de instancias de Cuttlefish a un servicio de Cloud Orchestrator dedicado. Este enfoque ofrece varias ventajas sobre los modos locales y remotos existentes, al tiempo que conserva una experiencia del usuario familiar:

  • Lanzamiento de instancias paralelas: Permite lanzar varias instancias de Cuttlefish de forma simultánea, lo que reduce significativamente el tiempo de sobrecarga antes de que comiencen las pruebas.
  • Escalabilidad: Se adapta a entornos de prueba a gran escala.
  • Aislamiento de recursos: Desvincula el entorno de ejecución de pruebas (worker de ATS) del entorno de emulación de dispositivos.

Requisitos previos

  • Una máquina anfitrión capaz de ejecutar Docker
  • Acceso a las imágenes de Docker de organización de Cuttlefish

Configura el servicio de Cloud Orchestrator

El servicio de Cloud Orchestrator administra el ciclo de vida de las instancias de Cuttlefish. Puedes implementar el servicio en varios entornos, y admite arquitecturas x86 y ARM:

  • Mismo host que el worker de ATS: Se ejecuta en un contenedor de Docker en la misma máquina.
  • Máquina independiente: Se ejecuta en un servidor local capaz de ejecutar Docker.
  • Instancia de nube: Se ejecuta en una máquina virtual en un entorno de nube, por ejemplo, Google Compute Engine.

Instala y configura el servicio

Sigue el archivo README de Cloud Android Orchestration para iniciar el servicio.

Autenticación y permisos

Si el servicio de Cloud Orchestrator se ejecuta en una máquina remota, asegúrate de que el host del worker de ATS tenga los permisos necesarios para acceder a él a través de solicitudes HTTP. Si no se permite la conexión HTTP, es posible que debas configurar el reenvío de puertos SSH. Para obtener más información, consulta Prueba Cloud Orchestrator.

Estado esperado

Una vez que se inicia correctamente el servicio de Cloud Orchestrator, se debe poder acceder a él mediante HTTP. Para verificar su estado, consulta su API:

  • Haz un ping al servicio: Deberías poder acceder al extremo del servicio desde el host del worker de OmniLab ATS. Por ejemplo, ejecutar curl -I http://localhost:8080/v1/zones/local/hosts debería mostrar una respuesta HTTP correcta (ya sea HTTP/1.1 200 OK o un redireccionamiento 302 Found a /username), lo que confirma que el servicio está activo y accesible.

Configura OmniLab ATS para Cloud Orchestration

Antes de iniciar OmniLab ATS, asegúrate de que todas las instancias de Cuttlefish en el host del worker de OmniLab ATS estén detenidas. OmniLab ATS inicia y detiene automáticamente los dispositivos virtuales durante el ciclo de prueba, y las instancias de Cuttlefish existentes entran en conflicto con las instancias administradas por OmniLab ATS. Para obtener detalles sobre cómo detener instancias de Cuttlefish, consulta Detén Cuttlefish.

Para habilitar Cloud Orchestration en OmniLab ATS, pasa marcas específicas cuando inicies 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: Establece la cantidad máxima de dispositivos virtuales administrados por Cloud Orchestrator que OmniLab ATS puede asignar de forma simultánea. El número predeterminado es 0.
  • --orchestration_service_url: Especifica la URL en la que escucha el servicio de Cloud Orchestration, por ejemplo, http://localhost:8080.
  • --use_host_network: Usa el espacio de nombres de red del host para el contenedor. Esto es necesario para acceder al servicio de Cloud Orchestration.
  • --force_ats_version 2: Fuerza el uso de OmniLab ATS 2.0, que es necesario para Cloud Orchestration. Para obtener más información, consulta la guía de actualización de OmniLab ATS 2.0.
  • --force_update: Extrae la compilación de contenedor más reciente con las funciones de ATS 2.0 y Cloud Orchestration.

Ejecuta una prueba con dispositivos organizados en la nube

En esta sección, se describen los pasos para ejecutar una prueba en dispositivos virtuales organizados en la nube.

Dispositivos selectos

En la lista de dispositivos, OmniLab ATS muestra dispositivos virtuales organizados en la nube como marcadores de posición en lugar de sus números de serie reales. Los marcadores de posición se muestran en el formato de HOSTNAME:PORT (por ejemplo, thehostname:6520). Los estados son Available o Allocated. Un marcador de posición en el estado Available indica que el dispositivo virtual no se está ejecutando y se puede asignar para la prueba.

Selecciona Dispositivos orquestados por la nube

Figura 1: Selección de dispositivos virtuales organizados en la nube

Agrega acciones del dispositivo

Cuando se programa una prueba en estos dispositivos, ATS agrega automáticamente las acciones del dispositivo necesarias para aprovisionar y administrar las instancias de Cuttlefish durante el ciclo de prueba.

Acciones automáticas del dispositivo

Figura 2: Acciones automáticas del dispositivo

Establece recursos de prueba

Cuando programes una prueba, debes proporcionar los recursos de prueba necesarios. En la sección Set Test Resources, asegúrate de asignar los archivos subidos a los nombres de recursos correctos:

  • Asigna el paquete de herramientas del host, por ejemplo, cvd-host_package.tar.gz, al nombre cvd_host_package.
  • Asigna el archivo zip de la imagen del dispositivo al nombre cvd_device_image.

Recursos de prueba para Cloud Orchestration

Figura 3: Asignación de recursos de prueba

Visualiza las ejecuciones y los registros de prueba

Una vez que se complete la prueba, podrás ver los registros en la sección de archivos de salida. Los registros específicos recopilados para las instancias administradas por Cloud Orchestrator incluyen lo siguiente:

  • launcher.log: Registros del iniciador de Cuttlefish
  • kernel.log: Registro estándar del kernel de Android