definice jobs.deployment.strategy.canary

Strategie nasazení kanárů zavádět změny na malé podmnožině serverů.

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.

Definice, které odkazují na tuto definici: jobs.deployment.strategy

Vlastnosti

increments seznam řetězců.
Maximální velikost dávky pro nasazení

preDeploypreDeployHook.
Háček před nasazením pro strategii nasazení kanárů

deploydeployHook.
Nasazení háku pro strategii nasazení kanárů

routeTrafficrouteTrafficHook.
Háček směrování provozu pro strategii nasazení kanárů

postRouteTrafficpostRouteTrafficHook.
Háček provozu po směrování pro strategii nasazení kanárů

ononSuccessOrFailureHook.
Při úspěšné nebo neúspěšné strategii nasazení kanárů.

Poznámky

Strategie nasazení Canary je pokročilá strategie nasazení, která pomáhá zmírnit rizika spojená se zaváděním nových verzí aplikací. Pomocí této strategie můžete nejprve zavést změny na malé podmnožině serverů. Jakmile získáte větší důvěru v novou verzi, můžete ji uvolnit na více serverech ve vaší infrastruktuře a směrovat na ni větší provoz.

Strategie nasazení Canary podporuje preDeploy háček životního cyklu (provádí se jednou) a iteruje s deployháky životního cyklu , routeTraffica postRouteTraffic . Pak se ukončí pomocí háku success nebo failure háku.

V této strategii jsou k dispozici následující proměnné:

strategy.name: Název strategie. Například kanárek.
strategy.action: Akce, která se má provést v clusteru Kubernetes. Například nasazení, zvýšení úrovně nebo odmítnutí.
strategy.increment: Hodnota inkrementu použitá v aktuální interakci. Tato proměnná je k dispozici pouze v deployhácích životního cyklu , routeTraffica postRouteTraffic .

Popisy háčků životního cyklu

preDeploy: Slouží ke spuštění kroků, které inicializují prostředky před spuštěním nasazení aplikace.

deploy: Slouží ke spuštění kroků, které nasadí vaši aplikaci. Úloha stažení artefaktu se automaticky vloží jenom do háku deploy pro úlohy nasazení. Pokud chcete zastavit stahování artefaktů, použijte - download: none nebo zvolte konkrétní artefakty ke stažení zadáním úlohy Stáhnout artefakt kanálu.

routeTraffic: Slouží ke spuštění kroků, které obsluhují provoz do aktualizované verze.

postRouteTraffic: Slouží ke spuštění kroků po směrování provozu. Tyto úlohy obvykle monitorují stav aktualizované verze po definovaný interval.

on: failure nebo on: success: Slouží ke spuštění kroků pro akce vrácení zpět nebo vyčištění.

Příklady

V následujícím příkladu kanárské strategie pro AKS nejprve nasadí změny s 10 procenty podů, následované 20 procenty, při monitorování stavu během postRouteTraffic. Pokud vše půjde dobře, zvýší se na 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... 

Viz také