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.
preDeploy
preDeployHook.
Pre deploy hook for rolling deployment strategy.
deploy
deployHook.
Bereitstellen eines Hooks für eine fortlaufende Bereitstellungsstrategie.
routeTraffic
routeTrafficHook.
Weiterleiten des Datenverkehrshakens für die rollende Bereitstellungsstrategie.
postRouteTraffic
postRouteTrafficHook.
Postroute-Datenverkehrshaken für eine rollierende Bereitstellungsstrategie.
on
onSuccessOrFailureHook.
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
, routeTraffic
und postRouteTraffic
werden einmal pro durch definierter maxParallel
Batchgröß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: failure
oder 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