Zagadnienia dotyczące automatyzacji platformy i metodyki DevOps dla usługi Azure Virtual Desktop

Azure Virtual Desktop to usługa zarządzana, która zapewnia płaszczyznę sterowania firmy Microsoft dla środowiska wirtualizacji pulpitu.

Ten artykuł koncentruje się na zadaniach operacyjnych, które należy uruchomić w środowisku usługi Azure Virtual Desktop. Każde zalecenie można zastosować indywidualnie w tym artykule. Nie musisz implementować wszystkich zaleceń dotyczących automatyzacji, aby być opłacalne.

Uwagi dotyczące projektowania

Zapoznaj się z poniższymi zagadnieniami podczas planowania i projektowania środowiska usługi Azure Virtual Desktop.

Integracja z usługą DevOps

Automatyzacja nie musi oznaczać integracji z usługą DevOps, ale integracja oferuje wiele zalet. Automatyzacja procesu kompilacji dla złotego obrazu jest warta inwestycji z wielu powodów:

  • Jeśli używasz potoku DevOps, możesz lepiej zarządzać przepływem automatyzacji.
  • Raporty i alerty dotyczące wdrożeń można odbierać z potoku DevOps.
  • Potok można skonfigurować tak, aby integrować się z platformami testowania i tworzyć bramy zatwierdzania dla etapów procesu automatyzacji.
  • Potoki można uruchamiać z wielu wstępnie zdefiniowanych zdarzeń, takich jak wydanie nowego obrazu galerii, aplikacji lub przy użyciu ustawionego harmonogramu.
  • Podczas automatyzowania tworzenia puli hostów można łatwo przenieść metadane puli hostów do nowych lokalizacji geograficznych, gdy zostaną udostępnione nowe lokalizacje.

Infrastruktura jako kod

W miarę przechodzenia do rozwiązań DevOps musisz wybrać narzędzie do wdrażania zasobów platformy Azure. Istnieją dwie różne kategorie narzędzi IaC. Preferowaną opcją jest narzędzie IaC deklaratywne.

Platforma Azure oferuje opcje natywne z szablonami usługi ARM i platformą Azure Bicep.

Narzędzia IaC innych firm, takie jak Terraform firmy HashiCorp.

W puli a osobiste

W miarę zwiększania skali w poziomie środowiska większość obciążeń znajduje się w konfiguracji w puli, a nie w konfiguracji osobistej.

Konfiguracje osobiste są często droższe niż konfiguracje w puli. Są one odpowiednie dla konkretnych użytkowników obciążeń, takich jak deweloperzy, którzy zwykle wymagają podwyższonych uprawnień. Jeśli uruchamiasz pule hostów w trybie osobistym, spróbuj zachować maszyny, takie jak komputery fizyczne, aby zmniejszyć ilość narzędzi wymaganych w środowisku.

Konfiguracje w puli są najbardziej popularne w przypadku wirtualizacji pulpitu, dlatego skupiają się na tym artykule. Środowiska w puli muszą być aktualizowane inaczej niż w tradycyjnych środowiskach. Zaktualizuj maszyny wirtualne na podstawie złotego obrazu w odpowiedniej kadencji organizacji (zwykle co 1–3 miesiące). Jeśli twoja organizacja jest wysoce zautomatyzowana, może być możliwe zwiększenie tempa co tydzień lub nawet w nocy, jeśli to konieczne.

Tworzenie obrazu

Podczas skalowania w górę środowiska usługi Azure Virtual Desktop należy utworzyć pulę hostów na podstawie złotego obrazu, który najlepiej utworzyć za pomocą zautomatyzowanego procesu.

Możesz również użyć listy kontrolnej kompilacji do skalowania w górę. Jeśli masz duże środowisko, proces listy kontrolnej powinien być częścią początkowej konfiguracji tworzenia i testowania. Tym bardziej automatyzujesz tworzenie złotego obrazu, tym bardziej pewnie możesz być w dokładności kompilacji i stabilności środowiska.

Nie zalecamy używania istniejącego obrazu do utworzenia maszyny wirtualnej, która zostanie zaktualizowana przy użyciu nowych aplikacji i zmian konfiguracji, a następnie przechwycenia ich do użycia jako "nowy" złoty obraz. Utrzymanie tego scenariusza wiąże się ze znacznym ryzykiem i jest głównym czynnikiem w środowiskach wirtualizacji pulpitu, które stają się statyczne i kruche.

