Zelfstudie: Een containertoepassing met CI/CD implementeren in een Service Fabric-cluster

Deze zelfstudie is deel twee van een reeks en beschrijft het instellen van continue integratie en implementatie voor een Azure Service Fabric-containertoepassing met behulp van Visual Studio Team Services en Azure DevOps. Er is een bestaande Service Fabric-toepassing nodig. De toepassing die is gemaakt in Een .NET-toepassing implementeren in een Windows-container in Azure Service Fabric wordt als voorbeeld gebruikt.

In deel twee van de serie leert u het volgende:

  • Broncodebeheer aan uw project toevoegen
  • Een build-definitie maken in Visual Studio Team Explorer
  • Een release-definitie maken in Visual Studio Team Explorer
  • Automatisch een upgrade en een toepassing implementeren

Vereisten

Voor u met deze zelfstudie begint:

Een publicatieprofiel voorbereiden

Nu u een containertoepassing hebt geïmplementeerd, bent u klaar om continue integratie in te stellen. Bereid eerst een publicatieprofiel binnen uw toepassing voor, dat kan worden gebruikt door het implementatieproces dat in Azure DevOps wordt uitgevoerd. Het publicatieprofiel moet worden geconfigureerd zodat het cluster dat u eerder hebt gemaakt als doel kan dienen. Start Visual Studio en open een bestaand Service Fabric-toepassingsproject. Klik in Solution Explorer met de rechtermuisknop op de toepassing en selecteer Publish....

Kies een doelprofiel in het toepassingsproject, dat voor de werkstroom voor continue integratie kan worden gebruikt, bijvoorbeeld Cloud. Geef het eindpunt voor de clusterverbinding op. Schakel het selectievakje bij Upgrade the Application in, zodat voor elke implementatie in Azure DevOps een upgrade voor de toepassing wordt uitgevoerd. Klik op de hyperlink Save om de instellingen op te slaan in het publicatieprofiel. Klik vervolgens op Cancel om het dialoogvenster te sluiten.

Push profile

Uw Visual Studio-oplossing delen met een nieuwe Git-opslagplaats van Azure DevOps

Deel de bronbestanden van uw toepassing met een teamproject in Azure DevOps zodat u builds kunt genereren.

Maak een nieuwe lokale Git-opslagplaats voor uw project door Toevoegen aan broncodebeheer ->Git te selecteren op de statusbalk in de rechterbenedenhoek van Visual Studio.

Ga naar de Push-weergave in Team Explorer en selecteer onder Push to Azure DevOps de knop Publish Git Repo.

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

Controleer uw e-mail en selecteer uw organisatie in de vervolgkeuzelijst Account. U moet mogelijk een organisatie instellen als u er nog geen hebt. Voer de naam van de opslagplaats in en selecteer Publish repository.

Screenshot of the Push to Azure DevOps window. The settings for Email, Account, Repository name, and the Publish Repository button are highlighted.

Als u de opslagplaats publiceert, wordt er een nieuw teamproject voor uw account gemaakt met dezelfde naam als de lokale opslagplaats. Als u de repro in een bestaand teamproject wilt maken, klikt u naast de naam van de opslagplaats op Advanced en selecteert u een teamproject. U kunt uw code op het web weergeven door See it on the web te selecteren.

Continue levering configureren met Azure Pipelines

De definitie van Azure DevOps-build beschrijft een werkstroom die bestaat uit een reeks build-stappen die achtereenvolgens worden uitgevoerd. Maak een definitie van een build die een Service Fabric-toepassingspakket maakt en andere artefacten, om deze in een Service Fabric-cluster te implementeren. Meer informatie over build-definities van Azure DevOps.

De definitie van een Azure DevOps-release beschrijft een werkstroom waarmee een toepassingspakket in een cluster wordt geïmplementeerd. Als de definities van de build en de release samen worden gebruikt, wordt hiermee de hele werkstroom uitgevoerd, te beginnen met bronbestanden en te eindigen met het uitvoeren van een toepassing in uw cluster. Meer informatie over release-definities van Azure DevOps.

