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 dieser Tutorialserie lernen Sie Folgendes:

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 Tutorialreihe 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 die Anwendung 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 für den Cluster konfiguriert werden, den Sie zuvor erstellt haben. 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. Klicken Sie auf den Link Speichern, um die Einstellungen im Veröffentlichungsprofil zu speichern, und klicken Sie dann auf Abbrechen, um das Dialogfeld zu schließen.

Push profile

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 ein neues lokales Git-Repository für das Projekt, indem Sie auf der Statusleiste in der unteren rechten Ecke von Visual Studio Zur Quellcodeverwaltung hinzufügen>Git auswählen.

Klicken Sie in der Ansicht Push in Team Explorer unter Per Push in Azure DevOps übertragen auf die Schaltfläche Git-Repository veröffentlichen.

Screenshot of the Team Explorer - Synchronization window in Visual Studio. The Publish to Git Repo button is highlighted under Push to Azure DevOps.

Überprüfen Sie Ihre E-Mail-Adresse, und wählen Sie in der Dropdownliste Azure DevOps-Domäne Ihr Konto aus. Geben Sie den Repositorynamen ein, und wählen Sie Repository veröffentlichen aus.

Screenshot of the Push to Azure DevOps settings with the Email, Account, Repository name, and Publish Repository button highlighted.

Durch das Veröffentlichen des Repositorys wird in Ihrem Konto ein neues Projekt mit dem gleichen Namen wie das lokale Repository erstellt. Um das Repository in einem vorhandenen Projekt zu erstellen, klicken Sie neben Repositoryname auf Erweitert, und wählen Sie ein Projekt aus. Sie können den Code im Web anzeigen, indem Sie Im Web anzeigen 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

Navigieren Sie in einem Webbrowser zu Ihrem neuen Projekt: https://<IhrKonto>.visualstudio.com/Voting/Voting%20Team/_git/Voting.

Wählen Sie die Registerkarte Pipelines und dann Builds aus, und klicken Sie auf Neue Pipeline.

New Pipeline

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

Select repo

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

Choose build template

Geben Sie unter Aufgaben für Agentpool die Zeichenfolge „Hosted VS2017“ ein.

Select tasks

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.

Select triggers

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.

Choose release template

Klicken Sie auf Aufgaben>Umgebung 1 und anschließend auf +Neu, um eine neue Clusterverbindung hinzuzufügen.

Add cluster connection

Wählen Sie in der Ansicht Neue Service Fabric-Verbindung hinzufügen die Authentifizierung Zertifikatbasiert oder Microsoft Entra ID aus. Nennen Sie die Verbindung „mysftestcluster“, und geben Sie als Clusterendpunkt entweder „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.

Klicken Sie auf Hinzufügen, um die Clusterverbindung zu 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. Klicken Sie auf Hinzufügen, um das Buildartefakt zu speichern.

Add artifact

Aktivieren Sie einen Continuous Deployment-Trigger, damit nach Abschluss des Buildvorgangs automatisch ein Release erstellt wird. Klicken Sie im Artefakt auf das Blitzsymbol, aktivieren Sie den Trigger, und klicken Sie anschließend auf Speichern, um die Releasepipeline zu speichern.

Enable trigger

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

Überprüfen Sie, ob die Bereitstellung erfolgreich war und die Anwendung im Cluster ausgeführt wird. Öffnen Sie einen Webbrowser, und navigieren Sie zu http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Beachten Sie, dass die Anwendungsversion in diesem Beispiel „1.0.0.20170616.3“ lautet.

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.

Während Sie den Code schreiben, werden Ihre Änderungen automatisch von Visual Studio nachverfolgt. Committen Sie Änderungen in Ihr lokales Git-Repository, indem Sie auf der Statusleiste unten rechts das Symbol „Ausstehende Änderungen“ auswählen. (Pending changes icon shows a pencil and a number.).

Fügen Sie in der Ansicht Änderungen in Team Explorer eine Nachricht hinzu, die die Aktualisierung beschreibt, und führen Sie den Commit der Änderungen aus.

Commit all

Wählen Sie das Statusleistensymbol für nicht veröffentlichte Änderungen (Unpublished changes) oder die Synchronisierungsansicht in Team Explorer aus. Wählen Sie Push aus, um den Code in Azure Pipelines zu aktualisieren.

Push changes

Durch das Pushen der Änderungen an Azure Pipelines wird automatisch ein Buildvorgang ausgelöst. Wenn die Buildpipeline erfolgreich abgeschlossen ist, wird automatisch ein Release erstellt, das mit dem Upgrade der Anwendung auf dem Cluster beginnt.

Um den Buildstatus zu überprüfen, wechseln Sie in Visual Studio in Team Explorer zur 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.

Überprüfen Sie, ob die Bereitstellung erfolgreich war und die Anwendung im Cluster ausgeführt wird. Öffnen Sie einen Webbrowser, und navigieren Sie zu http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Beachten Sie, dass die Anwendungsversion in diesem Beispiel 1.0.0.20170815.3 lautet.

Screenshot of the Voting app in Service Fabric Explorer running in a browser window. The app version

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 of the Voting app in Service Fabric Explorer. The Status message

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 of the Voting app in Service Fabric Explorer running in a browser window. The updated app version

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: