Share via


jobs.deployment.strategy.rolling definition

En löpande distribution ersätter instanser av den tidigare versionen av ett program med instanser av den nya versionen av programmet på en fast uppsättning virtuella datorer (rullande uppsättning) i varje iteration.

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.

Definitioner som refererar till den här definitionen: jobs.deployment.strategy

Egenskaper

maxParallel Sträng.
Maximalt antal jobb som körs parallellt.

preDeploypreDeployHook.
Fördistributionskrok för rullande distributionsstrategi.

deploydeployHook.
Distribuera hook för löpande distributionsstrategi.

routeTrafficrouteTrafficHook.
Dirigera trafikkroken för rullande distributionsstrategi.

postRouteTrafficpostRouteTrafficHook.
Postroute trafikkrok för rullande distributionsstrategi.

ononSuccessOrFailureHook.
Vid lyckad eller misslyckad krok för rullande distributionsstrategi.

Kommentarer

Azure Pipelines stöder för närvarande endast den löpande strategin för VM-resurser.

En löpande distribution väntar till exempel vanligtvis på att distributionerna på varje uppsättning virtuella datorer ska slutföras innan du fortsätter till nästa uppsättning distributioner. Du kan göra en hälsokontroll efter varje iteration och om ett betydande problem uppstår kan den löpande distributionen stoppas.

Löpande distributioner kan konfigureras genom att ange nyckelordet rolling: under strategy: noden. Variabeln strategy.name är tillgänglig i det här strategiblocket, som tar namnet på strategin. I det här fallet rullande.

Alla livscykelkrokar stöds och livscykelhookjobb skapas för att köras på varje virtuell dator.

preDeploy, deploy, routeTrafficoch postRouteTraffic körs en gång per batchstorlek som definieras av maxParallel. Sedan körs antingen on: success eller on: failure .

Med maxParallel: <# or % of VMs>kan du styra antalet/procentandelen av de virtuella datormål som ska distribueras parallellt. Detta säkerställer att appen körs på dessa datorer och kan hantera begäranden medan distributionen sker på resten av datorerna, vilket minskar den totala stilleståndstiden.

Anteckning

Det finns några kända luckor i den här funktionen. När du till exempel försöker utföra en fas igen körs distributionen på alla virtuella datorer, inte bara misslyckade mål.

Beskrivningar av livscykelkrokar

preDeploy: Används för att köra steg som initierar resurser innan programdistributionen startar.

deploy: Används för att köra steg som distribuerar ditt program. Ladda ned artefaktaktivitet matas bara in automatiskt i kroken deploy för distributionsjobb. Om du vill sluta ladda ned artefakter använder - download: none eller väljer du specifika artefakter att ladda ned genom att ange ladda ned pipelineartefaktaktivitet.

routeTraffic: Används för att köra steg som hanterar trafiken till den uppdaterade versionen.

postRouteTraffic: Används för att köra stegen när trafiken har dirigerats. Vanligtvis övervakar dessa uppgifter hälsotillståndet för den uppdaterade versionen för definierat intervall.

on: failure eller on: success: Används för att köra steg för återställningsåtgärder eller rensning.

Exempel

Följande rullande strategiexempel för virtuella datorer uppdaterar upp till fem mål i varje iteration. maxParallel avgör antalet mål som kan distribueras till parallellt. Valet står för absolut antal eller procentandel av mål som måste vara tillgängliga när som helst, exklusive de mål som distribueras till. Den används också för att fastställa framgångs- och felvillkoren under distributionen.

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

Se även