Поделиться через


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

См. также