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

runOncejobs.deployment.strategy.runOnce.
RunOnce-Bereitstellungsstrategie.

Bemerkungen

runOnce ist die einfachste Bereitstellungsstrategie, bei der alle Lebenszyklus-Hooks, nämlich preDeploydeploy, routeTrafficund 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

rollingjobs.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

canaryjobs.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.

Weitere Informationen