Een build-definitie maken

Open uw nieuwe teamproject door in een web browser te navigeren naar https://dev.azure.com en uw organisatie selecteren, gevolgd door het nieuwe project.

Selecteer in het linkerdeelvenster de optie Pipelines en klik op New Pipeline.

Notitie

Als u de sjabloon voor de builddefinitie niet ziet, controleert u of de functie New YAML pipeline creation experience is uitgeschakeld. Deze functie wordt geconfigureerd in de sectie Preview-functies van uw DevOps-account.

New Pipeline

Selecteer Azure Repos Git als bron, de naam van uw Team-project, de opslagplaats van het project en de standaardbranch master of handmatige en geplande builds. Klik vervolgens op Doorgaan.

Selecteer in Select a template de sjabloon Azure Service Fabric Application met with Docker support en klik op Apply.

Choose build template

In Tasks selecteert u Hosted VS2017 als de Agent pool.

Select tasks

Klik op Tag images.

In Container Registry Type selecteert u Azure Container Registry. Selecteer een Azure Subscription en klik vervolgens op Authorize. Selecteer een Azure Container Registry.

Select Docker Tag images

Klik op Push images.

In Container Registry Type selecteert u Azure Container Registry. Selecteer een Azure Subscription en klik vervolgens op Authorize. Selecteer een Azure Container Registry.

Select Docker Push images

Schakel op het tabblad Triggers continue integratie in door Enable continuous integration in te schakelen. Binnen Vertakkingsfilters klikt u op + Toevoegen, en de Vertakkingsspecificatie wordt standaard op master ingesteld.

Klik in het dialoogvenster Save build pipeline and queue op Save & queue om handmatig een build te starten.

Select triggers

Hiermee worden ook triggers gebouwd na pushen of inchecken. Als u de voortgang van de build wilt controleren, gaat u naar het tabblad Builds . Zodra u hebt gecontroleerd of de build is uitgevoerd, definieert u een releasedefinitie waarmee uw toepassing in een cluster wordt geïmplementeerd.

Release-definitie maken

Selecteer in het linkerdeelvenster de optie Pipelines, daarna Releases en vervolgens + New Pipeline. Selecteer in Select a template de sjabloon Azure Service Fabric Deployment in de lijst en vervolgens Apply.

Choose release template

Selecteer Tasks, vervolgens Environment 1 en dan +New om een clusterverbinding toe te voegen.

Add cluster connection

Selecteer in de weergave Nieuwe Service Fabric-Verbinding maken ie verificatie op basis van certificaat of Microsoft Entra-id. Geef de verbindingsnaam mysftestcluster op en het clustereindpunt tcp://mysftestcluster.southcentralus.cloudapp.azure.com:19000 (of het eindpunt van het cluster waarin de implementatie wordt uitgevoerd).

Voor verificatie op basis van verificatie voegt u de vingerafdruk voor servercertificaat toe van het servercertificaat waarmee het cluster is gemaakt. Voeg in het clientcertificaat de basis-64-codering van het certificaatbestand van de client toe. Zie het pop-upitem met de Help voor dat veld voor informatie over hoe u de basis-64-representatie van het certificaat ophaalt. Voeg ook het wachtwoord voor het certificaat toe. U kunt het cluster- of het servercertificaat gebruiken als u geen apart clientcertificaat hebt.

Voor Microsoft Entra-referenties voegt u de vingerafdruk van het servercertificaat toe van het servercertificaat dat wordt gebruikt om het cluster te maken en de referenties die u wilt gebruiken om verbinding te maken met het cluster in de velden Gebruikersnaam en Wachtwoord.

Klik op Add om de clusterverbinding op te slaan.

Klik onder Agent Phase op Deploy Service Fabric Application. Klik op Docker Settings en klik vervolgens op Configure Docker settings. In register referentiebron selecteert u Azure Resource Manager Service Connection. Selecteer vervolgens uw Azure-abonnement.

