Teilen über


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.

preDeploypreDeployHook.
Pre deploy hook for canary deployment strategy( Pre deploy hook for canary deployment strategy).

deploydeployHook.
Bereitstellen eines Hooks für die Canary-Bereitstellungsstrategie.

routeTrafficrouteTrafficHook.
Weiterleiten des Datenverkehrshakens für die Canary-Bereitstellungsstrategie.

postRouteTrafficpostRouteTrafficHook.
Postroute-Datenverkehrshaken für die Canary-Bereitstellungsstrategie.

ononSuccessOrFailureHook.
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 deployLifecycle-Hooks , routeTrafficund 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 deployLifecycle-Hooks, routeTrafficund 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: failureoder 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... 

Weitere Informationen