DevOps tools от Microsoft
Вступление
Сейчас в разработке ПО весьма популярно использование методологии DevOps. В этой статье я опишу основные подходы DevOps и расскажу о средствах от Microsoft, которые помогают реализовать эти подходы в мире .NET.Что такое DevOps?
DevOps — набор методик, реализующих простую идею, отраженную в названии. Название DevOps — результат слияния слов Development и Operations, и главное здесь — взаимодействие команды разработчиков (Development) и команды, отвечающей за эксплуатацию ПО (Operations). DevOps утверждает, что близкое взаимодействие между Development и Operations позволит выпускать новые версии программного продукта быстрее и с меньшим количеством ошибок.
Методология DevOps довольно молодая — появилась в 2007 г. и развилась в сообществе IT-профессионалов, что обусловило ее практическую направленность.
Когда и как используют DevOps?
DevOps используют при разработке сложных проектов с развитой инфраструктурой. Использование подходов DevOps полезно, когда:
- Разрабатывают сложные приложения, требующие сложных процессов установки.
- Требуется поддерживать и обеспечивать работу многих компьютеров.
- Требуются частые релизы.
- Отслеживание работы приложений на продакшн и быстрое исправление неполадок играет важную роль.
В таких условиях всё упирается во время. Важно уменьшить время установки приложения на продакшн-окружение и ускорить доставку команде разработчиков отзывов о работе установленного приложения.
Для ускорения взаимодействия команд Development и Operations используют средства автоматизации. Мы можем автоматизировать:
- Управление релизами.
- Мониторинг установленных приложений и доставку команде разработчиков отзывов о работе установленного приложения.
Далее будут описаны средства автоматизации, предлагаемые Microsoft.
Управление релизами с помощью Microsoft Release Management (Development to Operations)
Сложные приложения требуют сложных процессов развертывания. Такие процессы могут включать множество шагов, выполняемых на различных компьютерах. В развертывании могут участвовать люди из разных команд: разработка, контроль качества, экспулатация. Выполнение развертывания вручную приводит к ошибкам и проблемам с коммуникацией.
В такой ситуации решение — использование единой автоматизированной системы для всех вовлеченных в процесс развертывания. И Microsoft Release Management — как раз такая система.
Возможности Microsoft Release Management
Главная функция Microsoft Release Management — автоматизация развертывания приложения через цепь тестовых окружений на продакшн.
Основной объект системы — Release Template, описание шагов, которые нужно пройти для развертывания релиза. Release Template создается через графический интерфейс WPF-клиента. Чтобы создать Release Template, нужно определить набор виртуальных машин и добавить для каждой набор действий по развертыванию. Эти наборы действий можно копировать между виртуальными машинами.
Установка на каждое окружение может быть одобрена или отклонена. Можно назначить ответственного за каждый этап установки.
Но это еще не всё, что может Microsoft Release Management. Система предоставляет:
- Большой набор действий по установке. Microsoft Release Management умеет работать с файлами, с реестром, с IIS, выполнять SQL-скрипты, устанавливать Reporting Services, Windows Services, манипулировать виртуальными машинами Windows Azure, запускать тесты с помощью Microsoft Test Manager.
- Управление файлами конфигурации. Config-файлы можно параметризовать и подставлять нужные значения параметров для каждого окружения.
- Возможность отката установки. Можно определить последовательность действий, откатывающих установку. Откат запускается автоматически при сбое в процессе установки.
- Интеграцию с TFS. Релиз можно запустить автоматически по завершению билда в TFS.
Мониторинг и предоставление информации о работающих приложениях (Operations to Development)
Теперь перейдем к описанию другого вида взаимодействия Development и Operations — передаче информации о работающем приложении команде разработчиков. Эта информация может содержать и сообщение об ошибке, и отзыв пользователя о работе с приложением. Microsoft предоставляет несколько средств для автоматизации таких процессов.Microsoft System Center 2012 Operations Manager
Microsoft Operations Manager — часть линейки продуктов Microsoft System Center. Microsoft Operations Manager позволяет следить за несколькими приложениями через одну консоль и легко посылать информацию о произошедших событиях разработчикам.
Мы можем таким образом отслеживать работу веб-приложений, разработанных на .NET, веб-страниц и веб-сервисов. Также последние версии Operations Manager позволяют мониторинг работы Windows-сервисов. Можно отслеживать сбои и проблемы с производительностью приложений и на стороне клиента, и на сервере.
Однако это еще не самое интересное умение Operations Manager. Кроме возможностей мониторинга, приложение замечательно интеграцией с TFS. Собранную информацию о сбоях и проблемах с производительностью можно легко послать разработчикам — всего в один клик.
После того как мы отослали информацию о событии разработчикам, в TFS автоматически создается Work Item, содержащий необходимые для отладки данные в виде IntelliTrace-файла.
Используя информацию, предоставленную в Work Item, разработчики могут немедленно начать работу над правкой.
Microsoft Monitoring Agent
Microsoft Operations Manager — удобное, но тяжеловесное решение. Простую альтернативу предоставляет Microsoft Monitoring Agent. Используя это средство, можно локально отслеживать работу веб-приложений, разработанных на .NET.
Microsoft Monitoring Agent собирает данные только о локально установленных приложениях, собранные данные сохраняются в IntelliTrace-файл, который можно послать разработчикам вручную. Управляется Microsoft Monitoring Agent с помощью скриптов PowerShell.
Application Insights
Application Insights — новое и перспективное средство мониторинга. Сейчас Application Insights предоставляется в превью-версии. Приложение доступно как часть Visual Studio Online. Application Insights предоставляет:
- Мониторинг доступности и времени отклика веб-приложения. Для этого достаточно только указать URL приложения или предоставить веб-тест Visual Studio.
- Мониторинг ошибок и производительности. Этот случай похож на описанные ранее варианты. На компьютер, где работают отслеживаемые приложения, устанавливается Microsoft Monitoring Agent, затем он связывается с Application Insights. После этого собираемая информация становится доступна в Application Insights. Интеграции с TFS нет, так что IntelliTrace-файл придется посылать разработчикам вручную.
- Анализ действий пользователя. Application Insights умеет отслеживать, с какой частотой происходят события в приложении (например, загрузка того или иного экрана). Эта опция доступна для следующих типов приложений:
- Windows Phone 8.
- Windows Store.
- Веб-сервисов.
- Веб-страниц.
Автоматизация получения отзывов о приложении с помощью Microsoft Feedback Client
С помощью Microsoft Feedback Client разработчики могут запрашивать и получать отзыв о работающем приложении от пользователей. Запрос на отзыв разработчики создают через Team Web Access и посылается по Email.
Пользователь приложения получает запрос, и с помощью локально установленного Microsoft Feedback Client записывает отзыв о взаимодействии с приложением. Отзыв может содержать видео, скриншоты, аудио, текстовые комментарии. Созданный отзыв отправляется разработчикам через интерфейс Microsoft Feedback Client.
Полученный отзыв сохраняется в TFS и может быть присоединён к Work Item.
Автор: Александр Попов, .NET-разработчик.