Aplikacja Cloud Orchestration zapewnia wydajny i skalowalny sposób zarządzania instancjami Cuttlefish, szczególnie w przypadku urządzeń wirtualnych opartych na architekturze ARM (CHD). OmniLab ATS obsługuje Cloud Orchestration, 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 OmniLab Android Test Station.
Przegląd
Cloud Orchestration umożliwia OmniLab ATS delegowanie zarządzania instancjami Cuttlefish do specjalnej usługi Cloud Orchestrator. To podejście ma kilka zalet w porównaniu z dotychczasowymi trybami lokalnym i zdalnym, a jednocześnie zachowuje znajomy interfejs użytkownika:
- Równoległe uruchamianie instancji: umożliwia jednoczesne uruchamianie wielu instancji Cuttlefish, co znacznie skraca czas potrzebny na przygotowanie do rozpoczęcia testów.
- Skalowalność: nadaje się do środowisk testowych na dużą skalę.
- Izolacja zasobów: oddziela środowisko wykonywania testów (ATS worker) od środowiska emulacji urządzenia.
Wymagania wstępne
- Komputer hosta, na którym można uruchomić Dockera
- Dostęp do obrazów Dockera z orkiestracją Cuttlefish
Konfigurowanie usługi Cloud Orchestrator
Usługa Cloud Orchestrator zarządza cyklem życia instancji Cuttlefish. Możesz wdrożyć usługę w różnych środowiskach. Obsługuje ona architektury x86 i ARM:
- Ten sam host co ATS worker: działa w kontenerze Dockera na tym samym komputerze.
- Oddzielny komputer: działa na serwerze lokalnym, na którym można uruchomić 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 Cloud Android Orchestration.
Uwierzytelnianie i uprawnienia
Jeśli usługa Cloud Orchestrator działa na komputerze zdalnym, upewnij się, że host ATS worker ma niezbędne uprawnienia dostępu do niej za pomocą żądań HTTP. Jeśli połączenie HTTP jest niedozwolone, może być konieczne skonfigurowanie przekierowania portów SSH. Więcej informacji znajdziesz w artykule Wypróbuj Cloud Orchestrator.
Oczekiwany stan
Po pomyślnym uruchomieniu usługi Cloud Orchestrator powinna być ona dostępna za pomocą protokołu HTTP. Jej stan możesz sprawdzić, wysyłając zapytanie do interfejsu API:
- Pingowanie usługi: powinna być ona dostępna z hosta OmniLab ATS worker. Na przykład uruchomienie polecenia
curl -I http://localhost:8080/v1/zones/local/hostspowinno zwrócić odpowiedź HTTP z kodem powodzenia (HTTP/1.1 200 OKlub przekierowanie302 Founddo/username), co potwierdza, że usługa jest aktywna i dostępna.
Konfigurowanie OmniLab ATS na potrzeby Cloud Orchestration
Zanim uruchomisz OmniLab ATS, upewnij się, że wszystkie instancje Cuttlefish na hoście OmniLab ATS worker 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 artykule Zatrzymywanie Cuttlefish.
Aby włączyć Cloud Orchestration w OmniLab ATS, podczas uruchamiania OmniLab ATS przekaż określone flagi:
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: ustawia maksymalną liczbę urządzeń wirtualnych zarządzanych przez Cloud Orchestrator, które OmniLab ATS może jednocześnie przydzielić. Domyślna liczba to 0.--orchestration_service_url: określa adres URL, na którym nasłuchuje usługa Cloud Orchestration, np.http://localhost:8080.--use_host_network: używa przestrzeni nazw sieci hosta na potrzeby kontenera. Jest to wymagane, aby uzyskać dostęp do usługi Cloud Orchestration.--force_ats_version 2: wymusza użycie OmniLab ATS 2.0, które jest wymagane w przypadku Cloud Orchestration. Więcej informacji znajdziesz w przewodniku uaktualnienia do OmniLab ATS 2.0.--force_update: pobiera najnowszą kompilację kontenera z funkcjami ATS 2.0 i Cloud Orchestration.
Przeprowadzanie testu na urządzeniach zarządzanych przez Cloud Orchestration
W tej sekcji opisujemy, jak przeprowadzić test na urządzeniach wirtualnych zarządzanych przez Cloud Orchestration.
Wybieranie urządzeń
Na liście urządzeń OmniLab ATS wyświetla urządzenia wirtualne zarządzane przez Cloud Orchestration 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ępne lub Przydzielone. Symbol zastępczy w stanie Dostępne oznacza, że urządzenie wirtualne nie działa i można je przydzielić do testu.
Rysunek 1. Wybieranie urządzeń wirtualnych zarządzanych przez Cloud Orchestration.
Dodawanie działań na urządzeniu
Gdy test jest zaplanowany na tych urządzeniach, ATS automatycznie dodaje wymagane działania na urządzeniu, aby udostępnić instancje Cuttlefish i zarządzać nimi podczas cyklu testowego.
Rysunek 2. Automatyczne działania na urządzeniu.
Ustawianie zasobów testowych
Podczas planowania testu musisz podać wymagane zasoby testowe. W sekcji Ustaw zasoby testowe upewnij się, że przesłane pliki są powiązane z prawidłowymi nazwami zasobów:
- Powiąż pakiet narzędzi hosta, np.
cvd-host_package.tar.gz, z nazwącvd_host_package. - Powiąż plik ZIP z obrazem urządzenia z nazwą
cvd_device_image.
Rysunek 3. Powiązywanie zasobów testowych.
Wyświetlanie przebiegów testów i logów
Po zakończeniu testu możesz wyświetlić logi w sekcji plików wyjściowych. Logi zbierane w przypadku instancji zarządzanych przez Cloud Orchestrator:
launcher.log: logi z programu uruchamiającego Cuttlefishkernel.log: standardowy log jądra Androida