Orchestration du cloud dans OmniLab ATS

L'application Cloud Orchestration offre un moyen évolutif et hautes performances de gérer les instances Cuttlefish, particulièrement pour les appareils virtuels basés sur ARM (CHD). OmniLab ATS est compatible avec Cloud Orchestration, ce qui vous permet d'exécuter des tests sur des appareils virtuels. Avant de commencer à utiliser des appareils virtuels, suivez la procédure décrite dans OmniLab Android Test Station pour installer OmniLab ATS.

Présentation

Cloud Orchestration permet à OmniLab ATS de déléguer la gestion des instances Cuttlefish à un service Cloud Orchestrator dédié. Cette approche présente plusieurs avantages par rapport aux modes locaux et à distance existants, tout en préservant une expérience utilisateur familière :

  • Lancement d'instances en parallèle : permet de lancer plusieurs instances Cuttlefish simultanément, ce qui réduit considérablement le temps d'attente avant le début des tests.
  • Évolutivité : convient aux environnements de test à grande échelle.
  • Isolation des ressources : dissocie l'environnement d'exécution des tests (ATS worker) de l'environnement d'émulation d'appareil.

Prérequis

  • Une machine hôte capable d'exécuter Docker
  • Accès aux images Docker d'orchestration Cuttlefish

Configurer le service Cloud Orchestrator

Le service Cloud Orchestrator gère le cycle de vie des instances Cuttlefish. Vous pouvez déployer le service dans différents environnements. Il est compatible avec les architectures x86 et ARM :

  • Même hôte que l'ATS worker : s'exécute dans un conteneur Docker sur la même machine
  • Machine distincte : s'exécute sur un serveur sur site capable d'exécuter Docker
  • Instance cloud : s'exécute sur une machine virtuelle dans un environnement cloud, par exemple Google Compute Engine

Installer et configurer le service

Suivez le fichier Lisez-moi de Cloud Android Orchestration pour lancer le service.

Authentification et autorisations

Si le service Cloud Orchestrator s'exécute sur une machine distante, assurez-vous que l'hôte ATS worker dispose des autorisations nécessaires pour y accéder via des requêtes HTTP. Si la connexion HTTP n'est pas autorisée, vous devrez peut-être configurer le transfert de port SSH. Pour en savoir plus, consultez Essayer Cloud Orchestrator.

État attendu

Une fois le service Cloud Orchestrator démarré, il doit être accessible via HTTP. Vous pouvez vérifier son état en interrogeant son API :

  • Envoyer un ping au service : vous devriez pouvoir accéder au point de terminaison du service à partir de l'hôte ATS worker OmniLab. Par exemple, l'exécution de curl -I http://localhost:8080/v1/zones/local/hosts doit renvoyer une réponse HTTP indiquant le succès de l'opération (soit HTTP/1.1 200 OK ou une redirection 302 Found vers /username), ce qui confirme que le service est actif et accessible.

Configurer OmniLab ATS pour Cloud Orchestration

Avant de démarrer OmniLab ATS, assurez-vous que toutes les instances Cuttlefish sur l'hôte ATS worker OmniLab sont arrêtées. OmniLab ATS démarre et arrête automatiquement les appareils virtuels pendant le cycle de test. Les instances Cuttlefish existantes sont en conflit avec les instances gérées par OmniLab ATS. Pour en savoir plus sur l'arrêt des instances Cuttlefish, consultez Arrêter Cuttlefish.

Pour activer Cloud Orchestration dans OmniLab ATS, transmettez des indicateurs spécifiques lorsque vous démarrez OmniLab ATS :

mtt start --use_cloud_orchestrator \
  --orchestration_service_url=http://HOST:PORT \
  --max_local_virtual_devices N \
  --use_host_network \
  --force_ats_version 2 \
  --force_update
  • --use_cloud_orchestrator : active la fonctionnalité Cloud Orchestration.
  • --orchestration_service_url: spécifie l'URL sur laquelle le service Cloud Orchestration est à l'écoute, par exemple http://localhost:8080.
  • --max_local_virtual_devices: définit le nombre maximal d'appareils virtuels qu'OmniLab ATS peut allouer simultanément. La valeur par défaut est 0.
  • --use_host_network : utilise l'espace de noms réseau de l'hôte pour le conteneur. Cette option est requise pour accéder au service Cloud Orchestration.
  • --force_ats_version 2: force l'utilisation d'OmniLab ATS 2.0, qui est requis pour Cloud Orchestration. Pour en savoir plus, consultez le guide de mise à niveau d'OmniLab ATS 2.0.
  • --force_update: extrait la dernière version du conteneur avec les fonctionnalités ATS 2.0 et Cloud Orchestration.

Exécuter un test avec des appareils orchestrés dans le cloud

Cette section décrit la procédure à suivre pour exécuter un test sur des appareils virtuels orchestrés dans le cloud.

Sélectionner des appareils

Dans la liste des appareils, OmniLab ATS affiche les appareils virtuels orchestrés dans le cloud en tant qu'espaces réservés au lieu de leurs numéros de série réels. Les espaces réservés s'affichent au format HOSTNAME:PORT (par exemple, thehostname:6520). Les états sont soit Disponible ou Alloué. Un espace réservé à l'état Disponible indique que l'appareil virtuel n'est pas en cours d'exécution et qu'il peut être alloué pour le test.

Sélectionnez "Appareils orchestrés dans le cloud".

Figure 1. Sélection d'appareils virtuels orchestrés dans le cloud.

Ajouter des actions pour les appareils

Lorsqu'un test est planifié sur ces appareils, ATS ajoute automatiquement les actions d'appareil requises pour provisionner et gérer les instances Cuttlefish pendant le cycle de test.

Actions automatiques sur les appareils

Figure 2. Actions automatiques pour les appareils.

Définir les ressources de test

Lorsque vous planifiez un test, vous devez fournir les ressources de test requises. Dans la section Définir les ressources de test, assurez-vous de mapper les fichiers importés aux noms de ressources appropriés :

  • Mappez le package d'outils hôte, par exemple cvd-host_package.tar.gz, au nom cvd_host_package.
  • Mappez le fichier ZIP de l'image de l'appareil au nom cvd_device_image.

Ressources de test pour l'orchestration du cloud

Figure 3. Mappage des ressources de test.

Afficher les exécutions de test et les journaux

Une fois le test terminé, vous pouvez afficher les journaux dans la section des fichiers de sortie. Les journaux spécifiques collectés pour les instances gérées par Cloud Orchestrator incluent les éléments suivants :

  • launcher.log : journaux du lanceur Cuttlefish
  • kernel.log : journal du noyau Android standard