Що таке методологія DevOps, і кому вона потрібна
Що таке методологія DevOps, і кому вона потрібна
Про DevOps все частіше пишуть в іноземних та російських виданнях. Спробуємо розібратися, у чому суть методології і кому вона може принести користь.
Що таке DevOps
DevOps — це методологія розробки ПЗ, завдання якої налагодити взаємодію програмістів та сисадмінів у компанії. Якщо ІТ-фахівці з різних відділів не розуміють суть завдань один одного, випуск нових додатків та оновлень для них затягується.
DevOps формує безшовний цикл розробки, тим самим допомагаючи прискорити випуск програмного продукту.
Прискорення досягається за рахунок впровадження систем автоматизації. Плюс програмісти починають брати участь у налаштуванні серверів та пошуку багів, наприклад, вони можуть писати автоматизовані тести.
У такий спосіб налагоджується взаємодія між відділами. Співробітники починають краще розуміти, які етапи проходить програмний продукт перед тим, як потрапити до рук користувача.
Коли розробник розуміє, з чим стикається адміністратор при налаштуванні сервера, він намагатиметься згладити можливі «гострі кути» в коді. Це скорочує кількість багів при розгортанні програми — за статистикою воно зменшується приблизно в п'ять разів.
Кому потрібна і не потрібна методологія
Багато ІТ-експертів вважають, що DevOps принесе користь будь-якій організації, яка займається розробкою ПЗ. Це справедливо навіть у тому випадку, якщо компанія є простим споживачі ІТ-сервісів та не розробляє власні додатки. У цьому випадку використання DevOps-культури допоможе сконцентруватися на інноваціях.
Виняток становлять стартапи, але й тут все залежить від масштабів проекту. Якщо ваша мета - запустити мінімально життєздатний продукт (minimum viable product, MVP), щоб протестувати нову ідею, можна обійтися і без DevOps. Наприклад, засновник Groupon на початку роботи над сервісом сам вручну розміщував всі пропозиції на сайті і збирав замовлення. Жодних інструментів автоматизації він не використовував.
Впроваджувати методологію та інструменти автоматизації має сенс лише тоді, коли програма починає набирати популярності. Це допоможе налагодити бізнес-процеси та прискорити вихід оновлень.
Як впровадити DevOps
Далі — кілька рекомендацій для переходу на нову методологію.
Виявіть проблеми у бізнес-процесах. Перед використанням методології виділіть цілі та проблеми організації. Від них залежатиме стратегія переходу на DevOps. Для цього складіть перелік питань, наприклад:
- На що йде найбільше часу під час оновлення ПЗ?
- Чи можна автоматизувати цей процес?
- Чи впливає на це структура організації?
Докладно про виявлення проблем в організації можна почитати в книгах «Проект „Фенікс“» та «Посібник з DevOps» від авторів методології.
Змініть культуру в компанії. Важливо переконати всіх співробітників змінити звичні способи роботи та розширити свій спектр компетенцій. Наприклад, у Facebook усі програмісти відповідають за життєвий цикл програми повністю: від написання коду до впровадження. Також у Facebook немає окремого відділу тестування – тести пишуть самі розробники.
Почніть з малого. Виберіть процес, який забирає більше часу та сил під час випуску оновлень, та автоматизуйте його. Це може бути тестування або процес розгортання додатків.
Експерти радять насамперед впровадити інструменти розподіленого контролю версій. З ними простіше керувати вихідними джерелами. Серед таких рішень найбільш відомі Git, Mercurial, Subversion (SVN) та CVS.
Також варто звернути увагу на системи безперервної інтеграції, відповідальні за складання та тестування кінцевого продукту. Приклади таких інструментів: Jenkins, TeamCity та Bamboo.
Оцінюйте покращення. Розробте метрики ефективності впроваджених рішень та складіть чек-лист. Метриками можуть бути частота релізів, час роботи над програмними функціями, кількість багів у коді.
Обговорюйте результати не лише з менеджерами, але й з іншою командою, зайнятою на проекті. Запитуйте, яких інструментів не вистачає. Зважайте на ці запити при подальшій оптимізації процесів.
Критика DevOps
Хоча методологія допомагає організаціям швидше приймати рішення, що стосуються розробки додатків, зменшує кількість помилок у ПЗ та заохочує співробітників вчитися новому, у неї є й критики.
Є думка, що програмісти не повинні розбиратися в деталях роботи системних адміністраторів. Нібито DevOps призводить до того, що в компанії замість фахівців з розробки або адміністрування з'являються люди, які знаються на всьому, але поверхово.
Також вважається, що DevOps не працює при поганому менеджменті. Якщо команди розробників і адміністраторів не мають спільних цілей, у цьому винні менеджери, які не організують взаємодію між командами. Щоб вирішити проблему, потрібна не нова методологія, а система оцінки менеджерів з урахуванням відгуків від підлеглих.
Підіб'ємо підсумок - як впровадити DevOps:
- Сформулюйте завдання, які має вирішити нова методологія.
- Обговоріть рішення з командою. Вислухайте думки співробітників та визначте, які інструменти автоматизації є сенс впровадити.
- Автоматизуйте частину IT-процесів. Почніть із завдань, які найбільше підходять для автоматизації.
- Аналізуйте метрики. Чи співвідносяться зусилля використання DevOps з користю, яку приносить методологія? Якщо ні, то варто змінити підхід до впровадження або спробувати іншу методологію розробки. Якщо так, продовжуйте впроваджувати та аналізувати нові інструменти.