Istnieje wiele narzędzi automatyzacji do tworzenia złotych obrazów, w tym procesu Packer opisanego w dalszej części tego artykułu. Użyj zestawu narzędzi, który jest najbardziej odpowiedni dla twojej organizacji. Niezależnie od tego, które narzędzia wybierzesz, zautomatyzuj jak najwięcej tworzenia złotego obrazu, aby ułatwić konserwację kondycji środowiska usługi Azure Virtual Desktop.

Instalacja aplikacji

Aplikacje mogą być udostępniane użytkownikom na dwa sposoby: zainstalowane na obrazie lub dostarczane dynamicznie dla poszczególnych użytkowników.

Aplikacje zainstalowane na obrazie powinny być uniwersalne dla użytkowników i część procesu automatycznego tworzenia obrazów. Aplikacje zainstalowane na obrazach mogą obejmować produkty zabezpieczeń i pakiet platformy Microsoft 365.

Aplikacje dostarczane dynamicznie na użytkownika powinny zawierać wszystkie inne elementy, które wymagają bardziej elastycznego podejścia. Dynamicznie dostarczane aplikacje mogą obejmować aplikacje, które są ograniczone do określonej grupy i aplikacji, które nie są zgodne z innymi aplikacjami.

Wdrażanie języka

Gdy środowiska usługi Azure Virtual Desktop zaczynają skalować w poziomie, może być konieczne zlokalizowanie obrazów w języku natywnym dla użytkowników. Jeśli wolisz, możesz zacząć od języka lokalnego lub dodać więcej języków do obrazu podczas kompilacji. Rozważ to wymaganie podczas wybierania obrazu podstawowego. Wstępnie zoptymalizowany obraz galerii systemu Windows 10, na przykład zarówno z platformą Microsoft 365, jak i bez platformy Microsoft 365, jest dostarczany tylko w języku angielskim Stany Zjednoczone (en-US).

Uwaga

Jeśli używasz wielu sesji systemu Windows 10 Enterprise, nie możesz go skompilować przy użyciu innego języka. W takim przypadku należy dostosować udostępniony obraz galerii. Aby dostosować istniejący obraz galerii en-US, przed zainstalowaniem innych aplikacji zainstaluj dodatkowe języki.

Lokalizacje wdrożenia

Usługa Azure Virtual Desktop zapewnia większą swobodę w przypadku geograficznego umieszczania pul hostów niż w tradycyjnych środowiskach pulpitu. Ta wolność istnieje, ponieważ wszystkie lokalizacje platformy Azure obsługują usługę Azure Virtual Desktop. Unikaj tworzenia maszyn wirtualnych na podstawie obrazu w całej sieci rozległej (WAN), udostępniając złoty obraz w każdej z tych samych lokalizacji co użytkownicy.

Aktualizacje złotego obrazu puli hostów

Istnieją dwa sposoby aktualizowania złotego obrazu maszyn wirtualnych w określonej puli hostów.

Metoda pierwsza:

  • Wdróż drugą pulę hostów, a następnie wyciąć użytkowników do nowej puli hostów, gdy wszystko będzie gotowe.
  • Udostępnij starą pulę hostów w razie potrzeby wycofania.
  • Możesz usunąć starą pulę hostów, gdy organizacja jest zadowolona, że nowa pula hostów działa prawidłowo.

Metoda druga:

  • Ustaw istniejące maszyny wirtualne na tryb opróżniania w puli hostów.
  • Wdróż nowe maszyny wirtualne ze zaktualizowanego złotego obrazu w tej samej puli hostów.
  • Należy zachować ostrożność, aby nie osiągać ograniczeń zasobów ani limitów ograniczania interfejsu API w przypadku podwojenia liczby maszyn wirtualnych w pojedynczej puli hostów.

Zalecenia dotyczące projektowania

Zapoznaj się z poniższymi zaleceniami podczas projektowania środowiska usługi Azure Virtual Desktop organizacji.

Zarządzanie kodem źródłowym

