Всі статті Новини Пошук роботи Увійти в ІТ Кар'єра Історії Розвиток Happy HR Спецпроєкти

Хто такий девопс? Що робить і скільки заробляє DevOps Engineer

Що це за професія — DevOps-інженер, що входить до його обов’язків та як ним стати, розповідає Володимир Шинкар, Senior Lead DevOps Engineer в Intellias.

Володимир Шинкар


Хто такий DevOps Engineer


Насамперед варто зазначити, що першопочатково DevOps — це не посада, а назва методології (скорочення від development + operations). Методологія DevOps спрямована на забезпечення ефективної взаємодії розробників та кінцевих користувачів продукту та оптимізацію всіх процесів життєвого циклу ПЗ.

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


Що входить в обов’язки DevOps Engineer


Зазвичай DevOps охоплює одну або декілька категорій, які відображають ключові аспекти розробки та доставки програмного забезпечення:

  • безперервна доставка коду (збірка, тестування та розгортання);
  • конфігурування та розгортання інфраструктури (частіше за допомогою коду);
  • автоматизація всіх процесів життєвого циклу продукту;
  • налаштування хмарних сервісів, мережі та зв’язків між ними;
  • моніторинг та централізоване логування;
  • безпеку всього, що є на проєкті.

Це далеко не повний список активностей, які входять до DevOps-процесів — усе залежить від проєкту та від клієнта.

Часто можна зустріти DevOps-інженерів з окремою спеціальністю на кшталт:

  • Release Engineer — інженер, який відповідає за розробку та налагодження процесу збирання, тестування та розгортання продукту; здебільшого це робота з CI/CD.
  • Infrastructure Engineer — інженер, який відповідає за створення, налаштування та планування інфраструктури продукту чи продуктів; часто в обов’язки такого інженера входить опис інфраструктури кодом (IaC) та супутній супровід відповідно до потреб розробників чи бізнесу;
  • SRE — це інженер, який відповідає за стабільність та надійність продукту;
  • DevSecOps — нова спеціальність, яка останнім часом набирає популярності; це інженер, який відповідає за безпеку та все, що з нею пов’язано, її впровадження на кожному етапі розробки та інфраструктури загалом.


Плюси й мінуси роботи DevOps Engineer 


Почнемо з плюсів. 

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

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

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

➕ З цього випливає інший плюс, а саме — довгострокова актуальність професії. Попри стрімкий розвиток технологій принципи роботи не можуть кардинально змінитися за один чи навіть п’ять років. Сервера та Linux нікуди не дінуться та будуть актуальні й через десять років.

➕ Також не можу не відзначити тісну кооперацію між командами розробників, тестувальників та інших учасників розробки програмного продукту. Це дає можливість заглибитися в проєкт і, як результат, пришвидшити його вихід на ринок.

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

➕ Останній, але не менш значущий плюс — це необов’язкове знання мов програмування. Так, із базою все одно доведеться ознайомитись, але це прийде поступово. Відповідно, це спрощує перехід із системного адміністрування чи навіть з іншої професії у DevOps.

Звісно, як і в будь-якій професії, у роботи DevOps Engineer є свої мінуси. 

➖ Основний мінус — це неповноцінні проєкти, які покривають тільки один чи два аспекти DevOps. Наприклад, CI (процес збирання та тестування коду) та його реліз, коли інженер відповідальний лише за доставку результатів збирання та перевірку, чи все відбулося успішно. Або Infrastructure Engineer, який займається тільки налаштуванням серверів та середовищ і не співпрацює напряму з розробниками чи замовниками. 

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

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


Що має знати DevOps Engineer: hard і soft skills 


Soft skills 

Для DevOps-інженерів потрібні такі ж soft skills, як і для інших інженерних спеціальностей. Особливо цінується вміння спілкуватися та робота в команді — часто це може бути основним критерієм для найму на роботу, навіть попри досвід. Також не варто забувати про самостійність, організованість та лідерство: ці навички просувають вас кар’єрною драбиною вдвічі швидше, ніж знання технологій. 

Можна спокійно працювати і розвиватися тільки з hard skills, але далі у Senior буде важко стрибнути. 


Hard skills

Як я згадував раніше, DevOps складається з різних аспектів — таких собі точок відповідальності, з якими ви або працювали, або ще будете працювати.

