jobs.deployment.strategy.rolling definition

Nasazení se zajištěním provozu nahradí instance předchozí verze aplikace instancemi nové verze aplikace na pevné sadě virtuálních počítačů (rolling set) v každé iteraci.

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.

Definice, které odkazují na tuto definici: jobs.deployment.strategy

Vlastnosti

maxParallel Řetězec.
Maximální počet paralelně spuštěných úloh

preDeploypreDeployHook.
Háček před nasazením pro strategii postupného nasazení

deploydeployHook.
Nasazení hooku pro strategii postupného nasazení

routeTrafficrouteTrafficHook.
Háček směrování provozu pro strategii postupného nasazení

postRouteTrafficpostRouteTrafficHook.
Háček provozu po směrování pro strategii postupného nasazení

ononSuccessOrFailureHook.
Při úspěchu nebo selhání pro strategii postupného nasazení.

Poznámky

Azure Pipelines v současné době podporuje pouze strategii postupného zavádění prostředků virtuálních počítačů.

Například nasazení se zajištěním provozu obvykle čeká na dokončení nasazení na každé sadě virtuálních počítačů, než přejde k další sadě nasazení. Po každé iteraci můžete provést kontrolu stavu, a pokud dojde k významnému problému, nasazení se zajištěním provozu je možné zastavit.

Nasazení se zajištěním provozu je možné nakonfigurovat zadáním klíčového slova rolling: v strategy: uzlu. Proměnná strategy.name je k dispozici v tomto bloku strategie, který přebírá název strategie. V tomto případě to bude klouzavý.

Podporují se všechny hooky životního cyklu a vytvářejí se úlohy zavěšení životního cyklu, které se poběží na každém virtuálním počítači.

preDeploy, deploy, routeTraffica postRouteTraffic se spouštějí jednou pro každou velikost dávky definovanou parametrem maxParallel. Pak se provede buď nebo on: successon: failure .

Pomocí maxParallel: <# or % of VMs>nástroje můžete řídit počet/procento cílů virtuálních počítačů, na které se mají nasadit paralelně. Tím se zajistí, že aplikace běží na těchto počítačích a bude schopná zpracovávat požadavky, zatímco nasazení probíhá na zbývajících počítačích, což snižuje celkové prostoje.

Poznámka

Tato funkce obsahuje několik známých mezer. Například při opakování fáze se nasazení znovu spustí na všech virtuálních počítačích, nejen na neúspěšných cílech.

Popisy zachycení životního cyklu

preDeploy: Slouží ke spuštění kroků, které inicializují prostředky před spuštěním nasazení aplikace.

deploy: Slouží ke spuštění kroků, které nasadí vaši aplikaci. Úloha artefaktu stažení se automaticky vloží jenom do háku deploy pro úlohy nasazení. Pokud chcete zastavit stahování artefaktů, použijte - download: none nebo zvolte konkrétní artefakty ke stažení zadáním úlohy Stáhnout artefakt kanálu.

routeTraffic: Slouží ke spuštění kroků, které obsluhují provoz do aktualizované verze.

postRouteTraffic: Slouží ke spuštění kroků po směrování provozu. Tyto úlohy obvykle monitorují stav aktualizované verze po definovaný interval.

on: failure nebo on: success: Slouží ke spuštění kroků pro akce vrácení zpět nebo vyčištění.

Příklady

Následující příklad strategie zajištění provozu pro virtuální počítače aktualizuje v každé iteraci až pět cílů. maxParallel určí počet cílů, na které je možné paralelně nasadit. Výběr počítá s absolutním počtem nebo procentem cílů, které musí zůstat kdykoli dostupné, s výjimkou cílů, na které se nasazují. Používá se také k určení podmínek úspěchu a selhání během nasazení.

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

Viz také