Entwerfen der Bereitstellungspipeline

Abgeschlossen

In dieser Lerneinheit entwerfen Sie eine CI/CD-Pipeline, um die Anforderungen Ihres Projekts zu unterstützen. Sie möchten, dass die Contoso Video-Website nach jedem erfolgreichen Push in den Mainbranch, der für die Freigabe in der Produktion markiert ist, in Azure Kubernetes Service (AKS) veröffentlicht wird. Dank des Markierungsdesigns ist es einfach, die Version jeder Bereitstellung, die in die Produktion geht, zu überprüfen.

Sie möchten die Website darüber hinaus in einer Stagingumgebung für Tests nach jedem Push an den Mainbranch bereitstellen, unabhängig davon, ob der Push für die Freigabe in der Produktion markiert ist. Sie können Tags zum Weiterleiten verschiedener Containerimages verwenden, wenn Sie sie an Azure Container Registry pushen.

Entwerfen der Pipeline

Berücksichtigen Sie beim Entwerfen der Pipeline die Aufgaben und Trigger.

Auslöser

Ihre Pipeline muss für zwei verschiedene Ereignisse ausgelöst werden:

  • Durch einen gekennzeichneten Push in den Mainbranch
  • Durch einen nicht gekennzeichneten Push in den Mainbranch

Sie teilen die beiden Ereignisse in zwei separate Trigger auf, da sich die Aktionen für einen markierten Push von den Aktionen für einen nicht markierten Push unterscheiden. Ein markierter Push wird in der Produktion bereitgestellt. Ein nicht markierter Push wird hingegen in der Stagingumgebung bereitgestellt. Das folgende Diagramm zeigt die beiden Trigger für die Pipeline:

Diagram that shows two types of pipeline triggers.

Planen Sie nach dem Definieren der Trigger den Pipelineflow selbst.

Schritt 1: Klonen des Repositorys

Die ersten Schritte sind die Buildschritte, bei denen Sie eine Konfiguration vorbereiten und das Image erstellen, bevor Sie es an den AKS-Cluster pushen. In den Buildschritten richten Sie alle erforderlichen Informationen für den Bereitstellungsschritt ein. In diesem Fall ist der erste Buildschritt nach dem Eingang des Triggersignals für beide Trigger derselbe, nämlich das Klonen des Repositorys.

Diagram that shows the procession from triggers to the first build step in a pipeline.

Schritt 2: Erstellen des Images

Der nächste logische Schritt ist die Erstellung eines Images. Bei der Website muss es sich um ein Docker-Image handeln, damit sie in der AKS-Umgebung ausgeführt werden kann. Sie müssen das neue Image mit dem Dockerfile erstellen, das sich im Stammverzeichnis des Repositorys befindet. Hier berücksichtigen Sie unterschiedliche Trigger.

Für die markierte Commit-Pipeline erstellen Sie das Image und markieren es dann mit demselben Tag wie der Push. Wenn der Commit beispielsweise mit v1.0.0 gekennzeichnet ist, erstellen Sie das Image als contoso/website:v1.0.0. Wenn ein nicht markierter Commit im Mainbranch enthalten ist, erstellen Sie das Image mit dem Tag latest.

Diagram that shows the procession from triggers to the first and second build steps in a pipeline.

Schritt 3: Pushen des Images an eine Containerregistrierung

Nach der Erstellung des Images pushen Sie es in die Contoso-Containerregistrierung und richten den AKS-Cluster für den Zugriff auf die Registrierung ein. Der Cluster lädt die Images aus der Containerregistrierung herunter und führt sie aus.

An diesem Punkt läuft die Pipeline in einem einzigen Schritt zusammen. Da Ihre Containerregistrierungsinstanz keine internen Unterteilungen aufweist, pushen Sie beide Images an denselben Ort.

Diagram that shows the procession from triggers to the first, second, and third build steps in the pipeline.

Schritt 4: Bereitstellen der Anwendung

Im letzten Bereitstellungsschritt wird die Website am richtigen Ort bereitgestellt. Wenn die Pipeline durch einen markierten Commit ausgelöst wurde, stellen Sie die Website im production-Namespace des AKS-Clusters bereit. Wenn die Pipeline mit einem nicht markierten Commit ausgelöst wurde, pushen Sie die Website in den staging-Namespace des gleichen Clusters.

Diagram that shows the procession from triggers, through three build steps, to the deploy steps in a pipeline.

Nachdem Sie die Workflowpipeline entworfen haben, fahren Sie mit den folgenden Lerneinheiten fort, um Ihre Projektumgebung einzurichten und eine GitHub Actions-Instanz zum Klonen, Erstellen, Pushen und Bereitstellen im AKS-Cluster zu erstellen.