Aspekte im Zusammenhang mit Plattformautomatisierung und DevOps für Azure Virtual Desktop
Azure Virtual Desktop ist ein verwalteter Dienst, der eine Microsoft-Steuerungsebene für Ihre Desktopvirtualisierungsumgebung bereitstellt.
Dieser Artikel konzentriert sich auf die zum Ausführen einer virtuellen Azure Virtual Desktop-Umgebung erforderlichen operativen Aufgaben. Sie können jede Empfehlung in diesem Artikel einzeln anwenden. Sie müssen nicht jede Empfehlung umsetzen, damit sich die Automatisierung lohnt.
Überlegungen zum Entwurf
Überprüfen Sie die folgenden Überlegungen beim Planen und Entwerfen Ihrer Azure Virtual Desktop-Umgebung.
Integrieren in DevOps
Automatisierung bedeutet zwar nicht unbedingt DevOps-Integration, aber die Integration bietet zahlreiche Vorteile. Die Automatisierung des Build-Prozesses für Ihr Golden Image ist aus mehreren Gründen eine lohnende Investition:
- Wenn Sie eine DevOps-Pipeline verwenden, können Sie Ihren Automatisierungsfluss besser verwalten.
- Sie können Berichte und Warnungen über Bereitstellungen aus einer DevOps-Pipeline erhalten.
- Sie können Ihre Pipeline für die Integration in Testframeworks konfigurieren und Genehmigungsgates für die Phasen Ihrer Automatisierung erstellen.
- Pipelines können über viele Ereignisse gestartet werden. Beispiele wären etwa die Veröffentlichung eines neuen Katalogimages oder einer neuen Anwendung oder die Verwendung eines festen Zeitplans.
- Wenn Sie die Hostpoolerstellung automatisieren, können Sie Ihre Hostpoolmetadaten ganz einfach an einen neuen geografischen Standort verschieben, wenn neue Standorte verfügbar gemacht werden.
Infrastructure-as-Code
Auf dem Weg zu DevOps-Praktiken müssen Sie ein Tool für die Bereitstellung Ihrer Azure-Ressourcen auswählen. Es gibt zwei verschiedene Kategorien von IaC-Tools. Die bevorzugte Option ist ein deklaratives IaC-Tool.
Azure bietet native Optionen mit ARM-Vorlagen und Azure Bicep.
Es gibt auch IaC-Tools von Drittanbietern, wie z. B. Terraform von HashiCorp.
Gepoolt oder persönlich?
Wenn Ihre Organisation ihre Umgebung aufskaliert, fällt der Großteil der Workload unter eine gepoolte Konfiguration (anstelle einer persönlichen Konfiguration).
Persönliche Konfigurationen sind oft teurer im Betrieb als gepoolte Konfigurationen. Sie eignen sich für bestimmte Workload-Benutzer wie Entwickler, die in der Regel erweiterte Berechtigungen benötigen. Wenn Sie Hostpools im persönlichen Modus betreiben, sollten Sie versuchen, die Maschinen so zu warten, wie Sie Ihre physischen Desktops warten, damit Sie den Umfang der in Ihrer Umgebung erforderlichen Tools reduzieren.
Gepoolte Konfigurationen sind die beliebtesten für die Desktop-Virtualisierung, weshalb sie in diesem Artikel im Mittelpunkt stehen. Gepoolte Umgebungen müssen anders aktualisiert werden als traditionelle Umgebungen. Aktualisieren Sie Ihre virtuellen Computer (Virtual Machines, VMs) auf der Grundlage eines Gold-Image in einem für Ihre Organisation angemessenen Rhythmus (in der Regel alle ein bis drei Monate). Wenn Ihre Organisation stark automatisiert ist, können Sie die Kadenz bei Bedarf auf wöchentlich oder sogar nachts erhöhen.
Erstellung von Images
Wenn Sie Ihre Azure Virtual Desktop-Umgebung skalieren, erstellen Sie einen Hostpool aus Ihrem Gold-Image, das Sie idealerweise durch einen automatisierten Prozess erstellen.
Sie können auch eine Checkliste für den Aufbau verwenden, um den Umfang zu erhöhen. Wenn Sie eine große Umgebung haben, sollte der Checklistenprozess nur Teil Ihrer anfänglichen Dev/Testeinrichtung sein. Je mehr Sie die Erstellung Ihres Gold-Images automatisieren, desto mehr können Sie der Richtigkeit Ihres Build und der Stabilität Ihrer Umgebung vertrauen.
Wir raten davon ab, Ihr bestehendes Image zu verwenden, um einen VM zu erstellen, den Sie mit neuen Anwendungen und Konfigurationsänderungen aktualisieren und dann als Ihr „neues“ Gold-Image speichern. Die Aufrechterhaltung dieses Szenarios birgt ein erhebliches Risiko und ist ein Hauptfaktor dafür, dass Desktop-Virtualisierungsumgebungen statisch und anfällig werden.
Es gibt viele Automatisierungstools zum Erstellen von Gold-Images – unter anderem der weiter unten in diesem Artikel beschriebene Packer-Prozess. Verwenden Sie die für Ihre Organisation am besten geeigneten Tools. Unabhängig davon, für welche Tools Sie sich entscheiden, sollten Sie die Erstellung von Gold-Images so weit wie möglich automatisieren, damit Sie die Integrität Ihrer Azure Virtual Desktop-Umgebung leichter aufrechterhalten können.
Anwendungsinstallation
Anwendungen können Ihren Benutzern auf zwei Arten zur Verfügung gestellt werden: im Image installiert oder dynamisch pro Benutzer bereitgestellt.
Die im Image installierten Anwendungen sollten universell für Ihre Benutzer sein und Teil Ihres automatischen Image-Erstellungsprozesses. Zu den auf dem Image installierten Anwendungen können Sicherheitsprodukte und die Microsoft 365-Suite gehören.
Anwendungen, die dynamisch pro Benutzer bereitgestellt werden, sollten auch alles andere umfassen, was einen flexibleren Ansatz erfordert. Zu den dynamisch bereitgestellten Anwendungen können Anwendungen gehören, die auf eine bestimmte Gruppe beschränkt sind, sowie Anwendungen, die nicht mit anderen Anwendungen kompatibel sind.
Sprachbereitstellung
Im Zuge der Aufskalierung Ihrer Azure Virtual Desktop-Umgebungen müssen Sie Images ggf. in der Muttersprache der Benutzer lokalisieren. Sie können mit der Landessprache beginnen oder Ihrem Image zum Buildzeitpunkt weitere Sprachen hinzufügen. Berücksichtigen Sie diese Anforderung bei der Wahl Ihres Basisimages. So ist beispielsweise das vorab optimierte Windows 10-Katalogimage mit und ohne Microsoft 365 nur in amerikanischem Englisch (en-US) verfügbar.
Hinweis
Wenn Sie Windows 10 Enterprise mit mehreren Sitzungen verwenden, können Sie es nicht mit einer anderen Sprache erstellen. In diesem Fall muss das bereitgestellte Katalogimage angepasst werden. Installieren Sie zum Anpassen des in amerikanischem Englisch vorliegenden Katalogimages die zusätzlichen Sprachen, bevor Sie andere Anwendungen installieren.
Bereitstellungsstandorte
Azure Virtual Desktop bietet mehr Freiheit bei der geografischen Platzierung Ihrer Hostpools als eine herkömmliche Desktopumgebung. Diese Freiheit ist gegeben, da alle Azure-Standorte Azure Virtual Desktop unterstützen. Vermeiden Sie die Erstellung von VMs aus einem Image über ein weites Wide Area Network (WAN), indem Sie Ihr Gold-Image an jedem der Standorte Ihrer Anwender verfügbar machen.
Aktualisierungen für das Gold-Image des Hostpools
Es gibt zwei Möglichkeiten, das Gold-Image, auf dem Ihre VMs in einem bestimmten Hostpool basieren, zu aktualisieren.
Methode 1:
- Stellen Sie einen zweiten Hostpool bereit, und verlagern Sie die Benutzer in den neuen Hostpool, wenn Sie dazu bereit sind.
- Stellen Sie den alten Hostpool zur Verfügung, falls ein Rollback erforderlich ist.
- Sie können den alten Hostpool entfernen, sobald Ihre Organisation davon überzeugt ist, dass der neue Hostpool ordnungsgemäß funktioniert.
Methode 2:
- Legen Sie im Hostpool den Ausgleichsmodus für Ihren vorhandenen virtuellen Computer fest.
- Stellen Sie neue virtuelle Computer auf der Grundlage Ihres aktualisierten Gold-Images im gleichen Hostpool bereit.
- Achten Sie darauf, dass nicht die Grenzen der Kapazitäten oder API-Drosselungsgrenzwerte erreicht werden, wenn Sie die Anzahl von VMs in einem einzelnen Hostpool verdoppeln.
Entwurfsempfehlungen
Prüfen Sie die folgenden Empfehlungen, wenn Sie die Azure Virtual Desktop-Umgebung Ihrer Organisation entwerfen.
Quellcodeverwaltung
Wir empfehlen die Verwendung von Git für die Verwaltung des Quellcodes und die Beibehaltung einer einfachen Verzweigungsstrategie. Wenn Sie Git für Ihre Umgebung verwenden:
- Halten Sie Ihr Git-Repository und das Azure DevOps-Projekt privat, es sei denn, Ihre Unternehmensrichtlinien sehen ausschließlich öffentliche Repositorys vor.
- Initialisieren Sie Ihr Repository mit einer README-Datei, damit Sie die Informationen über Ihr Projekt eintragen können.
- Ändern Sie Ihre Projektberechtigungen, um anderen Teammitgliedern Zugriff zu gewähren.
- Führen Sie einen grundlegenden Ablauf von Arbeitselementen ein, um die Pipeline zu entwickeln und Ihre Workloads zu optimieren.
- Sie sollten mindestens zwei Repositories verwalten: ein Repository für die Verwaltung Ihrer Gold-Image-Builds und ein weiteres Repository für die Verwaltung Ihrer Azure Virtual Desktop-Bereitstellungen.
Pipelines
Ihr Pipeline-Bereitstellungssystem wird von dem von Ihnen gewählten Quellcode-Verwaltungssystem bestimmt.
Wenn Ihre Organisation auf Azure DevOps standardisiert hat, verwenden Sie Azure Pipelines. Wenn Ihre Organisation auf GitHub standardisiert hat, verwenden Sie GitHub Actions. Beide Optionen bieten die Möglichkeit, einen selbstgehosteten Agenten in Ihrem Netzwerk einzusetzen, was mehrere Vorteile hat, darunter:
- Ermöglichung längerer Buildzeiten
- Zugriff auf Ressourcen innerhalb Ihres Netzwerks
Steuern Sie Ihre Bereitstellungspipelines so, dass sie automatisch für die Bereitstellung in einem Validierungshostpool ausgelöst werden können, aber nicht automatisch ohne ausdrückliche Genehmigung in den Produktionshostpool übertragen werden.
Variablen und Azure Key Vault
Nutzen Sie Variablengruppen, wenn Sie in Azure Pipelines arbeiten.
- Mit Variablengruppen können Sie wiederholbare Parameter in Ihren Pipelines verwenden. Hierzu zählen beispielsweise Geheimnisse und Dateispeicherorte.
- Variablen innerhalb von Variablengruppen können als Schlüssel/Wert-Paare gespeichert werden, aber die empfohlene Methode ist die Verknüpfung einer Variablengruppe mit einem Azure Key Vault, um Geheimnisse für die Verwendung in Ihrer Bereitstellungspipeline zu beziehen.
Erstellen von Azure Virtual Desktop-Images
Verwenden Sie den Azure Image Builder (AIB)-Dienst, um den Build-, Update-, Sysprep- und Verteilungsprozess für Ihre Gold-Images zu automatisieren. Dieser Dienst kann für jedes Build ein unterstütztes Basis-Image aus dem Azure Marketplace verwenden, um sicherzustellen, dass Sie über die neuesten Updates verfügen.
Hinweis
Azure Image Builder ist derzeit nur in bestimmten Regionen verfügbar, aber Sie können Bilder auch außerhalb dieser Regionen verbreiten.
Überlegen Sie bei der Erstellung Ihres Gold-Images, welche Anwendungen Sie installieren müssen und ob diese über Skripte installiert werden können. Stellen Sie sicher, dass Sie die Befehle für die Anwendungsinstallation in PowerShell skriptiert und in Ihr Git-Repository übertragen haben. Wenn Sie die Installationsprogramme für Anwendungen nicht über das öffentliche Internet herunterladen können, sollten Sie die Anwendungen in Azure Blob Storage ablegen. Wenn Ihre Anwendungsinstallationsprozesse Geheimnisse benötigen, sollten Sie diese in Azure Key Vault ablegen.
Weitere Informationen zu den ersten Schritten mit Azure Image Builder finden Sie unter Erstellen eines Azure Virtual Desktop-Images mit Azure VM Image Builder und PowerShell
Um Azure Image Builder über CI/CD-Pipelines aufzurufen, verwenden Sie entweder den Azure Image Builder Service DevOps Task für Azure Pipelines oder die Build Azure Virtual Machine Image Action für GitHub Actions.
HashiCorp Packer ist eine Open Source-Alternative. Es bietet die gleichen Funktionen wie Azure Image Builder (der auf HashiCorp Packer aufbaut), einschließlich der Möglichkeit, an eine Azure Compute Gallery zu verteilen.
Weitere Informationen zu Packer finden Sie auf der Packer-Website.
Für die Packer-Methode gelten folgende Voraussetzungen:
- Für die Azure DevOps-Lizenzierung muss die gesamte Packer-Toolsuite verwendet werden.
- Sie müssen einem Benutzer die geeignete Rolle in Microsoft Entra ID zuweisen.
- Sie müssen einem Dienstprinzipal mit Beitragszahler Zugriff auf das Abonnement geben.
- Sie müssen über einen Azure Key Vault verfügen, in dem Sie Geheimnisse speichern und dem Dienstleiter die Verwaltung von Geheimnissen in der Zugriffsrichtlinie ermöglichen.
Wenn Sie mit Packer in Ihrer Bereitstellungspipeline arbeiten, gilt Folgendes:
- Installieren Sie die Packer-Tools auf dem Build-Agent, den Sie in Ihrer Bereitstellungspipeline verwenden werden.
- Erstellen Sie eine Überprüfungsphase in Ihrer Pipeline, um zu überprüfen, ob der Build funktioniert.
- Klonen Sie nach der Überprüfung Ihre Überprüfungsphase, und legen Sie den Bereitstellungsmodus auf Inkrementell fest.
Weitere Überlegungen zur Speicherung von Packer-Dateien:
- Speichern Sie Ihre Packer-Dateien und -Bereitstellungen an einem zentralen Speicherort, auf den Azure Pipelines zugreifen kann. Es wird empfohlen, Azure-Dateifreigaben zu verwenden, um diese Dateien sicher zu speichern.
- Speichern Sie die Anmeldeinformationen für den Zugriff auf Azure Files in Key Vault. Die Anmeldeinformationen für den Zugriff können mithilfe von Pipelinevariablen zum Buildzeitpunkt aus Key Vault gepullt werden.
- Speichern Sie außerdem Ihren Packer-Dateinamen und den Kontoschlüssel in dem Schlüsseltresor, der mit der Variablengruppe in Azure DevOps verknüpft ist. Pipelines greifen auf diese Anmeldeinformationen zu, um Packer-Dateien auf den VM herunterzuladen, der zur Erstellung des Images verwendet wird.
- Speichern Sie den UNC-Pfad als Variable in der Variablengruppe Azure DevOps.
Speichern von Azure Virtual Desktop-Images
Der Azure Compute Gallery-Dienst ist die einfachste Möglichkeit, Ihre Gold-Images zu strukturieren und zu organisieren. Sie bietet:
- Globale Replikation von Images in verschiedene Azure-Regionen.
- Stellen Sie sicher, dass Sie Images in den Regionen bereitgestellt haben, in denen Azure Virtual Desktop-Sitzungshosts (VMs) bereitgestellt werden.
- Versionsverwaltung und Gruppierung von Images zur einfacheren Verwaltung: Versionsverwaltung und Gruppierung sind hilfreich, um Azure Virtual Desktop-Hostpools auf frühere Image-Versionen zurückzusetzen.
- Hochverfügbare Images mit ZRS-Konten (zonenredundanter Speicher) in Regionen, die Verfügbarkeitszonen unterstützen. ZRS bietet bessere Ausfallsicherheit bei zonenbezogenen Fehlern.
- Freigeben eines Azure Virtual Desktop-Images für andere Abonnements und sogar andere Mic Entra-Mandanten mithilfe der rollenbasierten Zugriffssteuerung (Role-Based Access Control, RBAC).
- Skalieren von Bereitstellungen mit Imagereplikaten in jeder Region.
- Planen Sie die Bereitstellung eines Replikats für jeweils 20 VMs ein, die Sie gleichzeitig bereitstellen möchten.
Weitere Informationen finden Sie unter Serviceübersicht: Azure Compute Gallery.
Anwendungsinstallation in Azure Virtual Desktop-Images
- Für universelle Anwendungen, die in Ihrem Gold-Image installiert sind, verwenden Sie die weiter oben in diesem Artikel beschriebene Packer-Methode.
- App-V ist derzeit die von Microsoft unterstützte Methode zum Streamen von Anwendungen für einzelne Benutzer.
- Verwenden Sie die FSLogix-Anwendungsmaskierung, um Anwendungen oder Plug-Ins zu verbergen oder offenzulegen, die nicht gut mit App-V funktionieren.
- Verwenden Sie nach Möglichkeit MSIX App Attach, um Anwendungen dynamisch für Benutzer bereitzustellen und die Gesamtgröße Ihres Gold-Images zu reduzieren. Sie können auch CI/CD-Pipelines verwenden, um den Prozess der Paketierung von Anwendungen im MSIX-Format zu automatisieren. Weitere Informationen finden Sie in der Übersicht.
Bereitstellen von Sprachen in Azure Virtual Desktop-Images
Microsoft bietet Prozesse zum manuellen oder automatischen Installieren von Sprachpaketen. Es wird empfohlen, den Verwaltungsaufwand so gering wie möglich zu halten und den Prozess der Sprachinstallation zu automatisieren.
Dieser Prozess beinhaltet das Herunterladen eines PowerShell-Skripts auf den virtuellen Computer, der in Ihr Image konvertiert wird. Sie finden Beispiele für Automatisierungsskripts in der Microsoft-Dokumentation. Wenn Sie Packer-Pipelines wie empfohlen verwenden, können Sie diesen Prozess als zusätzliche Buildaufgabe einschließen.
Weitere Informationen zum Installieren von Sprachpaketen in Windows 10 Enterprise mit mehreren Sitzungen finden Sie unter Hinzufügen von Language Packs zu einem Image für Windows 10 (mehrere Sitzungen).
Erstellen von Azure Virtual Desktop-Hostpools aus Azure Compute Gallery-Images
Verwenden Sie eine Infrastructure-as-Code-Ansatz (Infrastructure-as-Code, IaC) für die Bereitstellung und Anpassung von Azure Virtual Desktop-Ressourcen. Sie sollten nach Möglichkeit immer verwendet werden, um konsistente Bereitstellungen zu gewährleisten. ARM-Vorlagen können verwendet werden, um Azure Virtual Desktop-Ressourcen als Teil einer CI/CD-Pipelineaufgabe bereitzustellen. Sie können sie auch verwenden, wenn Sie das Azure-Portal, Azure PowerShell oder Azure CLI verwenden.
Im Folgenden wird eine Strategie zur Aktualisierung des Hostpools empfohlen:
- Richten Sie eine CI/CD-Pipeline zum Erstellen und Verteilen von Gold-Images an die Azure Compute Gallery ein.
- Bestimmen Sie einen Validierungshostpool und stellen Sie neue Sitzungshosts mithilfe von CI/CD-Pipelines im Validierungshostpool bereit.
- Testen Sie Ihre Automatisierung, indem Sie einen Validierungshostpool verwenden.
- Kennzeichnen Sie Ihre Sitzungshosts mit einer Buildnummer oder Image-Version, um die Version des Images zu identifizieren, das sie ausführen.
- Überprüfen Sie vor der Bereitstellung, ob Sie über ein ausreichendes Rechenkontingent in Ihrem Abonnement verfügen.
- Nach erfolgreichem Test im Validierungspool versetzen Sie die vorhandenen Sitzungshosts in den Ausgleichsmodus – gekennzeichnete VMs sind dann leicht zu identifizieren.
- Stellen Sie neue Sitzungshosts bereit und erlauben Sie den Benutzern, eine Verbindung herzustellen.
- Nach erfolgreichem Test in der Produktion beginnen Sie damit, alte Sitzungshosts freizugeben, um keine weiteren Rechenkosten zu verursachen, und schließlich zu löschen, um keine weiteren verwalteten Datenträgerkosten zu verursachen.
- Gelöschte Sitzungshosts werden nur aus Azure entfernt. Computerobjekte verbleiben in Ihrem AD, sodass diese Computerobjekte manuell oder per Skript gelöscht werden müssen.
Das obige Beispiel zeigt eine Methode der Imageautomatisierung mit Azure DevOps und einer Ci/CD-Pipeline (Continuous Integration und Continuous Delivery). Dies ist ein cloudnativer Ansatz und bietet einen weniger störenden Rollout neuer Sitzungshosts ohne Downtime. Es ist wichtig zu beachten, dass Sie den Anstieg der Anzahl der virtuellen Computer berücksichtigen sollten, wenn Sie alte Images auslaufen lassen und neue Images online stellen.
Wie oben erwähnt, ist Azure Compute Gallery ein Dienst, mit dem Sie eine Struktur und Organisation für Ihre Images erstellen können. Auf diese Images kann in Ihren IaC-Bereitstellungen Ihrer Azure Virtual Desktop-Sitzungshosts verwiesen werden. Der Dienst ermöglicht die Versionsverwaltung, Gruppierung und Replikation von Images.
Wenn Sie Ihre Sitzungshosts mit einer ARM-Vorlage oder Terraform bereitstellen, wird empfohlen, die Ressourcen-ID des Images, das Sie in Ihrem Katalog erstellt haben, als benutzerdefinierte Image-Quell-ID der VM zu verwenden. Das von Ihnen verwendete Image muss über den Azure Compute Gallery-Dienst in den Azure-Regionen repliziert werden, in denen Sie Ihre Azure Virtual Desktop-Hostpools bereitstellen.
Nächste Schritte
Erfahren Sie, wie Sie Azure Virtual Desktop mithilfe des Zielzonenbeschleunigers für unternehmensweite Szenarien bereitstellen.