Partilhar via


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.

preDeploypreDeployHook.
Pré-implementar o gancho para a estratégia de implementação sem interrupção.

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

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

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

ononSuccessOrFailureHook.
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, routeTraffice 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

Ver também