jobs.deployment.strategy.rolling definition
Uma implementação sem interrupção substitui as instâncias da versão anterior de uma aplicação por instâncias da nova versão da aplicação num conjunto fixo de máquinas virtuais (rolling set) em cada iteração.
rolling:
maxParallel: string # Maximum number of jobs running in parallel.
preDeploy: # Pre deploy hook for rolling 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 rolling 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 rolling 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 rolling 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 rolling 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
maxParallel
cadeia.
Número máximo de tarefas em execução em paralelo.
preDeploy
preDeployHook.
Pré-implementar o gancho para a estratégia de implementação sem interrupção.
deploy
deployHook.
Implementar o hook para a estratégia de implementação sem interrupção.
routeTraffic
routeTrafficHook.
Encaminhar o gancho de tráfego para a estratégia de implementação sem interrupção.
postRouteTraffic
postRouteTrafficHook.
Pós-encaminhar o gancho de tráfego para a estratégia de implementação sem interrupção.
on
onSuccessOrFailureHook.
No gancho de êxito ou falha para a estratégia de implementação sem interrupção.
Observações
Atualmente, os Pipelines do Azure só suportam a estratégia de implementação para recursos de VM.
Por exemplo, uma implementação sem interrupção normalmente aguarda que as implementações em cada conjunto de máquinas virtuais estejam concluídas antes de avançar para o próximo conjunto de implementações. Pode fazer uma verificação de estado de funcionamento após cada iteração e, se ocorrer um problema significativo, a implementação sem interrupção pode ser interrompida.
As implementações sem interrupção podem ser configuradas ao especificar a palavra-chave rolling:
no strategy:
nó.
A strategy.name
variável está disponível neste bloco de estratégia, que assume o nome da estratégia. Neste caso, a rolar.
Todos os ganchos de ciclo de vida são suportados e são criadas tarefas de ciclo de vida para serem executadas em cada VM.
preDeploy
, deploy
, routeTraffic
e postRouteTraffic
são executados uma vez por tamanho de lote definido por maxParallel
.
Em seguida, on: success
ou on: failure
é executado.
Com maxParallel: <# or % of VMs>
o , pode controlar o número/percentagem de destinos de máquinas virtuais a implementar em paralelo. Isto garante que a aplicação está em execução nestes computadores e é capaz de processar pedidos enquanto a implementação está a decorrer nos restantes computadores, o que reduz o tempo de inatividade geral.
Nota
Existem algumas lacunas conhecidas nesta funcionalidade. Por exemplo, quando repetir uma fase, esta executará novamente a implementação em todas as VMs e não apenas em destinos falhados.
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
O seguinte exemplo de estratégia sem interrupção para VMs atualiza até cinco destinos em cada iteração. maxParallel
irá determinar o número de destinos que podem ser implementados em paralelo. A seleção representa o número absoluto ou percentagem de destinos que têm de permanecer disponíveis em qualquer altura, excluindo os destinos em que estão a ser implementados. Também é utilizado para determinar as condições de êxito e falha durante a implementação.
jobs:
- deployment: VMDeploy
displayName: web
environment:
name: smarthotel-dev
resourceType: VirtualMachine
strategy:
rolling:
maxParallel: 5 #for percentages, mention as x%
preDeploy:
steps:
- download: current
artifact: drop
- script: echo initialize, cleanup, backup, install certs
deploy:
steps:
- task: IISWebAppDeploymentOnMachineGroup@0
displayName: 'Deploy application to Website'
inputs:
WebSiteName: 'Default Web Site'
Package: '$(Pipeline.Workspace)/drop/**/*.zip'
routeTraffic:
steps:
- script: echo routing traffic
postRouteTraffic:
steps:
- script: echo health check post-route traffic
on:
failure:
steps:
- script: echo Restore from backup! This is on failure
success:
steps:
- script: echo Notify! This is on success