jobs.deployment.strategy.rolling definition

Eine rollierende Bereitstellung ersetzt Instanzen der vorherigen Version einer Anwendung durch Instanzen der neuen Version der Anwendung auf einem festen Satz von virtuellen Computern (rolling set) in jeder 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.

Definitionen, die auf diese Definition verweisen: jobs.deployment.strategy

Eigenschaften

maxParallel Schnur.
Maximale Anzahl parallel ausgeführter Aufträge.

preDeploypreDeployHook.
Pre deploy hook for rolling deployment strategy.

deploydeployHook.
Bereitstellen eines Hooks für eine fortlaufende Bereitstellungsstrategie.

routeTrafficrouteTrafficHook.
Weiterleiten des Datenverkehrshakens für die rollende Bereitstellungsstrategie.

postRouteTrafficpostRouteTrafficHook.
Postroute-Datenverkehrshaken für eine rollierende Bereitstellungsstrategie.

ononSuccessOrFailureHook.
Bei Erfolgs- oder Fehlerhaken für die rollierende Bereitstellungsstrategie.

Bemerkungen

Azure Pipelines unterstützt derzeit nur die Rollstrategie für VM-Ressourcen.

Beispielsweise wartet eine rollierende Bereitstellung in der Regel, bis die Bereitstellungen auf den einzelnen virtuellen Computern abgeschlossen sind, bevor sie mit der nächsten Gruppe von Bereitstellungen fortfahren. Sie könnten nach jeder Iteration eine Integritätsprüfung durchführen, und wenn ein schwerwiegendes Problem auftritt, kann die rollierende Bereitstellung beendet werden.

Rollende Bereitstellungen können konfiguriert werden, indem Sie die Schlüsselwort (keyword) rolling: unter dem strategy: Knoten angeben. Die strategy.name Variable ist in diesem Strategieblock verfügbar, der den Namen der Strategie übernimmt. In diesem Fall rollt.

Alle Lebenszyklus-Hooks werden unterstützt, und Lebenszyklus-Hookaufträge werden für die Ausführung auf jedem virtuellen Computer erstellt.

preDeploy, deploy, routeTrafficund postRouteTraffic werden einmal pro durch definierter maxParallelBatchgröße ausgeführt. Danach wird entweder on: success oder on: failure ausgeführt.

Mit maxParallel: <# or % of VMs>können Sie die Anzahl/den Prozentsatz von VM-Zielen steuern, für die parallel bereitgestellt werden soll. Dadurch wird sichergestellt, dass die App auf diesen Computern ausgeführt wird und Anforderungen verarbeiten kann, während die Bereitstellung auf den restlichen Computern stattfindet, wodurch die Ausfallzeiten insgesamt reduziert werden.

Hinweis

Es gibt einige bekannte Lücken in diesem Feature. Wenn Sie z. B. eine Phase wiederholen, wird die Bereitstellung auf allen VMs erneut ausgeführt, nicht nur auf Zielen mit Fehlern.

Beschreibungen von Lebenszyklushaken

preDeploy: Wird verwendet, um Schritte auszuführen, die Ressourcen vor Beginn der Anwendungsbereitstellung initialisieren.

deploy: Wird verwendet, um Schritte auszuführen, die Ihre Anwendung bereitstellen. Der Downloadartefakttask wird nur automatisch in den deploy Hook für Bereitstellungsaufträge eingefügt. Um das Herunterladen von Artefakten zu beenden, verwenden - download: none Oder wählen Sie bestimmte Artefakte zum Herunterladen aus, indem Sie den Task "Pipelineartefakt herunterladen" angeben.

routeTraffic: Wird verwendet, um Schritte auszuführen, die den Datenverkehr für die aktualisierte Version bereitstellen.

postRouteTraffic: Wird verwendet, um die Schritte auszuführen, nachdem der Datenverkehr weitergeleitet wurde. In der Regel überwachen diese Aufgaben die Integrität der aktualisierten Version für ein definiertes Intervall.

on: failureoder on: success: Wird verwendet, um Schritte für Rollbackaktionen oder sauber auszuführen.

Beispiele

Das folgende Rollstrategiebeispiel für VMs aktualisiert bis zu fünf Ziele in jeder Iteration. maxParallel bestimmt die Anzahl von Zielen, auf denen eine parallele Bereitstellung erfolgen kann. Die Auswahl berücksichtigt die absolute Anzahl oder einen Prozentsatz der Ziele, die zu jedem Zeitpunkt verfügbar bleiben müssen, ausgenommen die Ziele, auf denen die Bereitstellung erfolgt. Hiermit werden auch die Erfolgs- und Fehlerbedingungen während der Bereitstellung bestimmt.

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

Weitere Informationen