Partilhar via


definição jobs.deployment.strategy.canary

A estratégia de implantação Canary 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 esta definição: jobs.deployment.strategy

Propriedades

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

preDeploy preDeployHook.
Gancho pré-implantado para estratégia de implantação canária.

deploy deployHook.
Implantar gancho para estratégia de implantação canária.

routeTraffic routeTrafficHook.
Gancho de tráfego de rota para estratégia de implantação de canários.

postRouteTraffic postRouteTrafficHook.
Gancho de tráfego de pós-rota para estratégia de implantação de canários.

on onSuccessOrFailureHook.
Gancho de sucesso ou fracasso para estratégia de implantação canária.

Observações

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

A estratégia de implantação Canary suporta o gancho de ciclo de vida preDeploy (executado uma vez) e itera com os ganchos de ciclo de vida deploy, routeTraffice postRouteTraffic. Em seguida, ele sai com o success ou failure gancho.

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 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, routeTraffice 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 de download do artefato será injetada automaticamente somente no gancho de deploy para trabalhos de implantação. Para interromper o download de artefatos, use - download: none ou escolha artefatos específicos para download, especificando tarefa Download Pipeline Artifact.

routeTraffic: Usado para executar etapas que servem 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 ações de reversão ou limpeza.

Exemplos

No exemplo a seguir, a estratégia canária para AKS implantará primeiro as mudanças com 10% de vagens, seguido por 20%, enquanto monitora a saúde durante postRouteTraffic. Se tudo correr bem, vai subir a 100 por cento.

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