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/hostsdoit renvoyer une réponse HTTP réussie (HTTP/1.1 200 OKou une redirection302 Foundvers/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 exemplehttp://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.
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.
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 nomcvd_host_package. - Associez le fichier ZIP de l'image de l'appareil au nom
cvd_device_image.
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 Cuttlefishkernel.log: journal du noyau Android standard