Delen via


jobs.deployment.strategy.canary-definitie

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 lijst met tekenreeksen.
maximale batchgrootte voor implementatie.

preDeploy preDeployHook.
Haak vooraf implementeren voor canary-implementatiestrategie.

deploy deployHook.
Hook implementeren voor canary-implementatiestrategie.

routeTraffic routeTrafficHook.
Route traffic hook for canary deployment strategy.

postRouteTraffic postRouteTrafficHook.
Post route traffic hook for canary deployment strategy.

on onSuccessOrFailureHook.
Over geslaagde of mislukte hook voor canary-implementatiestrategie.

Opmerkingen

Canary-implementatiestrategie is een geavanceerde implementatiestrategie waarmee het risico wordt beperkt dat gepaard gaat met het implementeren van nieuwe versies van toepassingen. Met 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 meer verkeer naar de versie routeren.

Canary-implementatiestrategie ondersteunt de preDeploy levenscyclushook (eenmaal uitgevoerd) en herhaalt de deploy, routeTrafficen postRouteTraffic levenscyclushook. Vervolgens wordt het afgesloten met de success of failure haak.

De volgende variabelen zijn beschikbaar in deze strategie:

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

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. Downloadartefacttaak wordt alleen automatisch geïnjecteerd in de deploy hook voor implementatietaken. Als u wilt stoppen met het downloaden van artefacten, gebruikt u - download: none of kiest u specifieke artefacten die u wilt downloaden door taak Pijplijnartefact downloadenop te geven.

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

postRouteTraffic: wordt gebruikt om de stappen uit te voeren nadat het verkeer is gerouteerd. Normaal gesproken bewaken deze taken de status van de bijgewerkte versie voor een gedefinieerd 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, terwijl de status tijdens postRouteTrafficwordt bewaakt. Als alles goed gaat, zal het promoveren tot 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