Toepassingsimplementaties naar Azure Spring Cloud

In dit artikel wordt beschreven hoe u de Azure Spring Cloud azure-pijplijnen gebruikt om toepassingen te implementeren.

Met hulpprogramma's voor continue integratie en continue levering kunt u snel updates implementeren voor bestaande toepassingen met minimale inspanningen en risico's. Met Azure DevOps kunt u deze belangrijke taken organiseren en controleren.

In de volgende video wordt end-to-end automatisering beschreven met behulp van hulpprogramma's van uw keuze, waaronder Azure Pipelines.


Een verbinding Azure Resource Manager service maken

Maak eerst een Azure Resource Manager serviceverbinding met uw Azure DevOps-project. Zie voor instructies Verbinding maken naar Microsoft Azure. Zorg ervoor dat u hetzelfde abonnement selecteert dat u gebruikt voor uw Azure Spring Cloud service-exemplaar.

Apps bouwen en implementeren

U kunt nu uw projecten bouwen en implementeren met behulp van een reeks taken. De volgende Azure Pipelines-sjabloon definieert variabelen, een .NET Core-taak voor het bouwen van de toepassing en een Azure Spring Cloud om de toepassing te implementeren.

variables:
  workingDirectory: './steeltoe-sample'
  planetMainEntry: 'Microsoft.Azure.SpringCloud.Sample.PlanetWeatherProvider.dll'
  solarMainEntry: 'Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.dll'
  planetAppName: 'planet-weather-provider'
  solarAppName: 'solar-system-weather'
  serviceName: '<your service name>'

steps:
# Restore, build, publish and package the zipped planet app
- task: DotNetCoreCLI@2
  inputs:
    command: 'publish'
    publishWebProjects: false
    arguments: '--configuration Release'
    zipAfterPublish: false
    modifyOutputPath: false
    workingDirectory: $(workingDirectory)

# Deploy the planet app
- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<Service Connection Name>'
    Action: 'Deploy'
    AzureSpringCloud: $(serviceName)
    AppName: 'testapp'
    UseStagingDeployment: false
    DeploymentName: 'default'
    Package: $(workingDirectory)/src/$(planetAppName)/publish-deploy-planet.zip
    RuntimeVersion: 'NetCore_31'
    DotNetCoreMainEntryPath: $(planetMainEntry)

# Deploy the solar app
- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<Service Connection Name>'
    Action: 'Deploy'
    AzureSpringCloud: $(serviceName)
    AppName: 'testapp'
    UseStagingDeployment: false
    DeploymentName: 'default'
    Package: $(workingDirectory)/src/$(solarAppName)/publish-deploy-solar.zip
    RuntimeVersion: 'NetCore_31'
    DotNetCoreMainEntryPath: $(solarMainEntry)

Een Azure Spring Cloud en een Azure DevOps-project instellen

Gebruik eerst de volgende stappen om een bestaand exemplaar van Azure Spring Cloud in te stellen voor gebruik met Azure DevOps.

  1. Ga naar uw Azure Spring Cloud en maak vervolgens een nieuwe app.
  2. Ga naar de Azure DevOps-portal en maak een nieuw project onder uw gekozen organisatie. Als u geen Azure DevOps-organisatie hebt, kunt u er gratis een maken.
  3. Selecteer Opslagplaatsen en importeer vervolgens de Spring Boot democode in de opslagplaats.

Een verbinding Azure Resource Manager service maken

Maak vervolgens een Azure Resource Manager serviceverbinding met uw Azure DevOps-project. Zie voor instructies Verbinding maken naar Microsoft Azure. Zorg ervoor dat u hetzelfde abonnement selecteert dat u gebruikt voor uw Azure Spring Cloud service-exemplaar.

Apps bouwen en implementeren

U kunt nu uw projecten bouwen en implementeren met behulp van een reeks taken. In de volgende secties ziet u verschillende opties voor het implementeren van uw app met behulp van Azure DevOps.

Implementeren met behulp van een pijplijn

Volg deze stappen om te implementeren met behulp van een pijplijn:

  1. Selecteer Pijplijnen en maak vervolgens een nieuwe pijplijn met een Maven-sjabloon.

  2. Bewerk het bestand azure-pipelines.yml om het veld in te stellen op mavenPomFile 'complete/pom.xml'.

  3. Selecteer Assistent aan de rechterkant tonen en selecteer vervolgens de Azure Spring Cloud sjabloon.

  4. Selecteer de serviceverbinding die u hebt gemaakt voor uw Azure-abonnement en selecteer vervolgens uw Spring Cloud-exemplaar en app-exemplaar.

  5. Schakel Faseringsimplementatie gebruiken uit.

  6. Stel Pakket of map in op complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.

  7. Selecteer Toevoegen om deze taak toe te voegen aan uw pijplijn.

    Uw pijplijninstellingen moeten overeenkomen met de volgende afbeelding.

    Schermopname van pijplijninstellingen.

    U kunt uw projecten ook bouwen en implementeren met behulp van de volgende pijplijnsjabloon. In dit voorbeeld wordt eerst een Maven-taak voor het bouwen van de toepassing definieert, gevolgd door een tweede taak die het JAR-bestand implementeert met behulp van de Azure Spring Cloud-taak voor Azure Pipelines.

    steps:
    - task: Maven@3
      inputs:
        mavenPomFile: 'complete/pom.xml'
    - task: AzureSpringCloud@0
      inputs:
        azureSubscription: '<your service connection name>'
        Action: 'Deploy'
        AzureSpringCloud: <your Azure Spring Cloud service>
        AppName: <app-name>
        UseStagingDeployment: false
        DeploymentName: 'default'
        Package: ./target/your-result-jar.jar
    
  8. Selecteer Opslaan en uitvoeren en wacht tot de taak is uitgevoerd.

