definition jobs.deployment.strategy.canary
Die Canary-Bereitstellungsstrategie führt Änderungen an einer kleinen Teilmenge von Servern aus.
canary:
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.
Definitionen, die auf diese Definition verweisen: jobs.deployment.strategy
Eigenschaften
increments
Zeichenfolgenliste.
Maximale Batchgröße für die Bereitstellung.
preDeploy
preDeployHook.
Pre deploy hook for canary deployment strategy( Pre deploy hook for canary deployment strategy).
deploy
deployHook.
Bereitstellen eines Hooks für die Canary-Bereitstellungsstrategie.
routeTraffic
routeTrafficHook.
Weiterleiten des Datenverkehrshakens für die Canary-Bereitstellungsstrategie.
postRouteTraffic
postRouteTrafficHook.
Postroute-Datenverkehrshaken für die Canary-Bereitstellungsstrategie.
on
onSuccessOrFailureHook.
Bei Erfolg oder Misserfolg für die 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.
Die Canary-Bereitstellungsstrategie unterstützt den preDeploy
Lebenszyklus-Hook (einmal ausgeführt) und durchläuft die deploy
Lifecycle-Hooks , routeTraffic
und postRouteTraffic
. Anschließend wird er mit dem success
Hook oder failure
beendet.
Die folgenden Variablen sind in dieser Strategie verfügbar:
strategy.name
: Name der Strategie. Beispiel: Canary.
strategy.action
: Die Aktion, die im Kubernetes-Cluster ausgeführt werden soll. Beispiel: Bereitstellen, Heraufstufen oder Ablehnen.
strategy.increment
: Der in der aktuellen Interaktion verwendete Inkrementwert. Diese Variable ist nur in deploy
Lifecycle-Hooks, routeTraffic
und postRouteTraffic
verfügbar.
Beschreibungen von Lifecycle-Hooks
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 aus, die heruntergeladen werden sollen, indem Sie die Aufgabe "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
Im folgenden Beispiel stellt die Canary-Strategie für AKS zuerst die Änderungen mit 10 Prozent Pods bereit, gefolgt von 20 Prozent, während die Integrität während postRouteTraffic
überwacht wird. Wenn alles gut geht, wird auf 100 Prozent heraufgestuft.
jobs:
- deployment:
environment: smarthotel-dev.bookings
pool:
name: smarthotel-devPool
strategy:
canary:
increments: [10,20]
preDeploy:
steps:
- script: initialize, cleanup....
deploy:
steps:
- script: echo deploy updates...
- task: KubernetesManifest@0
inputs:
action: $(strategy.action)
namespace: 'default'
strategy: $(strategy.name)
percentage: $(strategy.increment)
manifests: 'manifest.yml'
postRouteTraffic:
pool: server
steps:
- script: echo monitor application health...
on:
failure:
steps:
- script: echo clean-up, rollback...
success:
steps:
- script: echo checks passed, notify...