jobs.deployment.strategy.rolling definíció

A működés közbeni üzembe helyezés az alkalmazás előző verziójának példányait az alkalmazás új verziójának példányaival helyettesíti az egyes iterációkban rögzített virtuális gépeken (gördülő készleten).

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.

A definícióra hivatkozó definíciók: jobs.deployment.strategy

Tulajdonságok

maxParallel Karakterlánc.
Párhuzamosan futó feladatok maximális száma.

preDeploypreDeployHook.
Üzembe helyezési horog a működés közbeni üzembe helyezési stratégiához.

deploydeployHook.
A hook üzembe helyezése a működés közbeni üzembe helyezési stratégiához.

routeTrafficrouteTrafficHook.
Forgalomhook irányítása a működés közbeni üzembe helyezési stratégiához.

postRouteTrafficpostRouteTrafficHook.
Útválasztás utáni forgalomhook a működés közbeni üzembe helyezési stratégiához.

ononSuccessOrFailureHook.
Sikeres vagy sikertelen üzembehelyezési stratégia esetén.

Megjegyzések

Az Azure Pipelines jelenleg csak a virtuálisgép-erőforrások működés közbeni stratégiáját támogatja.

A működés közbeni üzembe helyezés például általában megvárja, amíg az egyes virtuális gépek üzembe helyezése befejeződik, mielőtt továbblép a következő üzembe helyezési csoportra. Az egyes iterációk után állapot-ellenőrzést végezhet, és ha jelentős probléma merül fel, a működés közbeni üzembe helyezés leállítható.

A működés közbeni üzemelő példányok a csomópont alatti strategy: kulcsszó rolling: megadásával konfigurálhatók. A strategy.name változó ebben a stratégiai blokkban érhető el, amely a stratégia nevét veszi fel. Ebben az esetben gördül.

Az összes életciklushook támogatott, és az életciklushook-feladatok létrejönnek az egyes virtuális gépeken való futtatáshoz.

preDeploy, deploy, routeTrafficés postRouteTraffic a végrehajtása a által maxParallelmeghatározott kötegméretenként egyszer történik. Ezután vagy on: successon: failure végrehajtja a parancsot.

A használatával maxParallel: <# or % of VMs>szabályozhatja a virtuálisgép-példányok számát/százalékos arányát a párhuzamos üzembe helyezéshez. Ez biztosítja, hogy az alkalmazás ezeken a gépeken fusson, és képes kezelni a kéréseket, miközben az üzembe helyezés a többi gépen történik, ami csökkenti a teljes állásidőt.

Megjegyzés

A funkció néhány ismert hiányosságot tartalmaz. Ha például újrapróbálkozott egy fázissal, az újrafuttatja az üzembe helyezést az összes virtuális gépen, nem csak a sikertelen célokon.

Az életciklus-horgok leírása

preDeploy: Az erőforrások inicializálására szolgáló lépések futtatására szolgál az alkalmazás üzembe helyezése előtt.

deploy: Az alkalmazást üzembe helyező lépések futtatására szolgál. Az összetevő-feladat letöltése csak az deploy üzembehelyezési feladatok horogjában lesz automatikusan beszúrva. Az összetevők letöltésének leállításához használja - download: none vagy válassza ki a letölteni kívánt összetevőket a Folyamatösszetevő letöltése feladat megadásával.

routeTraffic: A frissített verzió forgalmát kiszolgáló lépések futtatására szolgál.

postRouteTraffic: A forgalom irányítása után futtatja a lépéseket. Ezek a feladatok általában meghatározott időközönként figyelik a frissített verzió állapotát.

on: failure vagy on: success: A visszaállítási műveletek vagy a törlés lépéseinek futtatására szolgál.

Példák

Az alábbi, virtuális gépekre vonatkozó gördülő stratégia minden iterációban legfeljebb öt célt frissít. maxParallel ezzel párhuzamosan meghatározza az üzembe helyezhető célok számát. A kijelölés a célok abszolút számát vagy százalékos arányát adja meg, amelyeknek bármikor elérhetőnek kell maradniuk, kivéve az üzembe helyezett célokat. Az üzembe helyezés során a siker és a hiba feltételeinek meghatározására is használatos.

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

Lásd még