Delen via


jobs.deployment.strategy.rolling definition

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.

preDeploy preDeployHook.
Haak vooraf implementeren voor implementatiestrategie voor rolling.

deploy deployHook.
Hook implementeren voor rolling implementatiestrategie.

routeTraffic routeTrafficHook.
Route traffic hook voor rolling implementatiestrategie.

postRouteTraffic postRouteTrafficHook.
Post route traffic hook voor rolling implementatiestrategie.

on onSuccessOrFailureHook.
Over geslaagde of mislukte hook voor rolling implementatiestrategie.

Opmerkingen

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

Een rolling implementatie wacht bijvoorbeeld meestal op implementaties op elke set virtuele machines die moeten worden voltooid voordat u verdergaat met de volgende set implementaties. U kunt een statuscontrole uitvoeren na elke iteratie en als er een belangrijk probleem optreedt, kan de rolling implementatie worden gestopt.

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

Alle levenscyclushook wordt ondersteund en er worden levenscyclushooktaken gemaakt om op elke VIRTUELE machine te worden uitgevoerd.

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

Met maxParallel: <# or % of VMs>kunt u het aantal/percentage virtuele-machinedoelen bepalen waarop deze parallel moet worden geïmplementeerd. Dit zorgt ervoor dat de app wordt uitgevoerd op deze machines en kan aanvragen 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, niet alleen 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. Downloadartefacttaak wordt alleen automatisch geïnjecteerd in de deploy hook voor implementatietaken. Als u wilt stoppen met het downloaden van artefacten, gebruikt u - download: none of kiest u specifieke artefacten die u wilt downloaden door taak Pijplijnartefact downloadenop te geven.

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

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 een gedefinieerd interval.

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

Voorbeelden

In het volgende rolling strategievoorbeeld voor VM's worden maximaal vijf doelen in elke iteratie bijgewerkt. maxParallel bepaalt het aantal doelen dat parallel kan worden geïmplementeerd. De selectie houdt rekening met het absolute aantal of het percentage doelen dat op elk gewenst moment beschikbaar moet blijven, met uitzondering van de doelen waarop wordt geïmplementeerd. Het wordt ook gebruikt om de voorwaarden voor succes en fouten tijdens de 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