Megosztás a következőn keresztül:


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 sztring.
Párhuzamosan futó feladatok maximális száma.

preDeploy preDeployHook.
Üzembe helyezés előtti horog működés közbeni üzembe helyezési stratégiához.

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

routeTraffic routeTrafficHook.
Forgalmi horog irányítása a gördülő üzembe helyezési stratégiához.

postRouteTraffic postRouteTrafficHook.
Útválasztás utáni forgalmi horog a gördülő üzembe helyezési stratégiához.

on onSuccessOrFailureHook.
Sikeres vagy sikertelen üzembe helyezési stratégia esetén.

Megjegyzések

Az Azure Pipelines jelenleg csak a virtuálisgép-erőforrások gördülő stratégiáját támogatja.

Egy gördülő üzembe helyezés például általában megvárja az egyes virtuális gépek üzembe helyezését, 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 gördülő üzemelő példányok a rolling: csomópont alatti kulcsszó strategy: 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.

Minden életciklus-horog támogatott, és az életciklus-horogfeladatok az egyes virtuális gépeken való futtatáshoz jönnek létre.

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

A maxParallel: <# or % of VMs>segítségével szabályozhatja a virtuálisgép-célok számát/százalékos arányát, amellyel párhuzamosan üzembe helyezhető. 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 az általános á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 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ás üzembe helyezésének lépéseinek futtatására szolgál. Az összetevő-feladat letöltése csak az üzembe helyezési feladatok deploy horogba lesz automatikusan injektálva. Az összetevők letöltésének leállításához használja a - download: none, vagy válassza ki a letölteni kívánt összetevőket a Folyamatösszetevő-feladat letöltésemegadásával.

routeTraffic: A frissített verzió felé történő forgalmat 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

A virtuális gépekre vonatkozó alábbi gördülőstratégia-példa az egyes iterációkban legfeljebb öt célt frissít. maxParallel meghatározza, hogy hány célhely helyezhető üzembe párhuzamosan. 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 azokat a célokat, amelyeken üzembe helyezve vannak. Az üzembe helyezés során a siker és a hibafeltételek meghatározására is használható.

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