Шлюзы развертывания

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019 | TFS 2018

Шлюзы разрешают автоматическую коллекцию сигналов работоспособности из внешних служб, а затем повышают выпуск, когда все сигналы успешно или остановят развертывание во время ожидания. Как правило, шлюзы используются в связи с управлением инцидентами, управлением проблемами, управлением изменениями, мониторингом и внешними системами утверждения.

Случаи использования

Ниже приведены некоторые распространенные варианты использования шлюзов развертывания:

  • Управление инцидентами. Убедитесь, что перед развертыванием выполняются определенные критерии. Например, убедитесь, что развертывание происходит только в том случае, если нет ошибок с нулевым приоритетом.
  • Запрашивать утверждения: уведомлять внешних пользователей, таких как юридические отделы, аудиторы или ИТ-менеджеры о развертывании, интегрируясь с другими службами, такими как Microsoft Teams или Slack, и дождитесь их утверждения.
  • Проверка качества: метрики конвейера запросов, такие как скорость передачи или покрытие кода, и развертываются только в том случае, если они находятся в предопределенном пороге.
  • Проверка безопасности: выполнение проверка безопасности, таких как сканирование артефактов, подписывание кода и проверка политики. Шлюз развертывания может инициировать проверку и ждать завершения или просто проверка завершения.
  • Взаимодействие с пользователем относительно базовых показателей. Использование телеметрии продукта гарантирует, что взаимодействие с пользователем не отреагрировано из базового состояния. Метрики взаимодействия с пользователем до развертывания можно было использовать в качестве базовых показателей.
  • Управление изменениями: дождитесь завершения процедур управления изменениями в системе, например ServiceNow, прежде чем продолжить развертывание.
  • Работоспособность инфраструктуры: выполнение мониторинга и проверка инфраструктуры в соответствии с правилами соответствия требованиям после развертывания или ожидание работоспособного использования ресурсов и положительного отчета о безопасности.

Большинство параметров работоспособности изменяются со временем, регулярно изменяя состояние работоспособности на неработоспособный и обратно на здоровый. Для учета таких вариантов все ворота периодически переоценены до тех пор, пока все из них не будут успешными одновременно. Выполнение и развертывание выпуска не продолжается, если все шлюзы не выполняются в одном интервале и до настроенного времени ожидания.

Определение ворот для этапа

Вы можете включить шлюзы на начальном этапе (условия предварительного развертывания) или в конце этапа (условия после развертывания) или для обоих. Дополнительные сведения см. в разделе "Настройка шлюзов ".

Задержка перед вычислением — это задержка времени в начале процесса оценки шлюзов, которая позволяет шлюзам инициализировать, стабилизировать и начать предоставлять точные результаты для текущего развертывания. Дополнительные сведения см. в разделе "Потоки оценки шлюзов".

A screenshot showing the delay before evaluation feature in gates.

  • Для шлюзов предварительного развертывания задержка будет время, необходимое для всех ошибок, которые будут регистрироваться в развернутых артефактах.
  • Для шлюзов после развертывания задержка будет максимальной задержкой, затраченной для развертывания развернутого приложения для достижения устойчивого рабочего состояния, времени выполнения всех необходимых тестов на развернутом этапе и времени, необходимого для регистрации инцидентов после развертывания.

По умолчанию доступны следующие шлюзы:

  • Вызов функции Azure: активация выполнения функции Azure и обеспечение успешного завершения. Дополнительные сведения см. в статье Задача функции Azure.
  • Запрос оповещений Azure Monitor. Просмотрите настроенные правила генерации оповещений Azure Monitor для активных оповещений. Дополнительные сведения см. в статье Задача Azure Monitor.
  • Вызов REST API: вызов REST API и продолжить, если он возвращает успешный ответ. Дополнительные сведения см. в статье Вызов задачи REST API.
  • Рабочие элементы запроса: убедитесь, что количество соответствующих рабочих элементов, возвращаемых из запроса, находится в пороговом значении. Дополнительные сведения см. в статье Задача рабочих элементов запросов.
  • Оценка безопасности и соответствия требованиям. Оценка соответствия Политика Azure на ресурсах в область определенной подписки и группы ресурсов, а также на определенном уровне ресурсов. Дополнительные сведения см. в статье Задача проверки соответствия требованиям Политики Azure.

A screenshot showing the default gates.

Вы также можете создать собственные шлюзы с помощью расширений Marketplace.

Варианты оценки, применимые ко всем шлюзам:

  • Время между повторной оценкой ворот. Интервал времени между последовательными вычислениями шлюзов. По каждому интервалу выборки новые запросы отправляются параллельно каждому шлюзу и оцениваются новые результаты. Рекомендуется, чтобы интервал выборки был больше, чем самое длинное обычное время отклика настроенных шлюзов, чтобы разрешить получение всех ответов для оценки.
  • Время ожидания после сбоя шлюзов. Максимальный период оценки для всех ворот. Развертывание будет отклонено, если время ожидания достигнуто до достижения всех шлюзов во время одного интервала выборки.
  • Гейтс и утверждения. Выберите необходимый порядок выполнения для шлюзов и утверждений, если вы настроили оба. Для условий предварительного развертывания по умолчанию необходимо сначала запрашивать утверждения вручную (пользователя), а затем оценивать шлюзы после этого. Это позволяет системе оценивать функции шлюза, если выпуск отклоняется пользователем. Для условий после развертывания по умолчанию используется оценка шлюзов и запрос на утверждение вручную, только если все шлюзы успешно завершены. Это гарантирует, что утверждающие имеют все сведения, необходимые для утверждения.

Дополнительные сведения об аналитике шлюзов см. в журналах утверждений и мониторинге и отслеживании развертываний.

Примеры потока оценки шлюза

На следующей схеме показан поток оценки шлюза, где после начального периода задержки стабилизации и трех интервалов выборки развертывание утверждено.

A screenshot showing the gates evaluation flow diagram.

На следующей схеме показан поток оценки ворот, где после начального периода задержки стабилизации не все шлюзы успешно выполнили каждый интервал выборки. В этом случае после истечения срока ожидания развертывание отклоняется.

A screenshot showing examples of gates approvals and failures.

Ресурсы