Определение jobs.deployment.strategy.canary
Стратегия развертывания Canary развертывает изменения на небольшом подмножестве серверов.
canary:
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.
Определения, ссылающиеся на это определение: jobs.deployment.strategy
Свойства
increments
список строк.
Максимальный размер пакета для развертывания.
preDeploy
preDeployHook.
Предварительное развертывание обработчика для стратегии канареечного развертывания.
deploy
deployHook.
Обработчик развертывания для стратегии канареечного развертывания.
routeTraffic
routeTrafficHook.
Перехватчик трафика маршрутизации для стратегии канареечного развертывания.
postRouteTraffic
postRouteTrafficHook.
Перехватчик трафика после маршрутизации для стратегии канареечного развертывания.
on
onSuccessOrFailureHook.
При успешном или неудачном перехватчике для стратегии канареечного развертывания.
Комментарии
Стратегия развертывания Canary — это расширенная стратегия развертывания, которая помогает снизить риски, связанные с развертыванием новых версий приложений. С помощью этой стратегии можно сначала развернуть изменения в небольшом подмножестве серверов. По мере того, как вы обретете больше уверенности в новой версии, вы сможете выпустить ее на другие сервера в своей инфраструктуре и направить на нее больше трафика.
Стратегия развертывания canary поддерживает preDeploy
перехватчик жизненного цикла (выполняется один раз) и выполняет итерацию с deploy
обработчиками жизненного цикла , routeTraffic
и postRouteTraffic
. Затем он завершает работу с крючком success
или failure
.
В этой стратегии доступны следующие переменные:
strategy.name
: имя стратегии. Например, canary.
strategy.action
: действие, выполняемое в кластере Kubernetes. Например, развертывание, повышение уровня или отклонение.
strategy.increment
: значение приращения, используемое в текущем взаимодействии. Эта переменная доступна только в deploy
обработчиках жизненного цикла , routeTraffic
и postRouteTraffic
.
Описание перехватчиков жизненного цикла
preDeploy
: используется для выполнения шагов, которые инициализируют ресурсы перед началом развертывания приложения.
deploy
: используется для выполнения шагов, которые развертывают приложение. Задача скачивания артефактов будет автоматически вставлена только в deploy
перехватчик для заданий развертывания. Чтобы остановить скачивание артефактов, используйте - download: none
или выберите определенные артефакты для скачивания, указав задачу "Скачать артефакт конвейера".
routeTraffic
: используется для выполнения шагов, которые обслуживают трафик в обновленную версию.
postRouteTraffic
: используется для выполнения шагов после маршрутизации трафика. Как правило, эти задачи отслеживают работоспособность обновленной версии с определенным интервалом.
on: failure
или on: success
: используется для выполнения шагов для действий отката или очистки.
Примеры
В следующем примере стратегия canary для AKS сначала развертывает изменения с 10 процентами модулей pod, а затем 20 процентами при мониторинге работоспособности во время postRouteTraffic
. Если все пойдет хорошо, это будет способствовать до 100 процентов.
jobs:
- deployment:
environment: smarthotel-dev.bookings
pool:
name: smarthotel-devPool
strategy:
canary:
increments: [10,20]
preDeploy:
steps:
- script: initialize, cleanup....
deploy:
steps:
- script: echo deploy updates...
- task: KubernetesManifest@0
inputs:
action: $(strategy.action)
namespace: 'default'
strategy: $(strategy.name)
percentage: $(strategy.increment)
manifests: 'manifest.yml'
postRouteTraffic:
pool: server
steps:
- script: echo monitor application health...
on:
failure:
steps:
- script: echo clean-up, rollback...
success:
steps:
- script: echo checks passed, notify...