definitie jobs.deployment.strategy.canary

De canary-implementatiestrategie implementeert wijzigingen in een kleine subset van servers.

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.

Definities die naar deze definitie verwijzen: jobs.deployment.strategy

Eigenschappen

increments tekenreekslijst.
Maximale batchgrootte voor implementatie.

preDeploypreDeployHook.
Pre deploy hook for canary-implementatiestrategie.

deploydeployHook.
Implementeer hook voor kanary-implementatiestrategie.

routeTrafficrouteTrafficHook.
Route traffic hook voor canary-implementatiestrategie.

postRouteTrafficpostRouteTrafficHook.
Postroute verkeershook voor canary-implementatiestrategie.

ononSuccessOrFailureHook.
Bij succes of mislukking hook voor canary-implementatiestrategie.

Opmerkingen

Canary-implementatiestrategie is een geavanceerde implementatiestrategie die helpt het risico te beperken dat gepaard gaat met het implementeren van nieuwe versies van toepassingen. Met behulp van deze strategie kunt u de wijzigingen eerst implementeren in een kleine subset van servers. Naarmate u meer vertrouwen krijgt in de nieuwe versie, kunt u deze vrijgeven aan meer servers in uw infrastructuur en er meer verkeer naartoe routeren.

De canary-implementatiestrategie ondersteunt de preDeploy levenscyclushook (eenmaal uitgevoerd) en herhaalt met de deploy, routeTrafficen postRouteTraffic levenscyclushook. Het verlaat vervolgens met de success haak of failure .

De volgende variabelen zijn beschikbaar in deze strategie:

strategy.name: naam van de strategie. Bijvoorbeeld canary.
strategy.action: de actie die moet worden uitgevoerd op het Kubernetes-cluster. Bijvoorbeeld implementeren, promoveren of weigeren.
strategy.increment: de verhogingswaarde die wordt gebruikt in de huidige interactie. Deze variabele is alleen beschikbaar in deploy, routeTrafficen postRouteTraffic levenscyclushaken.

Beschrijvingen van levenscyclushook

preDeploy: wordt gebruikt om stappen uit te voeren waarmee resources worden geïnitialiseerd voordat de implementatie van de toepassing wordt gestart.

deploy: wordt gebruikt om stappen uit te voeren waarmee uw toepassing wordt geïmplementeerd. De taak voor het downloaden van artefacten wordt alleen automatisch geïnjecteerd in de deploy hook voor implementatietaken. Als u wilt stoppen met het downloaden van artefacten, gebruikt - download: none of kiest u specifieke artefacten die u wilt downloaden door de taak Pijplijnartefact downloaden op te geven.

routeTraffic: Wordt gebruikt om stappen uit te voeren die het verkeer naar de bijgewerkte versie verwerken.

postRouteTraffic: wordt gebruikt om de stappen uit te voeren nadat het verkeer is gerouteerd. Normaal gesproken controleren deze taken de status van de bijgewerkte versie voor het gedefinieerde interval.

on: failure of on: success: wordt gebruikt om stappen uit te voeren voor terugdraaiacties of opschonen.

Voorbeelden

In het volgende voorbeeld implementeert de canary-strategie voor AKS eerst de wijzigingen met 10 procent pods, gevolgd door 20 procent, tijdens het bewaken van de status tijdens postRouteTraffic. Als alles goed gaat, zal het promoveren naar 100 procent.

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

Zie ook