Partilhar via


definição jobs.deployment.strategy

Uma estratégia de implementação permite-lhe configurar a forma como a atualização é fornecida.

Definições que referenciam esta definição: jobs.deployment

Implementações

Implementação Descrição
estratégia: runOnce Execute uma vez a estratégia de implementação.
estratégia: a rolar Estratégia de implementação sem interrupção.
estratégia: canário Estratégia de implementação canary.

Observações

Quando estiver a implementar atualizações de aplicações, é importante que a técnica que utiliza para entregar a atualização:

  • Ativar inicialização.
  • Implemente a atualização.
  • Encaminhe o tráfego para a versão atualizada.
  • Teste a versão atualizada após o encaminhamento do tráfego.
  • Em caso de falha, execute os passos para restaurar para a última versão boa conhecida.

Conseguimos fazê-lo através de ganchos de ciclo de vida que podem executar passos durante a implementação. Cada um dos ganchos de ciclo de vida resolve-se numa tarefa de agente ou numa tarefa de servidor (ou numa tarefa de contentor ou validação no futuro), consoante o atributo do conjunto. Por predefinição, os ganchos de ciclo de vida herdam o conjunto especificado pela tarefa de implementação.

As tarefas de implementação utilizam o $(Pipeline.Workspace) system variable.

Se estiver a utilizar agentes autoalojados, pode utilizar as opções de limpeza da área de trabalho para limpar a área de trabalho de implementação.

  jobs:
  - deployment: deploy
    pool:
      vmImage: ubuntu-latest
      workspace:
        clean: all
    environment: staging

estratégia: runOnce

A estratégia de implementação runOnce implementa as alterações ao executar cada um dos seus passos uma vez.

strategy:
  runOnce: # RunOnce Deployment strategy.
    preDeploy: # Pre deploy hook for runOnce 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 runOnce 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 runOnce 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 runOnce 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 runOnce 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.

Propriedades

runOncejobs.deployment.strategy.runOnce.
Estratégia de Implementação runOnce.

Observações

runOnce é a estratégia de implementação mais simples em que todos os ganchos de ciclo de vida, nomeadamente preDeploydeploy, routeTraffice postRouteTraffic, são executados uma vez. Em seguida, on: success ou on: failure é executado.

estratégia: a rolar

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.

strategy:
  rolling: # Rolling Deployment strategy.
    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.

Propriedades

rollingjobs.deployment.strategy.rolling.
Estratégia de Implementação Sem Interrupção.

estratégia: canário

A estratégia de implementação canary implementa alterações a um pequeno subconjunto de servidores.

strategy:
  canary: # Canary Deployment strategy.
    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.

Propriedades

canaryjobs.deployment.strategy.canary.
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.

Ver também