CI (Continuous Integration). Основна суть CI — отримати код, протестувати його, зібрати і ще раз протестувати, після чого упакувати та відправити на збереження в так званий сервер артефактів. Я б назвав це основним аспектом роботи девопса, який потребує навичок роботи з великою кількістю утиліт, системами контролю версій та Linux-системами, а також знань однієї або кількох CI-систем (Jenkins, GitLab CI, CircleCI, GitHub Actions, Azure DevOps, etc). 

CD (Continuous Delivery/Deployment). Майже завжди йде після CI та відповідає вже за саму доставку готового продукту до користувача чи на клієнтську інфраструктуру. При налаштуванні CD також знадобляться знання Linux, як і знання мережі та різних протоколів (SSH, SFTP, WINRM чи банальні bastion-сервера). Тут також потрібні знання Docker, Ansible чи популярний на сьогодні Helm.

Інфраструктура. DevOps — це про гнучкість. Відповідно для чого використовуються хмарні сервіси з надання серверів та інших ресурсів. На даний момент найпопулярнішими провайдерами є:

  • Amazon Web Services;
  • Google Cloud;
  • Microsoft Azure.

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

Configuration Management (CM) — це утиліти та системи по типу Ansible, Salt, Puppet та Chef. За допомогою них ви можете керувати станом ваших серверів: описуєте, що потрібно встановити й налаштувати на вашому сервері та яка роль йому буде призначена. Раніше використовувався тільки СМ, але з набуттям популярності хмарних провайдерів, розробка інфраструктури вийшла на новий рівень — за допомогою коду (Infrastructure as Code / IaC). Для цього використовуються утиліта Terraform та сервіс AWS CloudFormation. Дехто ще використовує Ansible, але це у дуже виняткових ситуаціях. Навички роботи зі згаданими технологіями дуже важливі, бо, власне, це і є та Dev- складова роботи DevOps-інженера.

Не можу не згадати про контейнеризацію. Тенденція до дроблення програм на менші програми (microservices) призвела до зростання популярності систем контейнеризації, найпопулярніша з яких — Kubernetes. Я рекомендую почати з вивчення основ Docker та всього, що з ним пов’язано, оскільки більшість сучасних проєктів базується на контейнерах чи навіть на спеціальних сервісах, які надають платформу для ваших контейнерів. В інтернеті є дуже багато навчального базового контенту на цю тему й поріг входу дуже низький.

DevOps також має свої спеціальності зі специфічним списком навичок та методів. Це вже кожен обирає у відповідності до проєкту або того, що йому цікаво.


Кар’єрні перспективи: скільки заробляє DevOps Engineer та куди може вирости


Зарплата часто залежить від компанії та вміння себе «продати». Тому наведені цифри будуть дуже узагальнені. 

Я свою DevOps кар’єру починав з курсів — після успішного їх проходження мені запропонували працювати на посаді Trainee з мінімальною заробітною платою, яка переглядалася кожні три місяці, потім через півроку, через рік тощо. 


Trainee DevOps Engineer

Досвід: 1-6 місяців
Зарплата: 300-500$  


Junior DevOps Engineer

Досвід: 0.5-1.5 роки.
Зарплата: 500-1000$  


Middle DevOps Engineer

Досвід: 2-3 роки. 
Зарплата: 1500-3000$


Senior DevOps Engineer

Досвід: 3-5 років. 
Зарплата: 3000-4500$ 


Team Lead DevOps Engineer

Досвід: 5+ років.
Зарплата: 5000-6000$ 


Architect DevOps Engineer

Досвід: 5+ років.
Зарплата: 6000-7000$

Звісно, заробітна плата може відрізнятися в залежності як від типу вашого досвіду (сапорт, білд-інженер, SRE тощо), так і від швидкості сприймання інформації. Тобто реально стати Senior чи Architect після 3-4 років, але це радше виключення, ніж правило.

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

Архітектура — це також не кінець. Завжди є спеціальність і домени. Можна розвивати експертизу в безпеці чи, наприклад, у machine learning. Також є перспектива залучення нових проєктів чи переходу в CTO. Так, це вже не просто архітектура, це також і  менеджмент, але це не означає, що шляхи можуть зливатися. 

Менеджмент — це вибір на користь лідерства. Team lead — це перспектива закріплення ваших soft skills, тісна кооперація з командою, визначення цілей і шляху для досягнення результату, розвиток як команди, так і особисто кожного її члена. Team lead несе відповідальність за команду та проєкт, що круто розвиває вас як особистість та навчає вмінню ставити інтереси команди та компанії вище за власні. Перспективою розвитку може стати перехід в Competency manager, Head of DevOps компанії чи також CTO. Усе залежить від ваших цілей та амбіцій. 