Zalecamy używanie usługi Git do zarządzania kodem źródłowym i utrzymania prostej strategii rozgałęziania. W przypadku korzystania z usługi Git dla środowiska:

  • Zachowaj prywatne repozytorium Git i projekt Usługi Azure DevOps, chyba że zasady firmy określają, że repozytoria muszą być publiczne.
  • Zainicjuj repozytorium za pomocą pliku README, aby rozpocząć wypełnianie informacji o projekcie.
  • Zmień uprawnienia projektu, aby zezwolić innym członkom zespołu na dostęp.
  • Wdrożenie podstawowego procesu elementu roboczego w celu opracowania potoku i usprawnienia obciążeń.
  • Co najmniej należy obsługiwać dwa repozytoria: jedno repozytorium do zarządzania kompilacjami złotego obrazu i inne repozytorium do zarządzania wdrożeniami usługi Azure Virtual Desktop.

Pipelines

System wdrażania potoku jest dyktowany przez wybrany system zarządzania kodem źródłowym.

Jeśli Twoja organizacja ustandaryzowała usługę Azure DevOps, użyj usługi Azure Pipelines. Jeśli Twoja organizacja ustandaryzowała się w usłudze GitHub, użyj funkcji GitHub Actions. Każda z opcji zapewnia możliwość wdrożenia własnego agenta w sieci, co ma kilka korzyści, w tym:

  • Zasiłek na dłuższe czasy kompilacji
  • Możliwość uzyskiwania dostępu do zasobów w sieci

Bramuj potoki wdrażania, aby można je było automatycznie wyzwalać w celu wdrożenia w puli hostów weryfikacji, ale nie są automatycznie wypychane do puli hostów produkcyjnych bez jawnego zatwierdzenia.

Zmienne i usługa Azure Key Vault

Użyj grup zmiennych podczas pracy w usłudze Azure Pipelines.

  • Grupy zmiennych umożliwiają powtarzalne parametry w potokach, takie jak wpisy tajne i lokalizacje plików.
  • Zmienne w grupach zmiennych mogą być przechowywane jako pary klucz/wartość, ale zalecaną metodą jest łączenie grupy zmiennych z usługą Azure Key Vault w celu ściągnięcia wpisów tajnych do użycia w potoku wdrażania.

Tworzenie obrazów usługi Azure Virtual Desktop

Użyj usługi Azure Image Builder (AIB), aby zautomatyzować procesy kompilacji, aktualizacji, sysprep i dystrybucji dla obrazów złotych. Ta usługa może używać obsługiwanego obrazu podstawowego z witryny Azure Marketplace dla każdej kompilacji, aby upewnić się, że masz najnowsze aktualizacje.

Uwaga

Narzędzie Azure Image Builder jest obecnie dostępne w wybranych regionach, ale obrazy można dystrybuować poza tymi regionami.

W ramach procesu kompilacji obrazu złotego należy wziąć pod uwagę wszystkie aplikacje, które należy zainstalować i określić, czy można je zainstalować za pomocą skryptów. Upewnij się, że masz polecenia instalacji aplikacji skryptowe w programie PowerShell i zatwierdzone do repozytorium Git. Jeśli nie możesz pobrać instalatorów aplikacji za pośrednictwem publicznego Internetu, rozważ umieszczenie aplikacji w usłudze Azure Blob Storage. Jeśli procesy instalacji aplikacji wymagają wpisów tajnych, rozważ umieszczenie ich w usłudze Azure Key Vault.

Aby rozpocząć pracę z narzędziem Azure Image Builder, zobacz Tworzenie obrazu usługi Azure Virtual Desktop przy użyciu konstruktora obrazów maszyny wirtualnej platformy Azure i programu PowerShell

Aby wywołać narzędzie Azure Image Builder przy użyciu potoków ciągłej integracji/ciągłego wdrażania, użyj zadania DevOps usługi Azure Image Builder dla usługi Azure Pipelines lub akcji kompilowania obrazu maszyny wirtualnej platformy Azure dla funkcji GitHub Actions.

HashiCorp Packer to alternatywa typu open source. Oferuje ona te same możliwości co program Azure Image Builder (oparty na pakiecie HashiCorp Packer), w tym możliwość dystrybucji do galerii obliczeniowej platformy Azure.

Aby uzyskać więcej informacji na temat programu Packer, zobacz witrynę internetową Packer.

Metoda Packer ma następujące wymagania wstępne:

  • Licencjonowanie usługi Azure DevOps musi korzystać z pełnego zestawu narzędzi packer.
  • Musisz przypisać użytkownikowi odpowiednią rolę w identyfikatorze Entra firmy Microsoft.
  • Musisz przyznać jednostce usługi dostęp współautora do subskrypcji.
  • Aby przechowywać wpisy tajne w usłudze Azure Key Vault, należy zarządzać wpisami tajnymi jednostki usługi w zasadach dostępu.