Blauw-groene implementaties

De implementatie die in de vorige sectie wordt weergegeven, ontvangt toepassingsverkeer direct na de implementatie. Hiermee kunt u de toepassing testen in de productieomgeving voordat deze klantverkeer ontvangt.

Het pijplijnbestand bewerken

Als u de toepassing op dezelfde manier wilt bouwen als eerder is weergegeven en deze wilt implementeren in een faseringsimplementatie, gebruikt u de volgende sjabloon. In dit voorbeeld moet de faseringsimplementatie al bestaan. Zie Blauw-groene implementatiestrategieën voor een alternatieve benadering.

steps:
- task: Maven@3
  inputs:
    mavenPomFile: 'pom.xml'
- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<your service connection name>'
    Action: 'Deploy'
    AzureSpringCloud: <your Azure Spring Cloud service>
    AppName: <app-name>
    UseStagingDeployment: true
    Package: ./target/your-result-jar.jar
- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<your service connection name>'
    Action: 'Set Production'
    AzureSpringCloud: <your Azure Spring Cloud service>
    AppName: <app-name>
    UseStagingDeployment: true

Gebruik de sectie Releases

In de volgende stappen ziet u hoe u een blauw-groene implementatie kunt inschakelen in de sectie Releases.

  1. Selecteer Pijplijnen en maak een nieuwe pijplijn voor uw Maven-build en publiceer artefact.

    1. Selecteer Azure Repos Git als uw codelocatie.
    2. Selecteer een opslagplaats waar uw code zich bevindt.
    3. Selecteer de Maven-sjabloon en wijzig het bestand om het veld in mavenPomFile te stellen op complete/pom.xml .
    4. Selecteer Aan de rechterkant Assistent tonen en selecteer de sjabloon Buildartefacten publiceren.
    5. Stel Pad in om te publiceren naar complete/target/spring-boot-complete-0.0.1-SNAPSHOT.jar.
    6. Selecteer Opslaan en uitvoeren.
  2. Selecteer Releases en vervolgens Release maken.

  3. Voeg een nieuwe pijplijn toe en selecteer Lege taak om een taak te maken.

  4. Selecteer onder Fasen de taak regel 1, 0

    Schermopname van waar u kunt selecteren om een taak aan een taak toe te voegen.

    1. Selecteer de + om een taak aan de taak toe te voegen.
    2. Zoek de sjabloon Azure Spring Cloud en selecteer vervolgens Toevoegen om de taak aan de taak toe te voegen.
    3. Selecteer Azure Spring Cloud Implementeren: om de taak te bewerken.
    4. Vul deze taak in met de gegevens van uw app en schakel vervolgens Faseringsimplementatie gebruiken uit.
    5. Schakel Een nieuwe faseringsimplementatie maken in als deze nog niet bestaat en voer een naam in Implementatie in.
    6. Selecteer Opslaan om deze taak op te slaan.
    7. Selecteer OK.
  5. Selecteer Pijplijn en selecteer vervolgens Een artefact toevoegen.

    1. Selecteer onder Bron (build-pijplijn) de pijplijn die u eerder hebt gemaakt.
    2. Selecteer Toevoegen en vervolgens Opslaan.
  6. Selecteer 1 taak, 1 taak onder Fasen.

  7. Navigeer naar Azure Spring Cloud deploy-taak in fase 1 en selecteer vervolgens het beletselteken naast Pakket of map.

  8. Selecteer spring-boot-complete-0.0.1-SNAPSHOT.jar in het dialoogvenster en selecteer vervolgens OK.

    Schermopname van het dialoogvenster Een bestand of map selecteren.

  9. Selecteer de + om een andere Azure Spring Cloud aan de taak toe te voegen.

  10. Wijzig de actie in Productie-implementatie instellen.

  11. Selecteer Opslaan en vervolgens Release maken om de implementatie automatisch te starten.

Selecteer Release weergeven om de huidige releasestatus van uw app te controleren. Nadat deze taak is voltooid, gaat u naar de Azure Portal om de status van uw app te controleren.

Implementeren vanuit de bron

Gebruik de volgende pijplijnsjabloon om rechtstreeks in Azure te implementeren zonder een afzonderlijke buildstap.

- task: AzureSpringCloud@0
  inputs:
    azureSubscription: '<your service connection name>'
    Action: 'Deploy'
    AzureSpringCloud: <your Azure Spring Cloud service>
    AppName: <app-name>
    UseStagingDeployment: false
    DeploymentName: 'default'
    Package: $(Build.SourcesDirectory)

Volgende stappen