Sdílet prostřednictvím


jobs.deployment.strategy.canary – definice

Kanárná strategie nasazení zavede změny v 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í.

preDeploy preDeployHook.
před nasazením háku pro strategii nasazení kanárů.

deploy deployHook.
nasazení háku pro strategii nasazení kanárů.

routeTraffic routeTrafficHook.
směrování provozu pro strategii nasazení kanárského nasazení.

postRouteTraffic postRouteTrafficHook.
připojení provozu po směrování pro strategii nasazení kanárů.

on onSuccessOrFailureHook.
Při úspěchu nebo selhání háku pro kanárnou strategii nasazení.

Poznámky

Kanárná strategie nasazení je pokročilá strategie nasazení, která pomáhá zmírnit riziko spojené s zaváděním nových verzí aplikací. Pomocí této strategie můžete nejprve zavést změny malé podmnožině serverů. Jakmile budete mít větší jistotu v nové verzi, můžete ji uvolnit na více serverů ve vaší infrastruktuře a směrovat do ní větší provoz.

Strategie nasazení canary podporuje háček životního cyklu preDeploy (spouštěný jednou) a iteruje se deploy, routeTraffica postRouteTraffic háčky životního cyklu. Potom se ukončí pomocí 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ár.
strategy.action: Akce, která se má provést v clusteru Kubernetes. Můžete například nasadit, zvýšit úroveň nebo odmítnout.
strategy.increment: Hodnota přírůstku použitá v aktuální interakci. Tato proměnná je k dispozici pouze v deploy, routeTraffica postRouteTraffic háky životního cyklu.

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é nasazují vaši aplikaci. Úloha stažení artefaktu se automaticky vloží jenom do deploy háku pro úlohy nasazení. Chcete-li zastavit stahování artefaktů, použijte - download: none nebo zvolte konkrétní artefakty ke stažení zadáním stažení úlohy artefaktu 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 pro definovaný interval.

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

Příklady

V následujícím příkladu kanárová strategie pro AKS nejprve nasadí změny s 10% pody, po nichž následuje 20 procent, a současně bude monitorovat stav během postRouteTraffic. Pokud všechno 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é