Cloud-Orchestrierung in OmniLab ATS

Die App Cloud Orchestration bietet eine leistungsstarke und skalierbare Möglichkeit, Cuttlefish-Instanzen zu verwalten, insbesondere für ARM-basierte virtuelle Geräte (CHD). OmniLab ATS unterstützt Cloud Orchestration, sodass Sie Tests auf virtuellen Geräten ausführen können. Bevor Sie virtuelle Geräte verwenden, müssen Sie OmniLab ATS installieren. Folgen Sie dazu der Anleitung unter OmniLab Android Test Station.

Übersicht

Mit Cloud Orchestration kann OmniLab ATS die Verwaltung von Cuttlefish-Instanzen an einen dedizierten Cloud Orchestrator-Dienst delegieren. Dieser Ansatz bietet mehrere Vorteile gegenüber den vorhandenen lokalen und Remote-Modi und sorgt gleichzeitig für eine vertraute Nutzererfahrung:

  • Paralleles Starten von Instanzen:Ermöglicht das gleichzeitige Starten mehrerer Cuttlefish-Instanzen, wodurch die Overhead-Zeit vor dem Start von Tests erheblich verkürzt wird.
  • Skalierbarkeit:Geeignet für umfangreiche Testumgebungen.
  • Ressourcenisolation:Die Testausführungsumgebung (ATS-Worker) wird von der Geräteemulationsumgebung entkoppelt.

Vorbereitung

  • Ein Hostcomputer, auf dem Docker ausgeführt werden kann
  • Zugriff auf die Docker-Images für die Cuttlefish-Orchestrierung

Cloud Orchestrator-Dienst einrichten

Der Cloud Orchestrator-Dienst verwaltet den Lebenszyklus von Cuttlefish-Instanzen. Sie können den Dienst in verschiedenen Umgebungen bereitstellen. Er unterstützt sowohl x86- als auch ARM-Architekturen:

  • Derselbe Host wie ATS-Worker:Wird in einem Docker-Container auf demselben Computer ausgeführt.
  • Separate Maschine:Wird auf einem lokalen Server ausgeführt, auf dem Docker ausgeführt werden kann.
  • Cloud-Instanz:Wird auf einer virtuellen Maschine in einer Cloud-Umgebung ausgeführt, z. B. Google Compute Engine.

Dienst installieren und einrichten

Folgen Sie der Cloud Android Orchestration-README-Datei, um den Dienst zu starten.

Authentifizierung und Berechtigungen

Wenn der Cloud Orchestrator-Dienst auf einem Remotecomputer ausgeführt wird, muss der ATS-Worker-Host die erforderlichen Berechtigungen haben, um über HTTP-Anfragen darauf zuzugreifen. Wenn keine HTTP-Verbindung zulässig ist, müssen Sie möglicherweise die SSH-Portweiterleitung einrichten. Weitere Informationen finden Sie unter Cloud Orchestrator ausprobieren.

Erwarteter Status

Nachdem der Cloud Orchestrator-Dienst erfolgreich gestartet wurde, sollte er über HTTP erreichbar sein. Sie können den Status abfragen, indem Sie die API aufrufen:

  • Dienst anpingen:Der Dienstendpunkt sollte vom OmniLab ATS-Worker-Host aus erreichbar sein. Wenn Sie beispielsweise curl -I http://localhost:8080/v1/zones/local/hosts ausführen, sollte eine erfolgreiche HTTP-Antwort zurückgegeben werden (entweder HTTP/1.1 200 OK oder eine 302 Found-Weiterleitung zu /username), um zu bestätigen, dass der Dienst aktiv und erreichbar ist.

OmniLab ATS für Cloud Orchestration konfigurieren

Bevor Sie OmniLab ATS starten, müssen alle Cuttlefish-Instanzen auf dem OmniLab ATS-Worker-Host beendet werden. OmniLab ATS startet und stoppt die virtuellen Geräte während des Testzyklus automatisch. Vorhandene Cuttlefish-Instanzen stehen im Konflikt mit Instanzen, die von OmniLab ATS verwaltet werden. Weitere Informationen zum Beenden von Cuttlefish-Instanzen finden Sie unter Cuttlefish beenden.

Wenn Sie Cloud Orchestration in OmniLab ATS aktivieren möchten, übergeben Sie beim Starten von OmniLab ATS bestimmte Flags:

mtt start --use_cloud_orchestrator \
  --cloud_orchestrator_service_url=http://HOST:PORT \
  --max_local_virtual_devices N \
  --use_host_network
  • --use_cloud_orchestrator: Aktiviert das Cloud Orchestration-Feature.
  • --cloud_orchestrator_service_url: Gibt die URL an, an der der Cloud Orchestrator-Dienst empfangsbereit ist, z. B. http://localhost:8080.
  • --max_local_virtual_devices: Legt die maximale Anzahl virtueller Geräte fest, die OmniLab ATS gleichzeitig zuweisen kann. Der Standardwert ist 0.
  • --use_host_network: Verwendet den Netzwerk-Namespace des Hosts für den Container. Dies ist für den Zugriff auf den Cloud Orchestrator-Dienst erforderlich.

Test mit cloudbasierten Geräten ausführen

In diesem Abschnitt wird beschrieben, wie Sie einen Test auf cloudorchestrierten virtuellen Geräten ausführen.

Ausgewählte Geräte

In der Geräteliste werden cloudbasierte virtuelle Geräte in OmniLab ATS als Platzhalter anstelle ihrer tatsächlichen Seriennummern angezeigt. Die Platzhalter werden im Format HOSTNAME:PORT angezeigt (z. B. thehostname:6520). Die Status sind entweder Verfügbar oder Zugewiesen. Ein Platzhalter im Status Verfügbar gibt an, dass das virtuelle Gerät nicht ausgeführt wird und für den Test zugewiesen werden kann.

Cloud-orchestrated Devices auswählen

Abbildung 1. Auswahl von Cloud-orchestrierten virtuellen Geräten

Geräteaktionen hinzufügen

Wenn ein Test auf diesen Geräten geplant ist, fügt ATS automatisch die erforderlichen Geräteaktionen hinzu, um die Cuttlefish-Instanzen während des Testzyklus bereitzustellen und zu verwalten.

Automatische Geräteaktionen

Abbildung 2: Automatische Geräteaktionen

Testressourcen festlegen

Wenn Sie einen Test planen, müssen Sie die erforderlichen Testressourcen angeben. Achten Sie im Abschnitt Testressourcen festlegen darauf, dass die hochgeladenen Dateien den richtigen Ressourcennamen zugeordnet sind:

  • Ordnen Sie das Host-Tools-Paket, z. B. cvd-host_package.tar.gz, dem Namen cvd_host_package zu.
  • Ordnen Sie die ZIP-Datei mit dem Gerätebild dem Namen cvd_device_image zu.

Testressourcen für die Cloud-Orchestrierung

Abbildung 3: Testressourcen zuordnen

Testläufe und Logs ansehen

Nach Abschluss des Tests können Sie sich die Logs im Abschnitt „Ausgabedateien“ ansehen. Für von Cloud Orchestrator verwaltete Instanzen werden unter anderem die folgenden Logs erfasst:

  • launcher.log: Logs vom Cuttlefish-Launcher
  • kernel.log: Standardmäßiges Android-Kernellog