jobs.deployment.strategy.canary definition

Strategia wdrażania kanarowego wprowadza zmiany w małym podzestawie serwerów.

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.

Definicje odwołujące się do tej definicji: jobs.deployment.strategy

Właściwości

increments lista ciągów.
Maksymalny rozmiar partii dla wdrożenia.

preDeploypreDeployHook.
Wstępnie wdrażaj hak dla strategii wdrażania kanarowego.

deploydeployHook.
Wdrażanie haka dla strategii wdrażania kanarowego.

routeTrafficrouteTrafficHook.
Kierowanie punktów zaczepienia ruchu do strategii wdrażania kanarowego.

postRouteTrafficpostRouteTrafficHook.
Post route traffic hook for canary deployment strategy .Post route traffic hook for canary deployment strategy (Post route traffic hook for canary deployment strategy).

ononSuccessOrFailureHook.
W przypadku powodzenia lub niepowodzenia haka dla strategii wdrażania kanarowego.

Uwagi

Strategia wdrażania kanarowego to zaawansowana strategia wdrażania, która pomaga ograniczyć ryzyko związane z wdrażaniem nowych wersji aplikacji. Korzystając z tej strategii, można najpierw wdrożyć zmiany w małym podzestawie serwerów. W miarę zwiększenia zaufania do nowej wersji możesz zwolnić ją na więcej serwerów w infrastrukturze i kierować do niego większy ruch.

Strategia wdrażania Kanary obsługuje preDeploy punkt zaczepienia cyklu życia (wykonywany raz) i iteruje z deploypunktami zaczepianymi , routeTraffici postRouteTraffic cyklem życia. Następnie kończy się za pomocą haka success lub failure .

W tej strategii są dostępne następujące zmienne:

strategy.name: nazwa strategii. Na przykład canary.
strategy.action: Akcja do wykonania w klastrze Kubernetes. Na przykład wdróż, podwyższ poziom lub odrzuć.
strategy.increment: wartość przyrostowa używana w bieżącej interakcji. Ta zmienna jest dostępna tylko w deploypunktach zaczepień , routeTraffici postRouteTraffic cyklu życia.

Opisy punktów zaczepienia cyklu życia

preDeploy: służy do uruchamiania kroków, które inicjują zasoby przed rozpoczęciem wdrażania aplikacji.

deploy: służy do uruchamiania kroków wdrażania aplikacji. Zadanie pobierania artefaktu zostanie automatycznie wprowadzone tylko w haku deploy dla zadań wdrażania. Aby zatrzymać pobieranie artefaktów, użyj - download: none lub wybierz określone artefakty do pobrania, określając zadanie Pobierz artefakt potoku.

routeTraffic: służy do uruchamiania kroków obsługujących ruch do zaktualizowanej wersji.

postRouteTraffic: służy do uruchamiania kroków po kierowaniu ruchu. Zazwyczaj te zadania monitorują kondycję zaktualizowanej wersji dla zdefiniowanego interwału.

on: failure lub on: success: służy do uruchamiania kroków dla akcji wycofywania lub czyszczenia.

Przykłady

W poniższym przykładzie strategia kanargu dla usługi AKS najpierw wdroży zmiany z 10 procentami zasobników, a następnie 20 procent podczas monitorowania kondycji podczas postRouteTraffic. Jeśli wszystko pójdzie dobrze, będzie promować do 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... 

Zobacz też