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.
preDeploy
preDeployHook.
Gancho de pré-implantação para a estratégia de implantação canário.
deploy
deployHook.
Implantar gancho para a estratégia de implantação canário.
routeTraffic
routeTrafficHook.
Gancho de tráfego de rota para a estratégia de implantação canário.
postRouteTraffic
postRouteTrafficHook.
Gancho de tráfego pós-rota para a estratégia de implantação canário.
on
onSuccessOrFailureHook.
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...