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
runOnce
jobs.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 preDeploy
deploy
, routeTraffic
e 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
rolling
jobs.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
canary
jobs.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.