definitie jobs.deployment.strategy.rolling

Een rolling implementatie vervangt exemplaren van de vorige versie van een toepassing door exemplaren van de nieuwe versie van de toepassing op een vaste set virtuele machines (rolling set) in elke iteratie.

rolling:
  maxParallel: string # Maximum number of jobs running in parallel.
  preDeploy: # Pre deploy hook for rolling deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where pre deploy steps will run.
  deploy: # Deploy hook for rolling deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where deploy steps will run.
  routeTraffic: # Route traffic hook for rolling deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where route traffic steps will run.
  postRouteTraffic: # Post route traffic hook for rolling deployment strategy.
    steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
    pool: string | pool # Pool where post route traffic steps will run.
  on: # On success or failure hook for rolling deployment strategy.
    failure: # Runs on failure of any step.
      steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
      pool: string | pool # Pool where post on failure steps will run.
    success: # Runs on success of all of the steps.
      steps: [ task | script | powershell | pwsh | bash | checkout | download | downloadBuild | getPackage | publish | template | reviewApp ] # A list of steps to run.
      pool: string | pool # Pool where on success steps will run.

Definities die naar deze definitie verwijzen: jobs.deployment.strategy

Eigenschappen

maxParallel Tekenreeks.
Maximum aantal taken dat parallel wordt uitgevoerd.

preDeploypreDeployHook.
Pre deploy hook voor rolling implementatiestrategie.

deploydeployHook.
Implementeer een hook voor een rolling implementatiestrategie.

routeTrafficrouteTrafficHook.
Routeverkeershook voor rolling implementatiestrategie.

postRouteTrafficpostRouteTrafficHook.
Verkeershook voor doorlopende implementatiestrategie na route.

ononSuccessOrFailureHook.
Bij geslaagde of mislukte hook voor rolling implementatiestrategie.

Opmerkingen

Azure Pipelines bieden momenteel alleen ondersteuning voor de rolling-strategie voor VM-resources.

Een doorlopende implementatie wacht bijvoorbeeld meestal totdat implementaties op elke set virtuele machines zijn voltooid voordat u doorgaat met de volgende set implementaties. U kunt na elke iteratie een statuscontrole uitvoeren. Als er een belangrijk probleem optreedt, kan de rolling implementatie worden gestopt.

Rolling implementaties kunnen worden geconfigureerd door het trefwoord rolling: onder het strategy: knooppunt op te geven. De strategy.name variabele is beschikbaar in dit strategieblok, dat de naam van de strategie aanneemt. In dit geval rollend.

Alle levenscyclushooks worden ondersteund en er worden levenscyclushooktaken gemaakt om op elke VM te worden uitgevoerd.

preDeploy, deploy, routeTrafficen postRouteTraffic worden eenmaal uitgevoerd per batchgrootte die is gedefinieerd door maxParallel. Vervolgens wordt of on: successon: failure uitgevoerd.

Met maxParallel: <# or % of VMs>kunt u het aantal/percentage virtuele-machinedoelen bepalen waarop u parallel wilt implementeren. Dit zorgt ervoor dat de app wordt uitgevoerd op deze machines en aanvragen kan verwerken terwijl de implementatie plaatsvindt op de rest van de machines, waardoor de algehele downtime wordt verminderd.

Notitie

Er zijn enkele bekende hiaten in deze functie. Wanneer u bijvoorbeeld een fase opnieuw probeert, wordt de implementatie opnieuw uitgevoerd op alle VM's en niet alleen op mislukte doelen.

Beschrijvingen van levenscyclushook

preDeploy: wordt gebruikt om stappen uit te voeren waarmee resources worden geïnitialiseerd voordat de implementatie van de toepassing wordt gestart.

deploy: wordt gebruikt om stappen uit te voeren waarmee uw toepassing wordt geïmplementeerd. De taak voor het downloaden van artefacten wordt automatisch alleen geïnjecteerd in de deploy hook voor implementatietaken. Als u wilt stoppen met het downloaden van artefacten, gebruikt - download: none of kiest u specifieke artefacten die u wilt downloaden door de taak Pijplijnartefact downloaden op te geven.

routeTraffic: wordt gebruikt om stappen uit te voeren die het verkeer naar de bijgewerkte versie verwerken.

postRouteTraffic: wordt gebruikt om de stappen uit te voeren nadat het verkeer is gerouteerd. Normaal gesproken bewaken deze taken de status van de bijgewerkte versie voor het gedefinieerde interval.

on: failure of on: success: wordt gebruikt om stappen uit te voeren voor terugdraaiacties of opschonen.

Voorbeelden

In het volgende voorbeeld van een rolling strategie voor VM's worden maximaal vijf doelen in elke iteratie bijgewerkt. maxParallel bepaalt het aantal doelen waarop de implementatie parallel kan worden uitgevoerd. Bij de selectie wordt rekening gehouden met een absoluut aantal of percentage doelen dat op elk gewenst moment beschikbaar moet blijven, met uitzondering van de doelen waarop wordt geïmplementeerd. De selectie wordt ook gebruikt om de voorwaarden voor een geslaagde of mislukte implementatie te bepalen.

jobs: 
- deployment: VMDeploy
  displayName: web
  environment:
    name: smarthotel-dev
    resourceType: VirtualMachine
  strategy:
    rolling:
      maxParallel: 5  #for percentages, mention as x%
      preDeploy:
        steps:
        - download: current
          artifact: drop
        - script: echo initialize, cleanup, backup, install certs
      deploy:
        steps:
        - task: IISWebAppDeploymentOnMachineGroup@0
          displayName: 'Deploy application to Website'
          inputs:
            WebSiteName: 'Default Web Site'
            Package: '$(Pipeline.Workspace)/drop/**/*.zip'
      routeTraffic:
        steps:
        - script: echo routing traffic
      postRouteTraffic:
        steps:
        - script: echo health check post-route traffic
      on:
        failure:
          steps:
          - script: echo Restore from backup! This is on failure
        success:
          steps:
          - script: echo Notify! This is on success

Zie ook