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


Концепции шлюзов развертывания

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

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

Шлюзы определяются в условиях предварительного развертывания и после развертывания этапа выпуска. Они предоставляют механизм для автоматического сбора сигналов о работоспособности от внешних сервисов, таких как Azure Functions или REST API, для управления продвижением выпусков на основе этих сигналов. Гейтс работает с утверждениями, чтобы убедиться, что правильные заинтересованные лица утверждают выпуск, и выпуск соответствует необходимым критериям качества и соответствия.

Варианты использования

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

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

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

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

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

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

Снимок экрана, показывающий задержку перед оценкой функции ворот.

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

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

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

Снимок экрана, показывающий шлюзы по умолчанию.

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

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

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

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

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

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

Снимок экрана: схема потока оценки шлюзов.

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

Снимок экрана с примерами утверждений и сбоев шлюзов.