Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Стратегия развертывания 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
: имя стратегии. Например, канарея.
strategy.action
: действие, выполняемое в кластере Kubernetes. Например, развертывание, повышение или отклонение.
strategy.increment
: значение увеличения, используемое в текущем взаимодействии. Эта переменная доступна только в deploy
, routeTraffic
и postRouteTraffic
перехватчиках жизненного цикла.
Описание перехватчиков жизненного цикла
preDeploy
. Используется для выполнения шагов, которые инициализируют ресурсы перед началом развертывания приложения.
deploy
. Используется для выполнения шагов, которые развертывают приложение. Задача скачивания артефактов будет автоматически внедрена только в deploy
перехватчик для заданий развертывания. Чтобы остановить загрузку артефактов, используйте - download: none
или выберите определенные артефакты для скачивания, указав задачу загрузки артефактов конвейера.
routeTraffic
. Используется для выполнения шагов, которые служат трафику в обновленную версию.
postRouteTraffic
: используется для выполнения шагов после маршрутизации трафика. Как правило, эти задачи отслеживают работоспособность обновленной версии для определенного интервала.
on: failure
или on: success
: используется для выполнения шагов для действий отката или очистки.
Примеры
В следующем примере канарская стратегия 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...