Release pipeline agent

Voeg vervolgens een build-artefact toe aan de pijplijn, zodat met de releasedefinitie de uitvoer van de build kan worden gevonden. Selecteer Pijplijn en artefacten->+Toevoegen. Selecteer in Source (Build definition) de build-definitie die u eerder hebt gemaakt. Klik op Add om het build-artefact op te slaan.

Add artifact

Schakel een trigger voor continue implementatie in, zodat automatisch een release wordt gemaakt als de build wordt voltooid. Klik op het bliksempictogram in het artefact, schakel de trigger in en klik op Save om de release-definitie op te slaan.

Enable trigger

Selecteer + Release -> Een release maken -> Maken om handmatig een release te maken. U kunt de voortgang van de release volgen op het tabblad Releases.

Controleer of de implementatie is gelukt en de toepassing in het cluster wordt uitgevoerd. Open een webbrowser en ga naar http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Noteer de versie van de toepassing (in dit voorbeeld 1.0.0.20170616.3).

Wijzigingen doorvoeren en pushen, een release activeren

Controleer of de pijplijn voor continue integratie correct functioneert door enkele codewijzigingen aan te brengen in Azure DevOps.

Terwijl u de code schrijft, worden de wijzigingen automatisch in Visual Studio bijgehouden. Voer wijzigingen door in uw lokale Git-opslagplaats door het pictogram wijzigingen in behandeling te selecteren (Pending changes icon shows a pencil and a number.) op de statusbalk in de rechterbenedenhoek.

Voeg aan de weergave Changes in Team Explorer een bericht toe waarin u de update beschrijft en voer de wijzigingen door.

Commit all

Selecteer het pictogram van de niet-gepubliceerde wijzigingenstatusbalk (Unpublished changes) of de synchronisatieweergave in Team Explorer. Selecteer Push om de code bij te werken in Azure DevOps.

Push changes

Als u de wijzigingen naar Azure DevOps pusht, wordt er automatisch een build geactiveerd. Als de build-definitie wordt voltooid, wordt er automatisch een release gemaakt en wordt de toepassing in het cluster bijgewerkt.

Als u de voortgang van de build wilt controleren, schakelt u over naar het tabblad Builds in Team Explorer in Visual Studio. Als u hebt gecontroleerd dat de build correct wordt uitgevoerd, definieert u een release-definitie waarmee uw toepassing in een cluster wordt geïmplementeerd.

Controleer of de implementatie is gelukt en de toepassing in het cluster wordt uitgevoerd. Open een webbrowser en ga naar http://mysftestcluster.southcentralus.cloudapp.azure.com:19080/Explorer/. Noteer de versie van de toepassing (in dit voorbeeld 1.0.0.20170815.3).

Screenshot of the Voting app in Service Fabric Explorer. In the Essentials tab, the app version

De toepassing bijwerken

Breng in de toepassing wijzigingen aan de code aan. Sla de wijzigingen op en voer ze door aan de hand van de voorgaande stappen.

Zodra de upgrade van de toepassing wordt uitgevoerd, kunt u de voortgang ervan volgen in Service Fabric Explorer:

Screenshot of the Voting app in Service Fabric Explorer. An

Het kan enkele minuten duren voordat de toepassing is bijgewerkt. Als het bijwerken is voltooid, wordt de volgende versie door de toepassing uitgevoerd. In dit voorbeeld 1.0.0.20170815.4.

Screenshot of the Voting app in Service Fabric Explorer. In the Essentials tab, the updated app version

Volgende stappen

In deze zelfstudie heeft u het volgende geleerd:

  • Broncodebeheer aan uw project toevoegen
  • Een build-definitie maken
  • Release-definitie maken
  • Automatisch een upgrade en een toepassing implementeren

In het volgende gedeelte van de zelfstudie krijgt u informatie over het instellen van bewaking voor de container.