Определение jobs.deployment.strategy.rolling
Последовательное развертывание заменяет экземпляры предыдущей версии приложения экземплярами новой версии приложения на фиксированном наборе виртуальных машин (последовательном наборе) в каждой итерации.
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.
Определения, ссылающиеся на это определение: jobs.deployment.strategy
Свойства
maxParallel
Строка.
Максимальное число заданий, выполняющихся параллельно.
preDeploy
preDeployHook.
Предварительное развертывание обработчика для последовательной стратегии развертывания.
deploy
deployHook.
Обработчик развертывания для последовательной стратегии развертывания.
routeTraffic
routeTrafficHook.
Перехватчик трафика маршрутизации для последовательной стратегии развертывания.
postRouteTraffic
postRouteTrafficHook.
Перехватчик трафика после маршрутизации для последовательной стратегии развертывания.
on
onSuccessOrFailureHook.
При успешном или неудачном перехватчике для последовательной стратегии развертывания.
Комментарии
В настоящее время Azure Pipelines поддерживает только стратегию перехода к ресурсам виртуальных машин.
Например, последовательное развертывание обычно ожидает завершения развертываний на каждом наборе виртуальных машин, прежде чем переходить к следующему набору развертываний. Вы можете выполнять проверка работоспособности после каждой итерации, и если возникает значительная проблема, последовательное развертывание можно остановить.
Последовательное развертывание можно настроить, указав ключевое слово rolling:
в strategy:
узле.
Переменная strategy.name
доступна в этом блоке стратегии, который принимает имя стратегии. В этом случае прокатка.
Поддерживаются все обработчики жизненного цикла, а задания обработчика жизненного цикла создаются для выполнения на каждой виртуальной машине.
preDeploy
, deploy
, routeTraffic
и postRouteTraffic
выполняются один раз для каждого размера пакета, определенного в maxParallel
.
После этого выполняется on: success
или on: failure
.
С помощью maxParallel: <# or % of VMs>
можно управлять количеством или процентами целевых объектов виртуальных машин для параллельного развертывания. Это гарантирует, что приложение работает на этих компьютерах и может обрабатывать запросы во время развертывания на остальных компьютерах, что сокращает общее время простоя.
Примечание
В этой функции есть несколько известных пробелов. Например, при повторной попытке этапа будет повторно запущено развертывание на всех виртуальных машинах, а не только на целевых объектах, которые завершили сбой.
Описание перехватчиков жизненного цикла
preDeploy
: используется для выполнения шагов, которые инициализируют ресурсы перед началом развертывания приложения.
deploy
: используется для выполнения шагов, которые развертывают приложение. Задача скачивания артефактов будет автоматически вставлена только в deploy
перехватчик для заданий развертывания. Чтобы остановить скачивание артефактов, используйте - download: none
или выберите определенные артефакты для скачивания, указав задачу "Скачать артефакт конвейера".
routeTraffic
: используется для выполнения шагов, которые обслуживают трафик в обновленную версию.
postRouteTraffic
: используется для выполнения шагов после маршрутизации трафика. Как правило, эти задачи отслеживают работоспособность обновленной версии с определенным интервалом.
on: failure
или on: success
: используется для выполнения шагов для действий отката или очистки.
Примеры
Следующий пример последовательной стратегии для виртуальных машин обновляет до пяти целевых объектов в каждой итерации. maxParallel
определяет количество целевых объектов, для которых развертывание может выполняться параллельно. При выборе учитывается абсолютное количество или доля целевых объектов, которые в любое время должны оставаться доступными (кроме целевых объектов, для которых выполняется развертывание). При этом также учитываются условия, определяющие выполнение и невыполнение развертывания.
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