Share via


definição jobs.deployment.strategy.canary

A estratégia de implantação canário implementa alterações em um pequeno subconjunto de servidores.

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.

Definições que fazem referência a essa definição: jobs.deployment.strategy

Propriedades

increments lista de cadeias de caracteres.
Tamanho máximo do lote para implantação.

preDeploypreDeployHook.
Gancho de pré-implantação para a estratégia de implantação canário.

deploydeployHook.
Implantar gancho para a estratégia de implantação canário.

routeTrafficrouteTrafficHook.
Gancho de tráfego de rota para a estratégia de implantação canário.

postRouteTrafficpostRouteTrafficHook.
Gancho de tráfego pós-rota para a estratégia de implantação canário.

ononSuccessOrFailureHook.
Em êxito ou gancho de falha para a estratégia de implantação canário.

Comentários

A estratégia de implantação canário é avançada e ajuda a atenuar o risco envolvido na implantação de novas versões de aplicativos. Com essa estratégia, você pode implantar as alterações em um pequeno subconjunto de servidores primeiro. À medida que você tiver confiança na nova versão, poderá liberá-la para mais servidores na sua infraestrutura e rotear mais tráfego para ela.

A estratégia de implantação canário dá suporte ao gancho do ciclo de vida preDeploy (executado uma vez) e itera com os ganchos de ciclo de vida deploy, routeTraffic e postRouteTraffic. Em seguida, ele sai com o gancho success ou failure.

As seguintes variáveis estão disponíveis nesta estratégia:

strategy.name: nome da estratégia. Por exemplo, canário.
strategy.action: a ação a ser executada no cluster do Kubernetes. Por exemplo, implantar, promover ou rejeitar.
strategy.increment: o valor de incremento usado na interação atual. Essa variável está disponível apenas em ganchos de ciclo de vida deploy, routeTraffic e postRouteTraffic.

Descrições de ganchos de ciclo de vida

preDeploy: usado para executar etapas que inicializam recursos antes do início da implantação do aplicativo.

deploy: usado para executar etapas que implantam seu aplicativo. A tarefa baixar artefato será injetada automaticamente apenas no gancho de deploy para trabalhos de implantação. Para interromper o download de artefatos, use - download: none ou escolha artefatos específicos para baixar especificando tarefa Baixar artefato de pipeline.

routeTraffic: usado para executar etapas que atendem o tráfego para a versão atualizada.

postRouteTraffic: usado para executar as etapas depois que o tráfego é roteado. Normalmente, essas tarefas monitoram a integridade da versão atualizada para um intervalo definido.

on: failure ou on: success: usado para executar etapas para reverter ações ou limpar.

Exemplos

No exemplo a seguir, a estratégia canário do AKS implantará primeiro as alterações com pods de 10%, seguidos por 20%, enquanto monitora a integridade durante postRouteTraffic. Se tudo correr bem, promoverá 100%.

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

Confira também