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:
- Erstellen einer .NET Service Fabric-Anwendung
- Bereitstellen der Anwendung in einem Remotecluster
- Hinzufügen eines HTTPS-Endpunkts zu einem ASP.NET Core-Front-End-Dienst
- Konfigurieren von CI/CD mit Azure Pipelines (dieses Tutorial)
- Einrichten der Überwachung und Diagnose für die Anwendung
Voraussetzungen
Bevor Sie mit diesem Tutorial beginnen können, müssen Sie Folgendes tun:
- Wenn Sie kein Azure-Abonnement besitzen, können Sie ein kostenloses Konto erstellen.
- Installieren Sie Visual Studio 2019 mit den Workloads Azure-Entwicklung und ASP.NET und Webentwicklung.
- Installieren Sie das Service Fabric SDK.
- Erstellen Sie einen Windows Service Fabric-Cluster in Azure, z.B. durch das Ausführen der Schritte in diesem Tutorial.
- Erstellen Sie eine Azure DevOps-Organisation, damit Sie ein Projekt in Azure DevOps erstellen und Azure-Pipelines verwenden können.
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.
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.
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.
Wählen Sie Klassischen Editor verwenden aus, um eine Pipeline ohne Nutzung von YAML zu erstellen.
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.
Wählen Sie unter Vorlage auswählen die Vorlage Azure Service Fabric-Anwendung und anschließend Anwenden aus.
Geben Sie unter Aufgaben für den Agent-Pool Azure-Pipelines ein. Geben Sie für die Agentspezifikationwindows-2022 ein.
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.
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.
Wählen Sie Aufgaben>Neu aus, um eine neue Clusterverbindung hinzuzufügen.
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.
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.
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.
Wählen Sie auf Git-Änderungen Push (Pfeil nach oben) aus, um Ihren Code in Azure Pipelines zu aktualisieren.
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
.
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:
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.
Nächster Schritt
Fahren Sie mit dem nächsten Tutorial fort: