Share via


jobs.deployment.strategy.canary definition

A estratégia de implementação canary implementa alterações a 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 referenciam esta definição: jobs.deployment.strategy

Propriedades

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

preDeploypreDeployHook.
Implementar previamente o hook para a estratégia de implementação canary.

deploydeployHook.
Implementar o hook para a estratégia de implementação canary.

routeTrafficrouteTrafficHook.
Encaminhar o gancho de tráfego para a estratégia de implementação canary.

postRouteTrafficpostRouteTrafficHook.
Pós-encaminhar o gancho de tráfego para a estratégia de implementação canary.

ononSuccessOrFailureHook.
No caso de êxito ou falha na estratégia de implementação canary.

Observações

A estratégia de implementação canary é uma estratégia de implementação avançada que ajuda a mitigar o risco envolvido na implementação de novas versões de aplicações. Ao utilizar esta estratégia, pode lançar primeiro as alterações a um pequeno subconjunto de servidores. À medida que ganha mais confiança na nova versão, pode lançá-la para mais servidores na sua infraestrutura e encaminhar mais tráfego para a mesma.

A estratégia de implementação canary suporta o gancho de preDeploy ciclo de vida (executado uma vez) e itera com os deployganchos , routeTraffice postRouteTraffic ciclo de vida. Em seguida, sai com o ou failure ganchosuccess.

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, implementar, promover ou rejeitar.
strategy.increment: o valor de incremento utilizado na interação atual. Esta variável está disponível apenas em deploy, routeTraffice postRouteTraffic ganchos de ciclo de vida.

Descrições de ganchos de ciclo de vida

preDeploy: utilizado para executar passos que inicializam recursos antes do início da implementação da aplicação.

deploy: utilizado para executar passos que implementam a sua aplicação. A tarefa transferir artefacto será injetada automaticamente apenas no deploy gancho para tarefas de implementação. Para parar a transferência de artefactos, utilize - download: none ou escolha artefactos específicos para transferir ao especificar a tarefa Transferir Artefacto do Pipeline.

routeTraffic: utilizado para executar passos que servem o tráfego para a versão atualizada.

postRouteTraffic: utilizado para executar os passos após o encaminhamento do tráfego. Normalmente, estas tarefas monitorizam o estado de funcionamento da versão atualizada para um intervalo definido.

on: failure ou on: success: utilizado para executar passos para ações de reversão ou limpeza.

Exemplos

No exemplo seguinte, a estratégia canária para o AKS implementará primeiro as alterações com pods de 10%, seguidos de 20 por cento, enquanto monitoriza o estado de funcionamento durante postRouteTraffico . Se tudo correr bem, promoverá a 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... 

Ver também