Шлюзы развертывания
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Шлюзы разрешают автоматическую коллекцию сигналов работоспособности из внешних служб, а затем повышают выпуск, когда все сигналы успешно или остановят развертывание во время ожидания. Как правило, шлюзы используются в связи с управлением инцидентами, управлением проблемами, управлением изменениями, мониторингом и внешними системами утверждения.
Случаи использования
Ниже приведены некоторые распространенные варианты использования шлюзов развертывания:
- Управление инцидентами. Убедитесь, что перед развертыванием выполняются определенные критерии. Например, убедитесь, что развертывание происходит только в том случае, если нет ошибок с нулевым приоритетом.
- Запрашивать утверждения: уведомлять внешних пользователей, таких как юридические отделы, аудиторы или ИТ-менеджеры о развертывании, интегрируясь с другими службами, такими как Microsoft Teams или Slack, и дождитесь их утверждения.
- Проверка качества: метрики конвейера запросов, такие как скорость передачи или покрытие кода, и развертываются только в том случае, если они находятся в предопределенном пороге.
- Проверка безопасности: выполнение проверка безопасности, таких как сканирование артефактов, подписывание кода и проверка политики. Шлюз развертывания может инициировать проверку и ждать завершения или просто проверка завершения.
- Взаимодействие с пользователем относительно базовых показателей. Использование телеметрии продукта гарантирует, что взаимодействие с пользователем не отреагрировано из базового состояния. Метрики взаимодействия с пользователем до развертывания можно было использовать в качестве базовых показателей.
- Управление изменениями: дождитесь завершения процедур управления изменениями в системе, например ServiceNow, прежде чем продолжить развертывание.
- Работоспособность инфраструктуры: выполнение мониторинга и проверка инфраструктуры в соответствии с правилами соответствия требованиям после развертывания или ожидание работоспособного использования ресурсов и положительного отчета о безопасности.
Большинство параметров работоспособности изменяются со временем, регулярно изменяя состояние работоспособности на неработоспособный и обратно на здоровый. Для учета таких вариантов все ворота периодически переоценены до тех пор, пока все из них не будут успешными одновременно. Выполнение и развертывание выпуска не продолжается, если все шлюзы не выполняются в одном интервале и до настроенного времени ожидания.
Определение ворот для этапа
Вы можете включить шлюзы на начальном этапе (условия предварительного развертывания) или в конце этапа (условия после развертывания) или для обоих. Дополнительные сведения см. в разделе "Настройка шлюзов ".
Задержка перед вычислением — это задержка времени в начале процесса оценки шлюзов, которая позволяет шлюзам инициализировать, стабилизировать и начать предоставлять точные результаты для текущего развертывания. Дополнительные сведения см. в разделе "Потоки оценки шлюзов".
- Для шлюзов предварительного развертывания задержка будет время, необходимое для всех ошибок, которые будут регистрироваться в развернутых артефактах.
- Для шлюзов после развертывания задержка будет максимальной задержкой, затраченной для развертывания развернутого приложения для достижения устойчивого рабочего состояния, времени выполнения всех необходимых тестов на развернутом этапе и времени, необходимого для регистрации инцидентов после развертывания.
По умолчанию доступны следующие шлюзы:
- Вызов функции Azure: активация выполнения функции Azure и обеспечение успешного завершения. Дополнительные сведения см. в статье Задача функции Azure.
- Запрос оповещений Azure Monitor. Просмотрите настроенные правила генерации оповещений Azure Monitor для активных оповещений. Дополнительные сведения см. в статье Задача Azure Monitor.
- Вызов REST API: вызов REST API и продолжить, если он возвращает успешный ответ. Дополнительные сведения см. в статье Вызов задачи REST API.
- Рабочие элементы запроса: убедитесь, что количество соответствующих рабочих элементов, возвращаемых из запроса, находится в пороговом значении. Дополнительные сведения см. в статье Задача рабочих элементов запросов.
- Оценка безопасности и соответствия требованиям. Оценка соответствия Политика Azure на ресурсах в область определенной подписки и группы ресурсов, а также на определенном уровне ресурсов. Дополнительные сведения см. в статье Задача проверки соответствия требованиям Политики Azure.
Вы также можете создать собственные шлюзы с помощью расширений Marketplace.
Варианты оценки, применимые ко всем шлюзам:
- Время между повторной оценкой ворот. Интервал времени между последовательными вычислениями шлюзов. По каждому интервалу выборки новые запросы отправляются параллельно каждому шлюзу и оцениваются новые результаты. Рекомендуется, чтобы интервал выборки был больше, чем самое длинное обычное время отклика настроенных шлюзов, чтобы разрешить получение всех ответов для оценки.
- Время ожидания после сбоя шлюзов. Максимальный период оценки для всех ворот. Развертывание будет отклонено, если время ожидания достигнуто до достижения всех шлюзов во время одного интервала выборки.
- Гейтс и утверждения. Выберите необходимый порядок выполнения для шлюзов и утверждений, если вы настроили оба. Для условий предварительного развертывания по умолчанию необходимо сначала запрашивать утверждения вручную (пользователя), а затем оценивать шлюзы после этого. Это позволяет системе оценивать функции шлюза, если выпуск отклоняется пользователем. Для условий после развертывания по умолчанию используется оценка шлюзов и запрос на утверждение вручную, только если все шлюзы успешно завершены. Это гарантирует, что утверждающие имеют все сведения, необходимые для утверждения.
Дополнительные сведения об аналитике шлюзов см. в журналах утверждений и мониторинге и отслеживании развертываний.
Примеры потока оценки шлюза
На следующей схеме показан поток оценки шлюза, где после начального периода задержки стабилизации и трех интервалов выборки развертывание утверждено.
На следующей схеме показан поток оценки ворот, где после начального периода задержки стабилизации не все шлюзы успешно выполнили каждый интервал выборки. В этом случае после истечения срока ожидания развертывание отклоняется.
Ресурсы
- Создание пользовательских шлюзов
- Тональность Twitter в качестве ворот выпуска
- Проблемы с GitHub в качестве шлюза выпуска