Podczas pracy z rozwiązaniem Packer w potoku wdrażania:

  • Zainstaluj narzędzia Packer na agencie kompilacji, którego będziesz używać w potoku wdrażania.
  • Utwórz etap weryfikacji w potoku, aby sprawdzić, czy kompilacja działa.
  • Po walidacji sklonuj etap weryfikacji i ustaw tryb wdrażania na przyrostowy.

Inne zagadnienia dotyczące magazynu plików packer:

  • Przechowuj pliki usługi Packer i aprowizuj je w centralnej lokalizacji, do której usługa Azure Pipelines może uzyskiwać dostęp. Zalecamy używanie udziałów plików platformy Azure do bezpiecznego przechowywania tych plików.
  • Przechowywanie poświadczeń dostępu dla usługi Azure Files w usłudze Key Vault. Poświadczenia dostępu można ściągnąć z usługi Key Vault podczas kompilacji przy użyciu zmiennych potoku.
  • Ponadto zapisz nazwę pliku pakietu i klucz konta w magazynie kluczy połączonym z grupą zmiennych w usłudze Azure DevOps. Potoki uzyskują dostęp do tych poświadczeń, aby pobrać pliki Packer do maszyny wirtualnej użytej do utworzenia obrazu.
  • Zapisz ścieżkę UNC jako zmienną w grupie zmiennych usługi Azure DevOps.

Przechowywanie obrazów usługi Azure Virtual Desktop

Usługa Azure Compute Gallery to najprostszy sposób tworzenia struktury i organizacji wokół złotych obrazów. Zapewniają:

  • Globalna replikacja obrazów do różnych regionów świadczenia usługi Azure.
    • Upewnij się, że obrazy zostały wdrożone w regionach, w których są wdrażane hosty sesji usługi Azure Virtual Desktop (maszyny wirtualne).
  • Przechowywanie wersji obrazów i grupowanie w celu łatwiejszego zarządzania. Przechowywanie wersji i grupowanie jest przydatne w przypadku wycofywania pul hostów usługi Azure Virtual Desktop do poprzednich wersji obrazów.
  • Obrazy o wysokiej dostępności z kontami magazynu strefowo nadmiarowego (ZRS) w regionach obsługujących Strefy dostępności. Magazyn strefowo nadmiarowy oferuje lepszą odporność na awarie dotyczące jednej strefy.
  • Udostępnianie obrazów usługi Azure Virtual Desktop między subskrypcjami, a nawet między dzierżawami firmy Microsoft za pośrednictwem kontroli dostępu opartej na rolach (RBAC).
  • Skalowanie wdrożenia za pomocą replik obrazów w każdym regionie.

Aby uzyskać więcej informacji, zobacz Omówienie usługi Azure Compute Gallery.

Instalacja aplikacji na obrazach usługi Azure Virtual Desktop

  • W przypadku aplikacji uniwersalnych zainstalowanych na złotym obrazie użyj metody Packer opisanej wcześniej w tym artykule.
  • Aplikacja-V jest obecnie obsługiwaną metodą firmy Microsoft dla aplikacji przesyłania strumieniowego dla poszczególnych użytkowników.
  • Użyj maskowania aplikacji FSLogix, aby ukryć lub ujawnić aplikacje lub wtyczki, gdy te aplikacje nie działają dobrze z aplikacją App-V.
  • Użyj dołączania aplikacji MSIX, jeśli jest to możliwe, aby dynamicznie dostarczać aplikacje użytkownikom i zmniejszyć całkowity rozmiar złotego obrazu. Potoki ciągłej integracji/ciągłego wdrażania umożliwiają również zautomatyzowanie procesu tworzenia pakietów aplikacji w formacie MSIX. Aby dowiedzieć się więcej, zobacz omówienie.

Wdrażanie języków na obrazach usługi Azure Virtual Desktop

Firma Microsoft ma procesy instalowania pakietów językowych ręcznie lub automatycznie. Zalecamy utrzymanie jak najmniejszego nakładu pracy administracyjnej i automatyzację procesu instalacji języka.

