Azure Pipelines-Architektur bei DevTest Labs
Wichtig
CI/CD mit DevTest Labs ist eine Variante der CI/CD-Baselinearchitektur mit Azure Pipelines. Dieser Artikel konzentriert sich auf die Besonderheiten der Bereitstellung in einer DevTest Labs-Stagingumgebung.
DevTest Labs ermöglicht die Bereitstellung von Linux- und Windows-Umgebungen mithilfe wiederverwendbarer Vorlagen und Artefakte. Diese Umgebungen können nicht nur für Entwickler hilfreich sein, sondern auch in CI/CD-Pipelines zum Bereitstellen von Stagingumgebungen verwendet werden. Unter Azure DevTest Labs-Szenarien erfahren Sie, ob DevTest Labs für Ihr Szenario geeignet sind.
In diesem Artikel wird ein allgemeiner DevOps-Workflow zum Bereitstellen von Anwendungsänderungen mithilfe von Continuous Integration (CI) und Continuous Deployment (CD) unter Verwendung von Azure Pipelines beschrieben. Als Stagingumgebung wird eine DevTest Labs-Umgebung verwendet.
Aufbau
Laden Sie eine Visio-Datei dieser Architektur herunter.
Datenfluss
In diesem Abschnitt wird vorausgesetzt, dass Sie den Abschnitt Datenfluss des Artikels „CI/CD-Baselinearchitektur mit Azure Pipelines“ gelesen haben, und es werden lediglich die Besonderheiten der Bereitstellung einer Workload für Azure DevTest Labs zu Stagingzwecken behandelt.
PR-Pipeline - Identisch mit der Baseline
CI-Pipeline - Identisch mit der Baseline
CD-Pipelinetrigger - Identisch mit der Baseline
Erstellen der DevTest Labs-Stagingumgebung für CD: In diesem Schritt wird die DevTest Labs-Umgebung erstellt, die als Stagingumgebung fungiert. Der Schritt umfasst Folgendes:
- Erstellen einer Azure DevTest Labs-Umgebung in einem Stagingabonnement
- Bereitstellen einer ARM-Vorlage in der DevTest Labs-Umgebung. VM-Images können in einer Shared Image Gallery-Instanz gespeichert werden.
- Ausführen aller erforderlichen Schritte nach der Bereitstellung, um die Stagingumgebung ordnungsgemäß zu konfigurieren
CD-Freigabe für Staging: Identisch mit der Baseline – mit einer Ausnahme: Die Stagingumgebung ist eine DevTest Labs-Umgebung.
CD-Freigabe für die Produktion - Identisch mit der Baseline
Überwachung - Identisch mit der Baseline
Komponenten
In diesem Abschnitt wird vorausgesetzt, dass Sie den Abschnitt Komponenten des Artikels „CI/CD-Baselinearchitektur mit Azure Pipelines“ gelesen haben, und es werden lediglich die Besonderheiten der Bereitstellung einer Workload für Azure DevTest Labs zu Stagingzwecken behandelt.
- Azure DevTest Labs ist ein Dienst zum Erstellen, Verwenden und Verwalten von Umgebungen, die zu Entwicklungs-, Test- und Bereitstellungszwecken genutzt werden. Mit diesem Service können Sie vorkonfigurierte Umgebungen einfach und kostengünstig bereitstellen.
Alternativen
Die DevTest Labs-Stagingumgebung kann alternativ vorab außerhalb der Pipeline erstellt werden, anstatt sie im Rahmen des CD-Prozesses zu erstellen. Das hat den Vorteil, dass dadurch die Pipeline beschleunigt wird. Allerdings kann die Umgebung bei dieser Alternative nach Abschluss der Pipeline nicht gelöscht werden, was die Kosten erhöht.
In Situationen, in denen VM Image Builder und eine Shared Image Gallery sich nicht eignen, können Sie eine Image Factory einrichten, um VM-Images aus der CI-/CD-Pipeline zu erstellen und diese automatisch an alle Azure DevTest Labs zu verteilen, die für diese Images registriert sind. Weitere Informationen finden Sie unter Ausführen einer Image Factory in Azure DevOps.
Zusätzliche Umgebungen, die über das Staging hinausgehen, können als Teil der CD-Pipeline erstellt und bereitgestellt werden. Diese Umgebungen können Aktivitäten wie Leistungstests und Benutzerakzeptanztests unterstützen.
Überlegungen
In diesem Abschnitt wird vorausgesetzt, dass Sie den Abschnitt Überlegungen des Artikels „CI/CD-Baselinearchitektur mit Azure Pipelines“ gelesen haben, und es werden lediglich die Besonderheiten der Bereitstellung einer Workload für Azure DevTest Labs zu Stagingzwecken behandelt.
Kostenoptimierung
- Verwenden Sie ggf. Labrichtlinien und Verfahren zur Kostenkontrolle.
Optimaler Betrieb
- Erwägen Sie die Implementierung von Umgebungen, die über das reine Staging und die Produktion hinausgehen, um Rollbacks, manuelle Akzeptanztests und Leistungstests zu ermöglichen. Wenn Sie die Stagingumgebung als Rollbackumgebung verwenden, kann die Umgebung nicht für andere Zwecke verwendet werden.