Cloud-Orchestrierung in OmniLab ATS

Die Cloud Orchestration App bietet eine leistungsstarke, skalierbare Möglichkeit zum Verwalten von Cuttlefish-Instanzen, 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, folgen Sie der Anleitung unter OmniLab Android Test Station, um OmniLab ATS zu installieren.

Ü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 Vorlaufzeit vor dem Start von Tests erheblich verkürzt wird.
  • Skalierbarkeit:Geeignet für umfangreiche Testumgebungen.
  • Ressourcenisolation:Entkoppelt die Testausführungsumgebung (ATS-Worker) von der Geräteemulationsumgebung.

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:

  • Gleicher Host wie ATS-Worker:Wird in einem Docker-Container auf demselben Computer ausgeführt
  • Separater Computer: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 Anleitung in der Infodatei zu Cloud Android Orchestration , 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 testen.

Erwarteter Status

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

  • Dienst anpingen:Sie sollten den Dienstendpunkt vom OmniLab ATS-Worker-Host aus erreichen können. 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). Dadurch wird bestätigt, 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 beendet die virtuellen Geräte automatisch während des Testzyklus. 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 --max_orchestration_virtual_devices N \
  --orchestration_service_url=http://HOST:PORT \
  --use_host_network \
  --force_ats_version 2 \
  --force_update
  • --max_orchestration_virtual_devices: Legt die maximale Anzahl virtueller Geräte fest, die von Cloud Orchestrator verwaltet werden und die OmniLab ATS gleichzeitig zuweisen kann. Der Standardwert ist 0.
  • --orchestration_service_url: Gibt die URL an, an der der Cloud Orchestration-Dienst auf Anfragen wartet, z. B. http://localhost:8080.
  • --use_host_network: Verwendet den Netzwerk-Namespace des Hosts für den Container. Dies ist erforderlich, um auf den Cloud Orchestration-Dienst zuzugreifen.
  • --force_ats_version 2: Erzwingt die Verwendung von OmniLab ATS 2.0, das für Cloud Orchestration erforderlich ist. Weitere Informationen finden Sie im Upgradeleitfaden für OmniLab ATS 2.0.
  • --force_update: Ruft den neuesten Container-Build mit ATS 2.0- und Cloud Orchestration-Funktionen ab.

Hardwarespezifikationen für virtuelle Geräte konfigurieren (optional)

Standardmäßig wird jede cloudorchestrierte Instanz eines virtuellen Geräts mit vier CPUs und 8192 MB (8 GB) RAM bereitgestellt. Wenn Sie OmniLab ATS mit Cloud Orchestration starten, können Sie die Anzahl der CPU-Kerne und die Arbeitsspeicherzuweisung für Instanzen virtueller Geräte anpassen, indem Sie --android_jit_emulator_cpus und --android_jit_emulator_memory_mb mit --extra_docker_args im Befehl mtt start an den Laborserver übergeben:

mtt start --max_orchestration_virtual_devices N \
  --orchestration_service_url=http://HOST:PORT \
  --use_host_network \
  --force_ats_version 2 \
  --force_update \
  --extra_docker_args '-e LAB_SERVER_OPTS="--android_jit_emulator_cpus=CPUS --android_jit_emulator_memory_mb=MEMORY_MB"'
  • --android_jit_emulator_cpus: Legt die Anzahl der CPU-Kerne für jede Instanz eines virtuellen Geräts fest. Wenn nicht festgelegt oder ≤ 0, wird standardmäßig 4 verwendet.
  • --android_jit_emulator_memory_mb: Legt den Speicher in Megabyte (MB) für jede Instanz eines virtuellen Geräts fest. Wenn nicht festgelegt oder ≤ 0, wird standardmäßig 8192 verwendet.

Test mit cloudorchestrierten Geräten ausführen

In diesem Abschnitt werden die Schritte zum Ausführen eines Tests auf cloudorchestrierten virtuellen Geräten beschrieben.

Ausgewählte Geräte

In der Geräteliste zeigt OmniLab ATS cloudorchestrierte virtuelle Geräte als Platzhalter an, nicht als tatsächliche Seriennummern. Die Platzhalter werden angezeigt im Format von HOSTNAME:PORT (z. B. thehostname:6520). Die Status sind entweder Verfügbar oder Zugewiesen. Ein Platzhalter mit dem 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 : Cloudorchestrierte virtuelle Geräte auswählen.

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 Sie die hochgeladenen Dateien den richtigen Ressourcennamen zuordnen:

  • Ordnen Sie das Host-Tool-Paket, z. B. cvd-host_package.tar.gz, dem Namen cvd_host_package zu.
  • Ordnen Sie die ZIP-Datei des Geräte-Images 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 die Logs im Abschnitt „Ausgabedateien“ ansehen. Zu den spezifischen Logs, die für von Cloud Orchestrator verwaltete Instanzen erfasst werden, gehören:

  • launcher.log: Logs vom Cuttlefish-Launcher
  • kernel.log: Standard-Android-Kernel-Log