Proces obejmuje pobranie skryptu programu PowerShell na maszynę wirtualną, która zostanie przekonwertowana na obraz. Przykładowe skrypty automatyzacji można znaleźć w dokumentacji firmy Microsoft. Jeśli korzystasz z zalecenia dotyczącego potoków usługi Packer, możesz uwzględnić ten proces jako dodatkowe zadanie kompilacji.

Aby uzyskać więcej informacji na temat instalowania pakietów językowych w wielu sesjach systemu Windows 10 Enterprise, zobacz Instalowanie pakietów językowych na maszynach wirtualnych z systemem Windows 10 w usłudze Azure Virtual Desktop.

Użyj podejścia infrastruktury jako kodu (IaC) do wdrażania i dostosowywania zasobów usługi Azure Virtual Desktop. Powinny one być używane zawsze, gdy jest to możliwe, aby zapewnić spójność wdrożeń. Szablony usługi ARM mogą służyć do wdrażania zasobów usługi Azure Virtual Desktop w ramach zadania potoku ciągłej integracji/ciągłego wdrażania. Można ich również używać w przypadku korzystania z witryny Azure Portal, programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure.

Poniżej przedstawiono zalecaną strategię aktualizacji puli hostów:

  • Skonfiguruj potok ciągłej integracji/ciągłego wdrażania w celu kompilowania i dystrybuowania obrazów złota do galerii obliczeń platformy Azure.
  • Wyznaczanie puli hostów weryfikacji i wdrażanie nowych hostów sesji w puli hostów weryfikacji przy użyciu potoków ciągłej integracji/ciągłego wdrażania.
  • Przetestuj automatyzację przy użyciu puli hostów weryfikacji.
  • Oznacz hosty sesji numerem kompilacji lub wersją obrazu, aby zidentyfikować wersję obrazu, który jest uruchomiony.
  • Przed wdrożeniem zweryfikuj (lub sprawdź), aby upewnić się, że masz wystarczający limit przydziału zasobów obliczeniowych w ramach subskrypcji.
  • Po pomyślnym przetestowaniu w puli weryfikacji przełącz istniejące hosty sesji w tryb opróżniania — oznakowane maszyny wirtualne będą łatwe do zidentyfikowania.
  • Wdróż nowe hosty sesji i zezwól użytkownikom na łączenie.
  • Po pomyślnym przetestowaniu w środowisku produkcyjnym rozpocznij cofnięcie przydziału starych hostów sesji, aby nie ponieść żadnych dodatkowych opłat za zasoby obliczeniowe i ostatecznie usunąć, aby nie ponieść żadnych dodatkowych opłat za dysk zarządzany.
  • Usunięte hosty sesji zostaną usunięte tylko z platformy Azure. Obiekty komputerów pozostaną w usłudze AD, więc te obiekty komputerów będą musiały zostać usunięte ręcznie lub za pomocą skryptu.

W powyższym przykładzie przedstawiono jedną z metod automatyzacji obrazów przy użyciu usługi Azure DevOps oraz potoku ciągłej integracji i ciągłego dostarczania (CI/CD). Jest to podejście natywne dla chmury i oferuje mniej destrukcyjne wdrożenie nowych hostów sesji bez przestojów. Należy pamiętać, że należy wziąć pod uwagę wzrost liczby maszyn wirtualnych podczas wycofywania starych obrazów i opracowywania nowych obrazów w trybie online.

Jak wspomniano powyżej, galeria obliczeń platformy Azure to usługa, która ułatwia tworzenie struktury i organizacji wokół obrazów. Te obrazy można odwoływać się do wdrożeń IaC hostów sesji usługi Azure Virtual Desktop. Usługa umożliwia przechowywanie wersji, grupowanie i replikację obrazów.

Podczas wdrażania hostów sesji przy użyciu szablonu usługi ARM lub narzędzia Terraform zalecamy użycie identyfikatora zasobu obrazu utworzonego w galerii jako identyfikatora niestandardowego źródła obrazu maszyny wirtualnej. Obraz, którego używasz, musi być replikowany za pośrednictwem usługi Azure Compute Gallery do regionów świadczenia usługi Azure, w których wdrażasz pule hostów usługi Azure Virtual Desktop.

Następne kroki

Dowiedz się, jak wdrożyć usługę Azure Virtual Desktop przy użyciu akceleratora strefy docelowej dla scenariuszy w skali przedsiębiorstwa.