определение 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