Tutorial: Bereitstellen einer Anwendung mit CI/CD in einem Service Fabric-Cluster

Dieses Tutorial ist der vierte Teil einer Reihe und beschreibt die Einrichtung von Continuous Integration und Continuous Deployment für eine Azure Service Fabric-Anwendung mithilfe von Azure Pipelines. Es ist eine vorhandene Service Fabric-Anwendung erforderlich. Die im Artikel Erstellen einer .NET-Anwendung erstellte Anwendung wird als Beispiel verwendet.

Im dritten Teil der Serie lernen Sie Folgendes:

  • Hinzufügen der Quellcodeverwaltung zum Projekt
  • Erstellen einer Buildpipeline in Azure-Pipelines
  • Erstellen einer Releasepipeline in Azure-Pipelines
  • Automatisches Bereitstellen und Durchführen von Upgrades einer Anwendung

In diesen Tutorials wird Folgendes vermittelt:

Voraussetzungen

Bevor Sie mit diesem Tutorial beginnen können, müssen Sie Folgendes tun:

Laden Sie die Beispielanwendung „Voting“ herunter.

Falls Sie die Beispielanwendung „Voting“ aus Teil 1 dieser Reihe nicht erstellt haben, können Sie sie herunterladen. Führen Sie in einem Befehlsfenster den folgenden Befehl aus, um das Beispiel-App-Repository auf Ihren lokalen Computer zu klonen.

git clone https://github.com/Azure-Samples/service-fabric-dotnet-quickstart

Erstellen eines Veröffentlichungsprofils

Nachdem Sie eine Anwendung erstellt und in Azure bereitgestellt haben, können Sie Continuous Integration einrichten. Erstellen Sie zunächst in der Anwendung ein Veröffentlichungsprofil für den Bereitstellungsprozess, der in Azure Pipelines ausgeführt wird. Das Veröffentlichungsprofil muss so konfiguriert werden, dass der zuvor erstellte Cluster als Ziel verwendet wird. Starten Sie Visual Studio, und öffnen Sie ein vorhandenes Service Fabric-Anwendungsprojekt. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf die Anwendung, und wählen Sie Veröffentlichen aus.

Wählen Sie ein Zielprofil im Anwendungsprojekt aus, das Sie für den Continuous Integration-Workflow verwenden möchten, z.B. „Cloud“. Geben Sie den Clusterverbindungsendpunkt an. Aktivieren Sie das Kontrollkästchen Upgrade der Anwendung ausführen, damit für jede Bereitstellung in Azure DevOps ein Upgrade der Anwendung erfolgt. Wählen Sie den Link Speichern aus, um die Einstellungen im Veröffentlichungsprofil zu speichern, und wählen Sie dann Abbrechen aus, um das Dialogfeld zu schließen.

Profil pushen

Freigeben der Visual Studio-Projektmappe in einem neuen Git-Repository von Azure DevOps

Teilen Sie Ihre Anwendungsquelldateien für ein Projekt in Azure DevOps, damit Sie Builds erstellen können.

Erstellen Sie über die integrierte Entwicklungsumgebung von Visual Studio 2022 ein neues GitHub-Repository und ein neues Azure DevOps-Repository. Wählen Sie hierzu im Git-Menü die Optionen „Git“ > „Git-Repository erstellen“ aus.

Wählen Sie in der Dropdownliste Ihr Konto aus, geben Sie Ihren Repositorynamen ein, und wählen Sie die Schaltfläche Erstellen und pushen aus.

Screenshot: Erstellen eines neuen Git-Repositorys

Durch Veröffentlichen des Repositorys wird in Ihrem Azure DevOps Services-Konto ein neues Projekt erstellt, das den gleichen Namen hat wie das lokale Repository.

Zeigen Sie das neu erstellte Repository an, indem Sie zu „https://dev.azure.com/\<Organisationsname>“ navigieren, mit der Maus auf den Namen Ihres Projekts zeigen und anschließend das Symbol Repos auswählen.

Konfigurieren von Continuous Delivery mit Azure Pipelines

Eine Azure Pipelines-Buildpipeline beschreibt einen Workflow, der aus verschiedenen Buildschritten besteht, die nacheinander ausgeführt werden. Erstellen Sie eine Buildpipeline, die ein Service Fabric-Anwendungspaket und andere Elemente erzeugt, um sie in einem Service Fabric-Cluster bereitzustellen. Erfahren Sie mehr über Azure Pipelines-Buildpipelines.

Eine Azure Pipelines-Releasepipeline beschreibt einen Workflow, der ein Anwendungspaket in einem Cluster bereitstellt. Bei gemeinsamer Verwendung führen die Buildpipeline und Releasepipeline den gesamten Workflow aus, und zwar beginnend mit den Quelldateien und endend mit einer im Cluster ausgeführten Anwendung. Weitere Informationen zu Azure Pipelines-Releasepipelines finden Sie hier.

Erstellen einer Buildpipeline

Öffnen Sie einen Webbrowser, und navigieren Sie zu Ihrem neuen Projekt unter „https://dev.azure.com/\<Organisationsname>/VotingSample“.

Wählen Sie die Registerkarte Pipelines und anschließend Pipeline erstellen aus.

Neue Pipeline

Wählen Sie Klassischen Editor verwenden aus, um eine Pipeline ohne YAML zu erstellen.

Klassischer Editor

Wählen Sie Azure Repos Git als Quelle, das Teamprojekt VotingSample, das Repository VotingApplication und den Standardbranch master für manuelle und geplante Builds aus. Klicken Sie anschließend auf Weiter.

Auswählen des Repositorys

Wählen Sie unter Vorlage auswählen die Vorlage Azure Service Fabric-Anwendung und anschließend Anwenden aus.

Auswählen der Buildvorlage

Geben Sie unter Aufgaben die Zeichenfolge „Azure Pipelines“ für Agentpool und windows-2022 als Agent-Spezifikation ein.

Auswählen von Aufgaben

Aktivieren Sie unter Trigger Continuous Integration, indem Sie die Option Continuous Integration aktivieren auswählen. Unter Branchfilter ist Branchspezifikation standardmäßig auf master festgelegt. Klicken Sie auf Speichern und in Warteschlange einreihen, um manuell einen Buildvorgang zu starten.

Auswählen von Triggern

Buildvorgänge werden auch bei Push- oder Eincheckvorgängen ausgelöst. Wechseln Sie zum Überprüfen des Buildstatus zur Registerkarte Builds. Nachdem Sie überprüft haben, ob der Build erfolgreich ausgeführt wird, legen Sie eine Releasepipeline fest, mit der die Anwendung in einem Cluster bereitgestellt wird.

Erstellen einer Releasepipeline

Wählen Sie die Registerkarte Pipelines und dann Releases aus, und klicken Sie auf + Neue Pipeline. Wählen Sie in der Liste unter Vorlage auswählen die Vorlage Azure Service Fabric-Bereitstellung aus, und klicken Sie auf Anwenden.

Auswählen der Releasevorlage

Wählen Sie Aufgaben und dann + Neu aus, um eine neue Clusterverbindung hinzuzufügen.

Hinzufügen der Clusterverbindung

Wählen Sie in der Ansicht Neue Service Fabric-Verbindung die Authentifizierung Zertifikatbasiert oder Microsoft Entra-Anmeldeinformationen aus. Geben Sie als Clusterendpunkt „tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000“ oder den Endpunkt des Zielclusters Ihrer Bereitstellung an.

Fügen Sie bei Verwendung der zertifikatbasierten Authentifizierung den Zertifikatfingerabdruck des Servers für das Serverzertifikat hinzu, das bei der Erstellung des Clusters verwendet wurde. Fügen Sie unter Clientzertifikat die Base64-Codierung der Clientzertifikatdatei hinzu. Die Vorgehensweise zum Ermitteln der Base64-codierten Darstellung des Zertifikats wird in der kontextbezogenen Hilfe zu diesem Feld beschrieben. Fügen Sie auch das Kennwort für das Zertifikat hinzu. Sollten Sie über kein separates Clientzertifikat verfügen, können Sie auch das Cluster- oder Serverzertifikat verwenden.

Fügen Sie bei Verwendung von Microsoft Entra-Anmeldeinformationen den Zertifikatfingerabdruck des Servers für das Serverzertifikat hinzu, das bei der Erstellung des Clusters verwendet wurde, und geben Sie in den Feldern Benutzername und Kennwort die Anmeldeinformationen an, die beim Herstellen der Clusterverbindung verwendet werden sollen.

Wählen Sie Speichern.

Fügen Sie als Nächstes der Pipeline ein Buildartefakt hinzu, damit die Releasepipeline die Ausgabe des Builds findet. Klicken Sie auf Pipeline und anschließend auf Artefakte>+Hinzufügen. Wählen Sie unter Quelle (Builddefinition) die zuvor erstellte Buildpipeline aus. Wählen Sie Hinzufügen aus, um das Buildartefakt zu speichern.

Hinzufügen des Artefakts

Aktivieren Sie einen Continuous Deployment-Trigger, damit nach Abschluss des Buildvorgangs automatisch ein Release erstellt wird. Wählen Sie in dem Artefakt das Blitzsymbol aus, aktivieren Sie den Trigger, und wählen Sie anschließend Speichern aus, um die Releasepipeline zu speichern.

Aktivieren des Triggers

Wählen Sie Release erstellen>Erstellen aus, um manuell ein Release zu erstellen. Sie können den Releasestatus auf der Registerkarte Releases überwachen.

Vergewissern Sie sich, dass die Bereitstellung erfolgreich war und die Anwendung im Cluster ausgeführt wird. Öffnen Sie einen Webbrowser, und navigieren Sie zu https://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Notieren Sie sich die Anwendungsversion. In diesem Beispiel lautet er 1.0.0.20170616.3.

Committen und Pushen von Änderungen, Auslösen eines Release

Um die Funktionsfähigkeit Continuous Integration-Pipeline zu überprüfen, checken Sie einige Codeänderungen bei Azure DevOps ein.

Beim Schreiben Ihres Codes verfolgt Visual Studio die Dateiänderungen für Ihr Projekt im Abschnitt Änderungen des Fensters Git-Änderungen nach.

Fügen Sie in der Ansicht Änderungen eine Nachricht hinzu, die Ihre Aktualisierung beschreibt, und committen Sie Ihre Änderungen.

Commit für alle

Wählen Sie im Fenster Git-Änderungen die Schaltfläche Pushen (Pfeil nach oben) aus, um Code in Azure Pipelines zu aktualisieren.

Änderungen pushen

Durch das Pushen der Änderungen an Azure Pipelines wird automatisch ein Buildvorgang ausgelöst. Wechseln Sie zum Überprüfen Ihres Buildstatus zur Registerkarte Builds (unter https://dev.azure.com/organizationname/VotingSample).

Nach erfolgreichem Abschluss des Buildvorgangs wird automatisch ein Release erstellt und mit dem Upgraden der Anwendung im Cluster begonnen.

Vergewissern Sie sich, dass die Bereitstellung erfolgreich war und die Anwendung im Cluster ausgeführt wird. Öffnen Sie einen Webbrowser, und navigieren Sie zu https://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Notieren Sie sich die Anwendungsversion. In diesem Beispiel lautet er 1.0.0.20170815.3.

Screenshot: In einem Browserfenster ausgeführte Voting-App in Service Fabric Explorer. Die App-Version „1.0.0.20170815.3“ ist hervorgehoben.

Aktualisieren der Anwendung

Nehmen Sie in der Anwendung Codeänderungen vor. Speichern und committen Sie die Änderungen, indem Sie die vorherigen Schritte ausführen.

Sobald das Upgrade der Anwendung gestartet wird, können Sie in Service Fabric Explorer den Upgradestatus beobachten:

Screenshot: Voting-App in Service Fabric Explorer. Die Statusmeldung „Upgrade wird durchgeführt“ und eine Meldung vom Typ „Das Upgrade wird ausgeführt...“ sind hervorgehoben.

Das Anwendungsupgrade kann mehrere Minuten dauern. Wenn das Upgrade abgeschlossen ist, wird die nächste Version der Anwendung ausgeführt. In diesem Beispiel 1.0.0.20170815.4.

Screenshot: In einem Browserfenster ausgeführte Voting-App in Service Fabric Explorer. Die aktualisierte App-Version „1.0.0.20170815.4“ ist hervorgehoben.

Nächste Schritte

In diesem Tutorial haben Sie Folgendes gelernt:

  • Hinzufügen der Quellcodeverwaltung zum Projekt
  • Erstellen einer Buildpipeline
  • Erstellen einer Releasepipeline
  • Automatisches Bereitstellen und Durchführen von Upgrades einer Anwendung

Fahren Sie mit dem nächsten Tutorial fort: