Orchestration du cloud dans OmniLab ATS

L'application Cloud Orchestration offre un moyen évolutif et performant de gérer les instances Cuttlefish, en particulier 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 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 local 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 (worker ATS) 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 le nœud de calcul ATS : 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 README de l'orchestration Cloud Android 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 du worker ATS 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 l'orchestrateur de cloud.

É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 :

  • Envoyez un ping au service : vous devriez pouvoir accéder au point de terminaison du service à partir de l'hôte de nœud de calcul OmniLab ATS. Par exemple, l'exécution de curl -I http://localhost:8080/v1/zones/local/hosts doit renvoyer une réponse HTTP réussie (HTTP/1.1 200 OK ou une redirection 302 Found vers /username), confirmant que le service est actif et accessible.

Configurer OmniLab ATS pour l'orchestration du cloud

Avant de démarrer OmniLab ATS, assurez-vous que toutes les instances Cuttlefish sur l'hôte de nœud de calcul OmniLab ATS sont arrêtées. OmniLab ATS lance 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 savoir comment arrêter les 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 \
  --cloud_orchestrator_service_url=http://HOST:PORT \
  --max_local_virtual_devices N \
  --use_host_network
  • --use_cloud_orchestrator : active la fonctionnalité d'orchestration cloud.
  • --cloud_orchestrator_service_url : spécifie l'URL où le service Cloud Orchestrator 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. Le nombre par défaut est 0.
  • --use_host_network : utilise l'espace de noms réseau de l'hôte pour le conteneur. Cette autorisation est requise pour accéder au service Cloud Orchestrator.

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.

Il n'est possible qu'avec certains appareils.

Dans la liste des appareils, OmniLab ATS affiche les appareils virtuels orchestrés dans le cloud sous forme d'espaces réservés au lieu de leurs numéros de série réels. Les espaces réservés sont affichés au format HOSTNAME:PORT (par exemple, thehostname:6520). Les états sont Disponible ou Attribué. Un espace réservé dans l'état Available (Disponible) indique que l'appareil virtuel n'est pas en cours d'exécution et peut être alloué au 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 un appareil

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 sur les appareils.

Définir des 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ôtes, par exemple cvd-host_package.tar.gz, au nom cvd_host_package.
  • Associez le fichier ZIP de l'image de l'appareil au nom cvd_device_image.

Ressources de test pour l'orchestration du cloud

Figure 3. Mappez les 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. Voici les journaux spécifiques collectés pour les instances gérées par Cloud Orchestrator :

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