Wichtige Konzepte für neue Azure Pipelines-Benutzer
Azure DevOps Services
Erfahren Sie mehr über die wichtigsten Konzepte und Komponenten, aus denen Azure-Pipelines bestehen. Das Verständnis der grundlegenden Begriffe und Teile einer Pipeline kann Ihnen helfen, Ihren Code effektiver zu erstellen, zu testen und bereitzustellen.
Überblick über die wichtigsten Konzepte
- Ein Trigger weist eine Pipeline dazu an, ausgeführt zu werden.
- Eine Pipeline besteht aus einer oder mehreren Stages. Eine Pipeline kann in einer oder in mehreren Umgebungen bereitgestellt werden.
- Eine Stage ist eine Möglichkeit zum Organisieren von Aufträgen in einer Pipeline. Jede Stage kann einen oder mehrere Aufträge umfassen.
- Jeder Auftrag wird auf einem Agent ausgeführt. Ein Job kann auch agentlos sein.
- Jeder Agent führt einen Auftrag aus, der einen oder mehrere Schritte umfasst.
- Ein Schritt kann eine Aufgabe oder ein Skript sein und stellt den kleinsten Baustein einer Pipeline dar.
- Bei einer Task handelt es sich um ein vorgefertigtes Skript, das eine Aktion durchführt, z. B. das Aufrufen einer REST-API oder das Veröffentlichen eines Buildartefakts.
- Ein Artefakt ist eine Sammlung von Dateien oder Paketen, die bei einer Ausführung veröffentlicht werden.
Azure Pipelines-Begriffe
Agent
Wenn der Build oder die Bereitstellung ausgeführt wird, startet das System einen oder mehrere Aufträge. Ein Agent ist eine Computerinfrastruktur mit installierter Agentensoftware, die jeweils einen Auftrag ausführt. Beispielsweise könnte Ihr Auftrag auf einem von Microsoft gehosteten Ubuntu-Agent ausgeführt werden.
Ausführlichere Informationen zu den verschiedenen Arten von Agents und deren Verwendung finden Sie unter Azure Pipelines-Agents.
Genehmigungen
Genehmigungen definieren eine Reihe von Überprüfungen, die erforderlich sind, bevor eine Bereitstellung ausgeführt wird. Die manuelle Genehmigung ist eine häufig durchgeführte Überprüfung, um Bereitstellungen in Produktionsumgebungen zu steuern. Sind Überprüfungen für eine Umgebung konfiguriert, wird die Pipelineausführung angehalten, bis alle Überprüfungen erfolgreich abgeschlossen sind.
Artefakt
Ein Artefakt ist eine Sammlung von Dateien oder Paketen, die beim Ausführen veröffentlicht werden. Artefakte werden für nachfolgende Aufgaben wie Verteilung oder Bereitstellung zur Verfügung gestellt. Weitere Informationen finden Sie unter Artefakte in Azure Pipelines.
Kontinuierliche Lieferung
Die kontinuierliche Lieferung (Continuous Delivery, CD) ist ein Prozess, mit dem Code erstellt, getestet und in einer oder mehreren Test- und Produktionsphasen bereitgestellt wird. Das Bereitstellen und Testen in mehreren Phasen trägt dazu bei, die Qualität zu steigern. Kontinuierliche Integrationssysteme erzeugen bereitstellungsfähige Artefakte, einschließlich Infrastruktur und Apps. Automatisierte Releasepipelines nutzen diese Artefakte, um neue Versionen und Fehlerkorrekturen für bestehende Systeme freizugeben. Überwachungs- und Warnsysteme werden ständig ausgeführt, um den Einblick in den gesamten CD-Prozess zu fördern. Dieser Prozess stellt sicher, dass Fehler häufig und frühzeitig abgefangen werden.
Kontinuierliche Integration
Continuous Integration (CI) ist die Praxis, die von Entwicklungsteams verwendet wird, um das Testen und Erstellen von Code zu vereinfachen. CI hilft, Fehler oder Probleme frühzeitig im Entwicklungszyklus zu erfassen, wodurch sie einfacher und schneller behoben werden können. Automatisierte Tests und Builds werden als Teil des CI-Prozesses ausgeführt. Der Prozess kann nach einem festgelegten Zeitplan, wann immer Code eingereicht wird oder in beiden Fällen ausgeführt werden. Elemente, die als Artefakte bezeichnet werden, werden von CI-Systemen erstellt. Sie werden von den Continuous Delivery-Releasepipelines verwendet, um automatische Bereitstellungen zu steuern.
Einsatz
Bei einer klassischen Pipeline ist eine Bereitstellung die Aktion der Aufgabenausführung für eine Phase. Die Bereitstellung das Ausführen automatisierter Tests, das Bereitstellen von Buildartefakten und alle anderen Aktionen umfassen kann, die für diese Phase angegeben sind.
Bei YAML-Pipelines bezieht sich eine Bereitstellung auf einen Bereitstellungsauftrag. Ein Bereitstellungsauftrag ist eine Sammlung von Schritten, die nacheinander für eine Umgebung ausgeführt werden. Sie können Strategien wie einmaliges Ausführen, Rollen und Canary für Bereitstellungsaufträge verwenden.
Bereitstellungsgruppe
Bei einer Bereitstellungsgruppe handelt es sich um einen Satz von Bereitstellungsziel-Computern, auf denen Agents installiert sind. Eine Bereitstellungsgruppe ist lediglich eine weitere Gruppierung von Agents, ähnlich wie ein Agentpool. Sie können die Bereitstellungsziele in einer Pipeline für einen bestimmten Auftrag mithilfe einer Bereitstellungsgruppe festlegen. Erfahren Sie mehr über die Bereitstellung von Agents für Bereitstellungsgruppen.
Umwelt
Eine Umgebung ist eine Sammlung von Ressourcen, in der Sie Ihre Anwendung implementieren. Eine Umgebung kann einen oder mehrere virtuelle Computer, Container, Web-Apps oder einen beliebigen Dienst enthalten. Pipelines können für einer oder mehreren Umgebungen bereitstellen, nachdem ein Build abgeschlossen und Tests ausgeführt wurden.
Arbeit
Eine Stage enthält mindestens einen Auftrag. Jeder Auftrag wird auf einem Agent ausgeführt. Ein Auftrag stellt eine Ausführungsgrenze einer Reihe von Schritten dar. Alle Schritte werden zusammen auf demselben Agent ausgeführt. Aufträge sind am nützlichsten, wenn Sie eine Reihe von Schritten in verschiedenen Umgebungen ausführen möchten. Sie können beispielsweise zwei Konfigurationen erstellen : x86 und x64. In diesem Fall verfügen Sie über eine Stage und zwei Aufträge. Ein Job wäre für x86 und der andere Job wäre für x64.
Agentlose Aufträge werden in Azure DevOps und Azure DevOps Server ausgeführt, ohne einen Agent zu verwenden. Eine begrenzte Anzahl von Aufgaben unterstützt Aufträge ohne Agent.
Pipeline
Eine Pipeline definiert den kontinuierlichen Integrations- und Bereitstellungsprozess für Ihre App. Es besteht aus einer oder mehreren Stufen. Es kann als Workflow betrachtet werden, der definiert, wie Ihre Test-, Build- und Bereitstellungsschritte ausgeführt werden.
Für klassische Pipelines kann eine Pipeline auch als Definition bezeichnet werden.
Freigabe
Bei klassischen Pipelines ist eine Freigabe ein versionsspezifischer Satz mit Artefakten, die in einer Pipeline angegeben sind. Sie enthält eine Momentaufnahme aller Informationen, die zum Ausführen aller Aufgaben und Aktionen in der Freigabepipeline erforderlich sind, z. B. Stages, Aufgaben, Richtlinien wie Trigger und genehmigende Personen sowie Bereitstellungsoptionen. Sie können eine Version manuell, mit einem Bereitstellungstrigger oder mit der REST-API erstellen.
Für YAML-Pipelines befinden sich die Build- und Freigabephasen in einer mehrstufigen Pipeline.
Ausführung
Das Ausführen stellt jeweils eine Ausführung einer Pipeline dar. Es sammelt die Protokolle, die mit der Ausführung der Schritte und den Ergebnissen der ausgeführten Tests verknüpft sind. Während einer Ausführung verarbeitet Azure Pipelines zuerst die Pipeline und sendet die Ausführung dann an einen oder mehrere Agents. Jeder Agent führt Aufträge aus. Erfahren Sie mehr über die Pipelineausführungssequenz.
Für klassische Pipelines stellt ein Build eine Ausführung einer Pipeline dar.
Skript
Ein Skript führt Code als Schritt in Ihrer Pipeline mithilfe der Befehlszeile, PowerShell oder Bash aus. Sie können plattformübergreifende Skripts für macOS, Linux und Windows schreiben. Im Gegensatz zu einer Aufgabe ist ein Skript benutzerdefinierter Code, der für Ihre Pipeline spezifisch ist.
Phase
Eine Phase ist eine logische Grenze in der Pipeline. Sie kann verwendet werden, um die Trennung von Anliegen (z. B. Build, QA und Produktion) zu markieren. Jede Phase enthält einen oder mehrere Aufträge. Wenn Sie mehrere Phasen in einer Pipeline definieren, werden diese standardmäßig nacheinander ausgeführt. Sie können die Bedingungen für die Ausführung einer Phase angeben. Wenn Sie überlegen, ob Sie eine Bühne benötigen, fragen Sie sich:
- Verwalten separate Gruppen unterschiedliche Teile dieser Pipeline? Beispielsweise könnten Sie einen Test-Manager haben, der die Aufträge verwaltet, die sich auf Tests beziehen, und einen anderen Manager, der Aufträge im Zusammenhang mit der Produktionsbereitstellung verwaltet. In diesem Fall ist es sinnvoll, separate Phasen für Tests und Produktion zu haben.
- Gibt es eine Reihe von Genehmigungen, die mit einem bestimmten Auftrag oder einer Reihe von Aufträgen verknüpft sind? Wenn ja, können Sie Phasen verwenden, um Ihre Aufträge in logische Gruppen zu unterteilen, die Genehmigungen erfordern.
- Gibt es Aufträge, die lange dauern müssen? Wenn für einen Auftrag in Ihrer Pipeline eine lange Laufzeit erforderlich ist, macht es Sinn, diesen Auftrag in eigene Phasen aufzuteilen.
Schritt
Ein Schritt ist der kleinste Baustein einer Pipeline. Beispielsweise kann eine Pipeline aus Erstellungs- und Testschritten bestehen. Ein Schritt kann entweder ein Skript oder eine Aufgabe sein. Eine Aufgabe ist einfach ein vordefiniertes Skript, das Ihnen als Komfort angeboten wird. Informationen zum Anzeigen der verfügbaren Aufgaben finden Sie in der Referenz zu Build- und Releasetasks. Informationen zum Erstellen benutzerdefinierter Aufgaben finden Sie unter Erstellen einer benutzerdefinierten Aufgabe.
Aufgabe
Eine Aufgabe ist der Baustein zum Definieren der Automatisierung in einer Pipeline. Eine Aufgabe ist verpacktes Skript oder eine Prozedur, die mit einer Reihe von Eingaben abstrahiert wurde.
Auslöser
Ein Trigger ist ein Element, das eingerichtet wird, um der Pipeline mitzuteilen, wann sie ausgeführt werden soll. Sie können eine Pipeline so konfigurieren, dass sie bei einem Push auf ein Repository, zu geplanten Zeiten oder nach Abschluss eines anderen Builds ausgeführt wird. Alle diese Aktionen werden als Trigger bezeichnet. Weitere Informationen finden Sie unter Buildtrigger und Releasetrigger.
Bibliothek
Die Bibliothek enthält sichere Dateien und Variablengruppen. Gesicherte Dateien sind eine Möglichkeit, Dateien zu speichern und über Pipelines weiterzugeben. Sie können z. B. auf dieselbe Datei für verschiedene Pipelines verweisen. In diesem Fall können Sie die Datei in Library- speichern und bei Bedarf verwenden. Variablengruppen speichern Werte und Geheimnisse, die Sie möglicherweise in eine YAML-Pipeline übergeben oder für mehrere Pipelines verfügbar machen möchten.
Über die Autoren
- Dave Jarvis trug zur Übersichtsgrafik der wichtigsten Konzepte bei.