Інструменти DevOps від Microsoft для складних процесів і частих релізів

  1. Що таке DevOps?
  2. Коли і як використовують DevOps?
  3. Управління релізами за допомогою Microsoft Release Management (Development to Operations)
  4. Можливості Microsoft Release Management
  5. Моніторинг та надання інформації про працюючих додатках (Operations to Development)
  6. Microsoft System Center 2012 Operations Manager
  7. Microsoft Monitoring Agent
  8. Application Insights
  9. Автоматизація отримання відгуків про програму за допомогою Microsoft Feedback Client

Зараз в розробці ПЗ набирає популярність використання методології DevOps. У цій статті я опишу основні підходи DevOps і розповім про засоби від Microsoft, які допомагають реалізувати ці підходи в світі .NET.

Що таке DevOps?

DevOps - набір методик, що реалізують просту ідею, відображену в назві. Назва DevOps - результат злиття слів "development" та "оperations", і головне тут - взаємодія команди розробників (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

Головна функція 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.

    Для цього достатньо лише вказати 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.

Отриманий відгук зберігається в TFS і може бути приєднаний до Work Item

Що таке DevOps?
Коли і як використовують DevOps?
Що таке DevOps?
Коли і як використовують DevOps?