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.
preDeploy
preDeployHook.
Implementar previamente o hook para a estratégia de implementação canary.
deploy
deployHook.
Implementar o hook para a estratégia de implementação canary.
routeTraffic
routeTrafficHook.
Encaminhar o gancho de tráfego para a estratégia de implementação canary.
postRouteTraffic
postRouteTrafficHook.
Pós-encaminhar o gancho de tráfego para a estratégia de implementação canary.
on
onSuccessOrFailureHook.
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 deploy
ganchos , routeTraffic
e 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
, routeTraffic
e 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 postRouteTraffic
o . 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...