Orkiestracja w OmniLab ATS

Aplikacja Cloud Orchestration zapewnia wydajny i skalowalny sposób zarządzania instancjami Cuttlefish, zwłaszcza w przypadku urządzeń wirtualnych opartych na architekturze ARM (CHD). OmniLab ATS obsługuje orkiestrację w chmurze, dzięki czemu możesz przeprowadzać testy na urządzeniach wirtualnych. Zanim zaczniesz korzystać z urządzeń wirtualnych, zainstaluj OmniLab ATS, postępując zgodnie z instrukcjami w artykule OmniLab Android Test Station.

Przegląd

Orkiestracja w chmurze umożliwia OmniLab ATS delegowanie zarządzania instancjami Cuttlefish do dedykowanej usługi Cloud Orchestrator. To podejście ma kilka zalet w porównaniu z obecnymi trybami lokalnym i zdalnym, a jednocześnie zapewnia użytkownikom znane im funkcje:

  • Równoległe uruchamianie instancji: umożliwia jednoczesne uruchamianie wielu instancji Cuttlefish, co znacznie skraca czas oczekiwania przed rozpoczęciem testów.
  • Skalowalność: odpowiednia do środowisk testowych na dużą skalę.
  • Izolacja zasobów: oddziela środowisko wykonania testu (proces roboczy ATS) od środowiska emulacji urządzenia.

Wymagania wstępne

  • maszyna hosta, na której można uruchomić Dockera;
  • Dostęp do obrazów Dockera do orkiestracji Cuttlefish

Konfigurowanie usługi Cloud Orchestrator

Usługa Cloud Orchestrator zarządza cyklem życia instancji Cuttlefish. Usługę można wdrożyć w różnych środowiskach. Obsługuje ona architektury x86 i ARM:

  • Ten sam host co proces roboczy ATS: działa w kontenerze Docker na tym samym komputerze.
  • Oddzielne urządzenie: działa na serwerze lokalnym, który może uruchamiać Dockera.
  • Instancja w chmurze: działa na maszynie wirtualnej w środowisku chmurowym, np. Google Compute Engine.

Instalowanie i konfigurowanie usługi

Aby uruchomić usługę, postępuj zgodnie z instrukcjami w pliku README dotyczącym orkiestracji Cloud Android.

Uwierzytelnianie i uprawnienia

Jeśli usługa Cloud Orchestrator działa na komputerze zdalnym, upewnij się, że host procesu roboczego ATS ma niezbędne uprawnienia dostępu do niej za pomocą żądań HTTP. Jeśli połączenie HTTP nie jest dozwolone, może być konieczne skonfigurowanie przekierowania portu SSH. Więcej informacji znajdziesz w artykule Wypróbuj orkiestratora w chmurze.

Oczekiwany stan

Po pomyślnym uruchomieniu usługi Cloud Orchestrator powinna być ona dostępna za pomocą protokołu HTTP. Jego stan możesz sprawdzić, wysyłając zapytanie do interfejsu API:

  • Pingowanie usługi: punkt końcowy usługi powinien być dostępny z hosta instancji roboczej OmniLab ATS. Na przykład uruchomienie polecenia curl -I http://localhost:8080/v1/zones/local/hosts powinno zwrócić prawidłową odpowiedź HTTP (HTTP/1.1 200 OK lub przekierowanie 302 Found do /username), co potwierdzi, że usługa jest aktywna i dostępna.

Konfigurowanie OmniLab ATS na potrzeby Cloud Orchestration

Przed uruchomieniem OmniLab ATS upewnij się, że wszystkie instancje Cuttlefish na hoście roboczym OmniLab ATS są zatrzymane. OmniLab ATS automatycznie uruchamia i zatrzymuje urządzenia wirtualne podczas cyklu testowego, a istniejące instancje Cuttlefish powodują konflikt z instancjami zarządzanymi przez OmniLab ATS. Więcej informacji o zatrzymywaniu instancji Cuttlefish znajdziesz w sekcji Zatrzymywanie Cuttlefish.

Aby włączyć Cloud Orchestration w OmniLab ATS, przekaż określone flagi podczas uruchamiania 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: włącza funkcję Cloud Orchestration.
  • --cloud_orchestrator_service_url: określa adres URL, na którym nasłuchuje usługa Cloud Orchestrator, np. http://localhost:8080.
  • --max_local_virtual_devices: określa maksymalną liczbę urządzeń wirtualnych, które OmniLab ATS może przydzielić jednocześnie. Domyślna liczba to 0.
  • --use_host_network: używa przestrzeni nazw sieci hosta dla kontenera. Jest to wymagane do uzyskania dostępu do usługi Cloud Orchestrator.

Przeprowadzanie testu na urządzeniach zarządzanych w chmurze

W tej sekcji opisujemy, jak przeprowadzić test na wirtualnych urządzeniach zarządzanych w chmurze.

wybranych urządzeń

Na liście urządzeń OmniLab ATS wyświetla wirtualne urządzenia zarządzane w chmurze jako symbole zastępcze zamiast ich rzeczywistych numerów seryjnych. Symbole zastępcze są wyświetlane w formacie HOSTNAME:PORT (np. thehostname:6520). Stany to Dostępny lub Przydzielony. Symbol zastępczy w stanie Dostępny oznacza, że urządzenie wirtualne nie jest uruchomione i można je przydzielić do testu.

Wybierz Urządzenia zarządzane w chmurze

Rysunek 1. wybieranie wirtualnych urządzeń zarządzanych w chmurze;

Dodawanie działań na urządzeniu

Gdy na tych urządzeniach zaplanowany jest test, ATS automatycznie dodaje wymagane działania na urządzeniu, aby w trakcie cyklu testowego udostępniać instancje Cuttlefish i nimi zarządzać.

Automatyczne działania na urządzeniu

Rysunek 2. automatyczne działania na urządzeniu;

Ustawianie zasobów testowych

Podczas planowania testu musisz podać wymagane zasoby testowe. W sekcji Ustaw zasoby testu dopilnuj, aby przesłane pliki były mapowane na prawidłowe nazwy zasobów:

  • Zmapuj pakiet narzędzi hosta, np. cvd-host_package.tar.gz, na nazwę cvd_host_package.
  • Przypisz plik ZIP z obrazem urządzenia do nazwy cvd_device_image.

Zasoby testowe na potrzeby orkiestracji w chmurze

Rysunek 3. Testowanie mapowania zasobów.

Wyświetlanie uruchomień testów i logów

Po zakończeniu testu możesz wyświetlić logi w sekcji plików wyjściowych. Konkretne logi zbierane w przypadku instancji zarządzanych przez Cloud Orchestrator:

  • launcher.log: dzienniki z launchera Cuttlefish,
  • kernel.log: standardowy dziennik jądra Androida