Непрерывный мониторинг выпуска Azure DevOps

Я пытаюсь создать настройку, в которой я развертываю веб-приложение для контейнеров, но хочу встроить некоторые проверки через Azure Monitor. Моя идея состоит в том, чтобы развернуть веб-приложение, а затем иметь шлюз, который проверяет набор предупреждений Azure Monitor с учетом доступности. Если проверка доступности не удалась, следует выполнить откат.

В документации указано Когда конвейер выпуска обнаруживает предупреждение Application Insights, конвейер может блокировать или откатывать развертывание до тех пор, пока предупреждение не будет разрешено, но я не знаю, как настроить это в azure DevOps.

У меня есть план AppService и запущено веб-приложение. Я также создал экземпляр Application Insights и включил непрерывный мониторинг с помощью задачи Управление службой приложений Azure. Созданное мной предупреждение:

az monitor metrics alert create -n 'Availability' -g ${RG_NAME} --scopes "${APP_INSIGHTS_PROD}" \
--condition 'avg availabilityResults/availabilityPercentage < 90' \
--description "created from Azure DevOps"

В качестве условия после развертывания я включил Gates и настроил его для проверки предупреждения о доступности, которое работает. Когда я что-то настраиваю так, чтобы приложение умышленно отказывалось, Gate срабатывает и, в конце концов, выходит из строя Stage. Я также включил автоматическое повторное развертывание для развертывания последнего успешного развертывания, но это ничего не дает, потому что фактическая задача развертывания была успешно завершена ... только выход из строя и сбой этапа.


comment
Я не могу найти возможность настроить пользовательские условия на уровне сцены через пользовательский интерфейс. Если я хочу сделать это через лазурные конвейеры (yaml), у меня нет возможности настраивать ворота через yaml.   -  person bramvdk    schedule 24.12.2020


Ответы (1)


Я создаю Release через пользовательский интерфейс, чтобы он заработал, мне пришлось создать конвейер через yaml. С заданиями по развертыванию я мог использовать среды, а в пользовательском интерфейсе Azure DevOps вы можете настроить среду, чтобы добавить проверку. Запрос предупреждений Azure Monitor - это одна из доступных проверок, которые можно добавить для среды. Проверка выполняется в начале задания, поэтому я создал отдельное задание развертывания, которое относится к среде с проверкой предупреждений Query Azure Monitor. После этого я создал другое задание с зависимостью и условием, которое будет запускаться только в случае сбоя задания предупреждения о запросе. И эта работа поменяет слоты.

person bramvdk    schedule 24.12.2020
comment
Большой! Спасибо, что поделились своим решением здесь, вы можете принять его как ответ, чтобы оно могло помочь другим членам сообщества, которые сталкиваются с такими же проблемами, и мы могли бы заархивировать эту ветку, спасибо. - person Joy; 29.12.2020