Freigeben über


Integrieren von DevTest Labs und DevOps-CI/CD-Pipelines

DevOps ist eine Softwareentwicklungsmethodik, bei der Softwareentwicklung (Dev) und Systembetrieb (Ops) zusammengefasst werden. Das System stellt neue Softwarefeatures, Updates und Fehlerbehebungen bereit, die den Geschäftszielen entsprechen.

Die DevOps-Methodik deckt auch Folgendes ab:

  • Entwerfen neuer Features basierend auf Zielen, Nutzungsmustern und Kundenfeedback
  • Beheben von Fehlern, Wiederherstellen und Härten des Systems, wenn Probleme auftreten

Eine Komponente der DevOps-Methodik ist die CI/CD-Pipeline (Continuous Integration/Continuous Delivery). Eine CI/CD-Pipeline verschiebt Informationen, Code und Ressourcen aus einem Commit der Quellcodeverwaltung über eine Reihe von Schritten, um das System zu erzeugen. Die Schritte umfassen das Erstellen, Testen und Veröffentlichen.

Sie können Azure DevTest Labs in CI/CD-Pipelines verwenden. In diesem Artikel wird die Verwendung von DevTest Labs in CI/CD-Build- und -Releasepipelines in einer Unternehmensumgebung erläutert.

Vorteile von DevTest Labs in DevOps-Workflows

Ein Lab sollte sich auf ein Team konzentrieren, das in einem Funktionsbereich arbeitet. So sind schnellere Änderungen möglich, während gleichzeitig die Nachteile einer kleineren Gruppe minimiert werden. Änderungen oder Probleme treten in der Laborumgebung auf, ohne Auswirkungen auf andere Aspekte.

Der allgemeinere Fokus ermöglicht die gemeinsame Nutzung von bereichsspezifischen Ressourcen wie Tools, Skripts oder ARM-Vorlagen (Azure Resource Manager). Entwickler*innen können freigegebene Ressourcen verwenden, um VMs (virtuelle Computer) mit dem gesamten Code, den Tools und der Konfiguration zu erstellen, die sie benötigen. Mithilfe von ARM-Vorlagen werden Lab-VMs und Laborumgebungen mit den entsprechenden Azure-Ressourcen erstellt. Die Vorlagen erstellen Ressourcen dynamisch oder durch das Erstellen von Basisimages mit Anpassungen.

Stellen Sie sich beispielsweise ein Szenario vor, in dem das Produkt ein eigenständiges System ist, das auf einem Kundencomputer installiert wird. DevTest Labs kann Lab-VMs erstellen, auf denen Kundensoftware, Artefakte und Konfigurationen installiert sind, um Codetests für innere Schleifen schnell durchzuführen.

Vorteile der Verwendung von Labs in DevOps-Workflows:

  • Fokussierter Zugriff: Durch die Verwendung eines Labs als Komponente wird ein bestimmtes Ökosystem einem eingeschränkten Personenkreis zugeordnet. In der Regel wird einem Team oder einer Gruppe, die an einem gemeinsamen Bereich oder einem bestimmten Feature arbeiten, ein Lab zugewiesen.

  • Replikation der Infrastruktur in der Cloud: Entwickler*innen können schnell ein Entwicklungsökosystem einrichten, das eine Entwicklungs-VM mit dem Quellcode und den Tools enthält. Außerdem können die Entwickler*innen auch eine Umgebung erstellen, die nahezu identisch mit der Produktionskonfiguration ist.

  • Vorproduktionsumgebungen: Ein Lab in der CI/CD-Pipeline ermöglicht die gleichzeitige Ausführung mehrerer Vorproduktionsumgebungen oder -computer für asynchrone Tests. Sie können verschiedene Supportinfrastrukturen bereitstellen und verwalten und Agents in einem Lab erstellen.

Verwenden von Labs in CI/CD-Pipelines

Die CI/CD-Pipeline ist eine kritische DevOps-Komponente. Die Pipeline integriert den Code aus Pull Requests von Entwickler*innen in vorhandenen Code und stellt ihn im Produktionsökosystem bereit. Für die DevTest Labs-Integration müssen sich nicht alle Ressourcen in einem Lab befinden. Beispielsweise können Sie für eine persistentere Ressource einen Jenkins-Host außerhalb des Labs einrichten. Im Folgenden finden Sie einige Beispiele für die Integration von Labs in die CI/CD-Pipeline.

Entwickeln

Die Buildpipeline erstellt ein Paket von Komponenten, die gemeinsam getestet und zur Veröffentlichung übergeben werden können. Das dynamische Erstellen einer Infrastruktur ermöglicht eine bessere Steuerung. Labs können wie die Speicherorte der Build-Agents und andere unterstützende Ressourcen Teil der Buildpipeline sein. DevTest Labs kann den Lab-Zugriff einschränken und damit die Sicherheit für Build-Agents erhöhen und die Wahrscheinlichkeit einer versehentlichen Beschädigung verringern.

Mit der Möglichkeit, mehrere Umgebungen in einem Lab zu verwenden, kann jeder Build asynchron ausgeführt werden. Die Build-ID ist Teil der Umgebungsinformationen, mit denen die Ressourcen für den jeweiligen Build eindeutig identifiziert werden.

Test

Mit einer CI/CD-Pipeline können Sie die Erstellung von DevTest Labs-Ressourcen wie VMs und Umgebungen für automatisierte und manuelle Tests automatisieren. Die Pipeline verwendet Buildinformationsartefakte oder Formeln, um VMs mit unterschiedlichen benutzerdefinierten Testkonfigurationen zu erstellen.

Freigabe

Beim Releaseprozess kann DevTest Labs für die Überprüfung verwendet werden, bevor der Code bereitgestellt wird. Der Prozess ähnelt dem Testen. Produktionsressourcen sollten nicht in DevTest Labs bereitgestellt werden.

Anpassung

Azure Pipelines ist eine Komponente von Azure DevOps Services, die über vorhandene Tasks zum Bearbeiten von VMs und Umgebungen in bestimmten Labs verfügt. Azure Pipelines stellt eine Möglichkeit zum Verwalten der CI/CD-Pipeline dar. Sie können ein Lab in jedes System integrieren, das das Aufrufen von REST-APIs, das Ausführen von PowerShell-Skripts oder die Verwendung der Azure-Befehlszeilenschnittstelle unterstützt.

Einige CI/CD-Pipeline-Manager verfügen auch über Open-Source-Plug-Ins, mit denen Ressourcen in Azure und DevTest Labs verwaltet werden können. Sie müssen möglicherweise benutzerdefinierte Skripts verwenden, um die Anforderungen der jeweiligen Pipeline zu erfüllen. Bei der Ausführung eines Tasks wird ein Dienstprinzipal mit der entsprechenden Rolle (in der Regel „Mitwirkender“) für den Zugriff auf das Lab verwendet.

Nächste Schritte