jobs.deployment.strategy definition
Mit einer Bereitstellungsstrategie können Sie konfigurieren, wie das Update bereitgestellt wird.
Definitionen, die auf diese Definition verweisen: jobs.deployment
Implementierungen
Implementierung | Beschreibung |
---|---|
Strategie: runOnce | Führen Sie die Bereitstellungsstrategie einmal aus. |
Strategie: rollierendes | Parallele Bereitstellungsstrategie. |
Strategie: canary | Canary-Bereitstellungsstrategie. |
Bemerkungen
Wenn Sie Anwendungsupdates bereitstellen, ist es wichtig, dass die Technik, die Sie zum Übermitteln des Updates verwenden, Folgendes gilt:
- Aktivieren der Initialisierung.
- Bereitstellen des Updates.
- Weiterleiten des Datenverkehrs an die aktualisierte Version.
- Testen der aktualisierten Version nach dem Weiterleiten des Datenverkehrs.
- Wenn ein Fehler auftritt, führen Sie Schritte zum Wiederherstellen der letzten bekannten fehlerfreien Version aus.
Dies erreichen wir mithilfe von Lifecycle-Hooks, die Schritte während der Bereitstellung ausführen können. Jeder der Lifecycle-Hooks wird je nach Pool-Attribut in einen Agent- oder Serverauftrag (oder einen Container oder Validierungsauftrag in der Zukunft) aufgelöst. Standardmäßig erben die Lifecycle-Hooks den vom Bereitstellungsauftrag angegebenen Pool.
Bereitstellungsaufträge verwenden die $(Pipeline.Workspace) system variable.
Wenn Sie selbstgehostete Agents verwenden, können Sie den Arbeitsbereich sauber Optionen verwenden, um Ihren Bereitstellungsbereich zu sauber.
jobs:
- deployment: deploy
pool:
vmImage: ubuntu-latest
workspace:
clean: all
environment: staging
Strategie: runOnce
Die runOnce-Bereitstellungsstrategie führt Änderungen durch, indem sie die einzelnen Schritte einmal ausführt.
strategy:
runOnce: # RunOnce Deployment strategy.
preDeploy: # Pre deploy hook for runOnce 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 runOnce 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 runOnce 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 runOnce 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 runOnce 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.
Eigenschaften
runOnce
jobs.deployment.strategy.runOnce.
RunOnce-Bereitstellungsstrategie.
Bemerkungen
runOnce
ist die einfachste Bereitstellungsstrategie, bei der alle Lebenszyklus-Hooks, nämlich preDeploy
deploy
, routeTraffic
und postRouteTraffic
, einmal ausgeführt werden. Danach wird entweder on: success
oder on: failure
ausgeführt.
Strategie: rollierendes
Eine parallele 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.
strategy:
rolling: # Rolling Deployment strategy.
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.
Eigenschaften
rolling
jobs.deployment.strategy.rolling.
Strategie für die parallele Bereitstellung.
Strategie: canary
Die Canary-Bereitstellungsstrategie führt Änderungen an einer kleinen Teilmenge von Servern aus.
strategy:
canary: # Canary Deployment strategy.
increments: [ string ] # Maximum batch size for deployment.
preDeploy: # Pre deploy hook for canary 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 canary 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 canary 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 canary 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 canary 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.
Eigenschaften
canary
jobs.deployment.strategy.canary.
Canary-Bereitstellungsstrategie.
Bemerkungen
Die Canary-Bereitstellungsstrategie ist eine erweiterte Bereitstellungsstrategie, die dazu beiträgt, das Risiko zu minimieren, das mit der Einführung neuer Versionen von Anwendungen verbunden ist. Mithilfe dieser Strategie können Sie zuerst die Änderungen bei einer kleinen Teilmenge von Servern ausführen. Wenn das Vertrauen in die neue Version zunimmt, können Sie sie für weitere Server in Ihrer Infrastruktur freigeben und mehr Datenverkehr an diese weiterleiten.