Entwerfen der Bereitstellungspipeline
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:
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.
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
.
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.
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.
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.