Як стати DevOps Engineer


Освіта для DevOps-інженера не є обов’язковою. Освіта потрібна, оскільки вона формує коло спілкування серед людей, які можуть стати потенційними колегами чи партнерами. Але не обов’язково, щоб це була саме комп’ютерна інженерія або прикладна математика. Хоча, звісно, така освіта буде плюсом, бо дасть вам базу — як теоретичну, так і практичну.  


Книги, курси та інші ресурси

Курси

Для початківців пропоную для початку глянути дорожню карту професії DevOps, аби зрозуміти, з чого почати. Простіший спосіб — це пошукати онлайн-курси, взяти список тем і самостійно пройтися по ним. До прикладу, важливий аспект DevOps методології — це CI/CD, він буде у списку всіх курсів. Тож заходите в YouTube і шукаєте базові речі по CI/CD. Коли буде база, шукаєте складніші приклади. Потім переходите до наступних тем, і так можна рухатися до того моменту, коли ви будете мати загальне розуміння всіх аспектів. 

Після такого вже можна йти на курси, де вам будуть давати завдання, або пробувати одразу влаштуватися на роботу стажером чи джуніором. Я все ж рекомендую після самостійного навчання пройти буткемп-курси від компаній по типу SoftServe, Epam чи Eleks — це майже гарантоване працевлаштування. Цей процес займе у вас від 3 до 6 місяців, в залежності від ваших початкових знань. 

Для просунутих рекомендую A Cloud Guru (колишній Lunux Academi) та Udemi. Звісно, я вас не здивую, але я з цими сервісами готувався до сертифікації, закривав прогалини в IaC та інших цікавих темах по типу GitOps чи Deployment Strategies. Більшість компаній пропонують своїм працівникам акаунт на цих сервісах безкоштовно. 

З курсів які я переглядав: 

Це простий список курсів, які задовольняють більшість потреб із вивчення AWS, CI/CD та IaC. 

До речі, я планую розробити власні курси по DevOps українською. Якщо вам цікавий такий формат, напишіть про це в коментарях. 

Книги

Ось кілька книг, які варті уваги: 

Ресурси, за якими стежити

Звісно, Dou. Також є багато каналів і чатів у телеграмі та скайпі. Залишу кілька з них тут (не на правах реклами): 


І трішки власної історії наприкінці


Так сталося, що потяг до «я у мами інженер» почав у мене проявлятися ще у середніх класах, а з появою першого комп’ютера справи пішли ще краще: десь за рік я вже займався встановленням Windows для своїх друзів та знайомих.

І коли я вступив до Львівського державного університету фізичної культури (так, я фізрук 😀), я вже жив із думкою, що після закінчення піду працювати системним адміністратором. Під час навчання історія з IT тільки поглиблювалася — я допомагав із налаштуванням мережі в університеті та гуртожитку, за будь-яких питань чи проблем всі завжди йшли до мене. Після отримання ступеню бакалавра я вступив до Львівської Політехніки на спеціальність «Програмне забезпечення систем», а після закінчення навчання знайшов роботу сисадміном і змінив кілька місць роботи в цьому напрямі. 

Переломним моментом для мене стали курси SoftServe, де я познайомився з аспектами роботи DevOps, здобув практичний досвід від викладачів та експертів і отримав першу роботу як DevOps-інженер. Далі були інші компанії й інші проєкти. А зараз я працюю в компанії Intellias у ролі Senior Lead DevOps Engineer та приймаю активну участь у Center of Excellence. Найближчим часом буду переходити у внутрішній Technology Office як експерт для налагодження процесів на нових проєктах.

Шукаєте роботу в ІТ?

У нас на сайті багато вакансій в ІТ-компаніях для початківців і не тільки.

Вакансії

Читайте також

Як журналістка, жонглер та аналітикиня змінили професію й перейшли в ІТ

Що робить та скільки заробляє QA Engineer і чи легко йому «увійти в ІТ»?

Три дівчини-розробниці — про свою роботу в ІТ

Розсилка, що розвиває вашу кар'єру

Підписуйтесь на щотижневу розсилку від головної редакторки Happy Monday з підбіркою найцікавішого контенту тижня, новин та кар'єрних можливостей.

Більше
Відгук

Повідомити про помилку

Текст, який буде надіслано нашим редакторам: