Tutorial: Einrichten von CI/CD für eine Service Fabric-Anwendung mithilfe von Azure Pipelines

Dieses Tutorial ist der vierte Teil einer Serie. Es zeigt Ihnen, wie Sie eine kontinuierliche Integration und kontinuierliche Bereitstellung (CI/CD) für eine Azure Service Fabric-Anwendung mithilfe von Azure Pipelines einrichten. Um das Tutorial abzuschließen, müssen Sie über eine vorhandene Service Fabric-Anwendung verfügen. In diesem Tutorial wird die Anwendung verwendet, die in Teil 1 der Tutorialreihe beschrieben wird.

In diesem Tutorial 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

Die Tutorialreihe veranschaulicht folgende Vorgehensweisen:

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. Wählen 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 Profil speichern aus, um die Einstellungen im Veröffentlichungsprofil zu speichern, und wählen Sie dann Abbrechen aus, um das Dialogfeld zu schließen.

Screenshot, der das Pushen eines Profils zum Veröffentlichen der Anwendung zeigt.

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.

Um ein neues GitHub-Repository und ein Azure DevOps-Repository in Visual Studio 2022 zu erstellen, wählen Sie Git> Git Repository erstellen im Git-Menü aus.

Wählen Sie Ihr Konto aus, und geben Sie Ihren Repositorynamen ein. Wählen Sie 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.

Um das neu erstellte Repository anzuzeigen, wechseln Sie zu https://dev.azure.com/><organizationname>. Zeigen Sie mit der Maus auf den Namen Ihres Projekts, und wählen Sie das Symbol Repos aus.

Continuous Delivery mit Azure Pipelines konfigurieren

Eine Azure Pipelines-Buildpipeline beschreibt einen Workflow, der aus verschiedenen Buildschritten besteht, die nacheinander ausgeführt werden. Um ein Service Fabric Cluster bereitzustellen, erstellen Sie eine Buildpipeline, die ein Service Fabric-Anwendungspaket und andere Elemente erzeugt. 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 wechseln Sie zu Ihrem neuen Projekt unter https://dev.azure.com/<organization-name>/VotingSample.

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

Screenshot, der das Erstellen einer neuen Pipeline zeigt.

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

Screenshot der Verwendung des klassischen Editors zum Erstellen einer Pipeline.

Wählen Sie als Quelle die Option Azure Repos Git aus. Wählen Sie für das Teamprojekt VotingSample aus. Wählen Sie für Repository VotingApplication aus. Belassen Sie die Standardverzweigung für manuelle und geplante Builds. Klicken Sie anschließend auf Weiter.

Screenshot der Auswahl des Repositorys in Azure DevOps.

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

Screenshot, der das Auswählen und Erstellen einer Vorlage zeigt.

Geben Sie unter Aufgaben für den Agent-Pool Azure-Pipelines ein. Geben Sie für die Agentspezifikationwindows-2022 ein.

Screenshot der Auswahl von Aufgaben.

Aktivieren Sie unter Trigger das Kontrollkästchen Fortlaufende Integration aktivieren. In Branchfilter ist Branchspezifikation standardmäßig auf master festgelegt. Klicken Sie auf Speichern und in Warteschlange einreihen, um manuell einen Buildvorgang zu starten.

Screenshot: Auswählen eines Triggers.

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

Releasepipeline erstellen

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

Screenshot, der die Auswahl einer Freigabevorlage zeigt.

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

Screenshot, der das Hinzufügen einer Clusterverbindung zeigt.

Wählen Sie unter Neue Service Fabric-Verbindung die Authentifizierung Zertifikatbasiert oder Microsoft Entra-Anmeldeinformationen aus. Geben Sie einen Clusterendpunkt von tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000 (oder den Endpunkt des Clusters an, auf dem Sie bereitstellen).

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. Lesen Sie die Hilfeinformationen zu diesem Feld, um zu erfahren, wie Sie die Base64-codierte Darstellung des Zertifikats erhalten. 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 für Microsoft Entra-Anmeldeinformationen einen Wert für den Serverzertifikatfingerabdruck hinzu. Verwenden Sie das Serverzertifikat, das Sie zum Erstellen des Clusters und der Anmeldeinformationen verwendet haben, die Sie zum Herstellen einer Verbindung mit dem Cluster in Benutzername und Kennwort verwenden möchten.

Wählen Sie Speichern.

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

Screenshot vom Hinzufügen eines 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.

Screenshot, der die Aktivierung des Triggers zeigt.

Wählen Sie Release erstellen>Erstellen aus, um manuell ein Release zu erstellen. Um den Releasestatus zu überwachen, wählen Sie die Registerkarte Releases.

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 zum 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 Bereichs Git-Änderungen nach.

Geben Sie unter Änderungen eine Nachricht ein, um Ihr Update zu beschreiben, und übernehmen Sie dann die Änderungen.

Screenshot, der das Commit der neuesten Änderungen zeigt.

Wählen Sie auf Git-Änderungen Push (Pfeil nach oben) aus, um Ihren Code in Azure Pipelines zu aktualisieren.

Screenshot mit der Option „Push“.

Durch das Pushen der Änderungen an Azure Pipelines wird ein Buildvorgang ausgelöst. Um den Buildfortschritt zu überprüfen, wählen Sie die Registerkarte Pipelines in der Anwendung auf https://dev.azure.com/organizationname/VotingSample aus.

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 ist hervorgehoben.

Aktualisieren der Anwendung

Nehmen Sie in der Anwendung Codeänderungen vor. Speichern und übernehmen Sie die Änderungen.

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

Screenshot der Abstimmungs-App im Service Fabric-Explorer, die in einem Browser ausgeführt wird, mit hervorgehobenen Statusmeldungen.

Das Anwendungsupgrade kann mehrere Minuten dauern. Nach Abschluss des Upgrades wird die Anwendung mit der nächsten Version ausgeführt. In diesem Beispiel wird die Version 1.0.0.20170815.4 ausgeführt.

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

Nächster Schritt

Fahren Sie mit dem nächsten Tutorial fort: