Що таке методологія DevOps і кому вона потрібна

Розбираємось, у чому суть методології і кому вона може принести користь.

Також поговоримо про DevOps-фахівців: їхні завдання, зарплати та навички.

Що таке методологія DevOps і кому вона потрібна
Фото Matt Moor / Flickr / CC BY-SA

Що таке 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 і кому вона потрібна
Фото Ed Ivanushkin / Flickr / CC BY-SA

Хто такий DevOps-інженер

DevOps-інженер займається використанням методології DevOps. Він синхронізує всі етапи створення програмного продукту: від написання коду до тестування та випуску програми. Такий фахівець контролює відділи розробки та адміністрування плюс автоматизує виконання їхніх завдань, впроваджуючи різноманітні програмні інструменти.

Фішка DevOps-інженера в тому, що він поєднує безліч професій: адміна, розробника, тестувальника та менеджера.

Джо Санчес, DevOps-євангеліст з VMware, компанії-розробника програмного забезпечення для віртуалізації, виділив ряд навичок, якими повинен мати DevOps-інженер. Крім очевидного знання методології DevOps, ця людина повинна мати досвід адміністрування ОС Windows та Linux та досвід роботи з інструментами автоматизації на кшталт шеф-кухарЛяльковийНеможливо. Ще він повинен уміти писати скрипти та код на парі-трійці мов та розбиратися в мережевих технологіях.

DevOps-інженер відповідає за будь-яку автоматизацію завдань, пов'язаних з налаштуванням та розгортанням програм. На його плечі лягає моніторинг програмного забезпечення. Для вирішення цих завдань він застосовує різні системи керування конфігураціями, рішення віртуалізації та хмарні інструменти для балансування ресурсів.

Хто наймає

DevOps-інженери можуть принести користь будь-якій організації, діяльність якої пов'язана з розробкою додатків або керуванням великою кількістю серверів. DevOps-інженерів наймають ІТ-гіганти на кшталт Amazon, Adobe та Facebook. Ще вони працюють на Netflix, Walmart та Etsy.

Не наймають DevOps-інженерів тільки стартапи. Їхнє завдання — випустити мінімально життєздатний продукт, щоб перевірити нову ідею. Найчастіше стартапи можуть обійтися без DevOps.

Скільки платять

DevOps-інженери заробляють найбільше у галузі. Середній заробіток таких фахівців світу становить від 100 до 125 тис. доларів на рік.

У США вони отримують 90 тис. доларів на рік (500 тис. рублів на місяць). У Канаді їм платять 122 тис. доларів на рік (670 тис. рублів на місяць), а в UK - 67,5 тис. фунтів стерлінгів на рік (490 тис. рублів на місяць).

Щодо Росії, то московські компанії готові платити DevOps-фахівцям від 100 до 200 тис. рублів на місяць. У Санкт-Петербурзі роботодавці трохи щедріші - пропонують 160-360 тис. рублів на місяць. У регіонах вказують зарплату 100-120 тис. рублів на місяць.

Як стати фахівцем з DevOps

DevOps - це відносно новий напрямок в IT, тому усталеного переліку вимог до DevOps-інженерів немає. У вакансіях серед вимог на цю посаду можна зустріти як навички адміністрування Debian та CentOS, так і вміння працювати з дисковими RAID-масивами.

На підставі цього можна зробити висновок, що насамперед DevOps-інженер повинен мати добрий технічний кругозір. Такій людині важливо постійно вивчати нові інструменти та технології.

Найпростіше стати DevOps-інженером буде сисадмін або розробник. Вони вже мають низку навичок, які потрібно просто розвинути. Головне завдання – підтягнути мінімальний набір знань з DevOps, зрозуміти, як працювати з інструментами автоматизації та заповнити прогалини у навичках адміністрування, програмування та віртуалізації.

Щоб зрозуміти, де знань поки що не вистачає, можна скористатися міні-вікіпедією на GitHub або ментальною карткою. Резиденти Hacker News також рекомендують почитати книги «Проект „Фенікс“» та «Посібник з DevOps» (які ми згадували вище) та «Філософія DevOps. Мистецтво управління IT» під грифом O'Reilly Media.

Ще можна передплатити розсилку Devops Weekly, почитати статті тематичного порталу DZone і почати спілкуватися з DevOps-інженерами в Slack-чаті. Ще варто вивчити безкоштовні курси на Udacity або EDX.

Пости нашого блогу:



Джерело: habr.com

Додати коментар або відгук