Создание сценария PowerShell для публикации обновлений развертывания для Azure DevOps в AppDynamics

Опубликовано: 14 Марта, 2023
Создание сценария PowerShell для публикации обновлений развертывания для Azure DevOps в AppDynamics

Мониторинг приложений необходим для любой ИТ-операции. С точки зрения DevOps также важно знать, когда релизы терпят неудачу, а когда — успешны. Тем не менее, эта функция не настроена из коробки. Вам нужно будет настроить его самостоятельно. Для этого вы можете использовать AppDynamics, инструмент для проверки работоспособности и производительности приложений. Инструмент также преобразует данные в полезную бизнес-аналитику, что позволяет принимать обоснованные решения. А что, если вам сказали, что вы также можете оптимизировать процесс с помощью PowerShell?

Здесь я помогу вам настроить мониторинг развертывания вашего приложения. Вы также узнаете, как использовать один сценарий PowerShell в конвейере выпуска. Это обновит статус развертывания в AppDynamics и проинформирует вашу команду разработчиков.

Наконец, я покажу вам, как написать собственный сценарий PowerShell, который создает задачу в Azure DevOps. Эта задача регистрирует событие развертывания и показывает пользователям конвейер выпуска. Таким образом, пользователи AppDynamics знают, когда приложения готовы в разных средах. Давайте погрузимся и начнем!

Изображение 4124

Начало работы со скриптом Powershell

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

Этот скрипт PowerShell состоит из 5 шагов, которые я проведу вас один за другим:

  1. Инициализировать переменные
  2. Обновить переменные для каждой среды
  3. Создать токен доступа
  4. Установите токен доступа и создайте заголовок аутентификации
  5. Запишите событие развертывания

1. Инициализируйте переменные

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

Изображение 158

В приведенном выше блоке кода необходимо учитывать:

  • Среда: Dev, Test, Stage или Prod.
  • Имя вашего приложения
  • Среда AppDynamics, которая является Prod или Non-Prod (np)
  • clientName, который является API, который вы хотите вызвать
  • Секрет клиента — ваш логин в API. Вы можете получить это от службы безопасности или от кого-то, кто работает с этим API.
  • AppDynamics присваивает номер AppId приложению в зависимости от среды. Чтобы получить это, вам нужно запросить AppDynamics. По моему опыту, Postman не работает с API AppDynamics.

Вам нужно будет использовать терминал и команды curl. Используйте следующую команду для поиска идентификатора приложения:

curl -H «Авторизация: Носитель <AUTH_TOKEN>» «https://np-appdynamics.<ваш URL для отдыха API>»

EventSev — это список различных уведомлений, которые AppDynamics помечает как. После того, как вы установили свои переменные, вы можете перейти к работе со средами.

2. Обновление значений переменных для каждой среды

Для обработки переменных среды вы можете написать случай переключения. В противном случае вы можете использовать оператор if-else. Давайте посмотрим на блок кода ниже, чтобы понять, как с этим справиться.

Изображение 159

В каждой среде вам потребуется установить для appID соответствующий код идентификатора AppDynamics. В переменных вверху я уже установил Dev на 8 по умолчанию. Обратите внимание, что для производственных развертываний вам также потребуется использовать рабочую среду AppDynamics и ее собственный секрет клиента. После настройки обработки среды, как показано выше, вы можете создать токен доступа для обращения к API.

3. Создайте токен доступа

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

Изображение 4127

Вам нужно, чтобы ваш accessToken использовал командлет Invoke-RestMethod. Аргументы будут публиковать и использовать JSON с URI, указывающим на среду AppDynamics. URL маркера доступа также должен отправлять секрет клиента, имя клиента и идентификатор приложения. Обратите внимание на синтаксис URI. Достаточно одной ошибки, чтобы вызвать ошибку, поэтому вы должны быть осторожны. Теперь давайте получим токен носителя и настроим его для участия в последнем вызове.

4. Установите токен доступа и создайте заголовок аутентификации.

Изображение 4128

Токен доступа, полученный на последнем шаге выше, теперь станет токеном-носителем. Это сообщение возвращается в последнем вызове API. Здесь я устанавливаю accessToken равным переменной токена. Поместите это в переменную head для авторизации.

Теперь вы сделали этот шаг и готовы к последнему звонку, чтобы опубликовать сообщение в AppDynamics, чтобы показать, что наше приложение работает.

5. Запишите событие развертывания

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

Изображение 4129

После того, как ответ вернется, вам нужно будет обработать его с помощью оператора if-else, указывающего, было ли развертывание успешным или неудачным.

Последние мысли

Каждая строка важна для успешной реализации, поэтому давайте повторим наш скрипт. Во-первых, важно, чтобы вы установили свои переменные, чтобы сократить объем кода, который вам нужно написать. После установки переменных вы найдете свои AppID для каждой среды. Это позволяет назначать развертывания всем переменным.

После подготовки наших сред и переменных вы перейдете к настройке своих токенов доступа. Добавление клиентских секретов и установка токена в заголовке позволяет выполнять вызов API. Если вы уверены, что можете вызывать API, вы можете создать URI. Для этого вам также понадобится помощь документации AppDynamics. Это отправляет сообщение в API, а затем обрабатывает успешные или неуспешные события.

AppDynamics — отличный инструмент для управления производительностью ваших приложений. Если вы работаете в крупной компании и вам нужно управлять большим количеством приложений, важно отслеживать их развертывание. Этот сценарий будет очень полезен для обеспечения работоспособности ваших приложений.

Часто задаваемые вопросы

Почему я не могу использовать Postman?

На момент написания статьи в AppDynamics были ошибки, которые не позволяли Postman для получения ответов. Лучший способ обойти это - использовать curl в терминале. Это позволяет вам связаться с Appdynamics API.

Почему мне нужно отслеживать мои приложения?

Если у вас не так много приложений, вы можете подумать, что вам не нужно какое-либо программное обеспечение для мониторинга. Тем не менее, такой инструмент, как AppDynamics, позволяет вам проверять ваши приложения в режиме реального времени. Вы захотите узнать, есть ли перебои в производстве. Здесь вы можете легко контролировать все свои приложения с единой панели управления.

Нужно ли мне использовать Powershell?

Нет, не знаешь. Тем не менее, это зависит от того, какую платформу DevOps вы используете. Если вы используете Azure, вы используете продукт Microsoft, поэтому PowerShell — правильный язык сценариев.

Должен ли я писать свой код внутри или брать его из репозитория?

В Azure DevOps, если вы используете классические конвейеры, у вас есть возможность вставить встроенный код. Лучшей практикой является создание репозитория скриптов PowerShell, связанных с DevOps. Затем вы можете получить код оттуда.

Могу ли я использовать что-то кроме AppDynamics?

Конечно, вы можете использовать другое приложение для мониторинга, например Prometheus. Тем не менее, вам придется изменить код в этом руководстве для работы с другим приложением.

Ресурсы

Высокодоступные приложения

Узнайте о том, что высокодоступные приложения могут предложить вам здесь.

Как проверить время работы Windows Server с помощью Powershell

Узнайте, как отслеживать время безотказной работы вашего сервера с помощью Powershell, здесь.

Как планировать сценарии Powershell

Узнайте больше о том, как запланировать запуск сценариев PowerShell, когда вы хотите, здесь.

Метрики производительности мобильных приложений: почему они могут помочь вам добиться успеха

Узнайте, как контролировать свои мобильные приложения, здесь.

Массовое управление группами в Azure AD и Microsoft 365

Ознакомьтесь с некоторыми интересными способами управления групповыми изменениями AD здесь.