DevOps — це (не)важко: порівнюємо з іншими професіями
Відкрити улюблену програму — лічені секунди. Хоча до цього відбулась масштабна робота: програмісти написали код, потім його доставили на сервер, налаштували та забезпечили захист. Щоб весь цей процес відбувся злагоджено та максимально швидко, в команді має бути DevOps-інженер.
Хто такий DevOps-інженер
DevOps-інженери займаються координацією розробки продуктів на всіх етапах життя та оптимізацією процесів. Коли вони є в команді, продукти релізяться швидко, а програмісти займаються лише написанням коду.
Обовʼязки DevOps-інженерів різняться від проєкту, але зазвичай вони:
- автоматизують процеси розробки та релізів продукту;
- співпрацюють з розробниками, щоб код відповідав технічним вимогам;
- займаються безперервним доставлянням коду;
- працюють із конфігуруванням та розгортанням інфраструктури
- займаються налаштуванням хмарних сервісів та мереж;
- забезпечують безпеку та захист систем;
- займаються моніторингом та централізованим логуванням.
Хард та софт скіли DevOps-інженера
Перелік необхідних вмінь та навичок фахівця залежать від проєкту, на якому він працюватиме та від задач, які повинен виконувати. Проте можна визначити базовий набір скілів, який необхідний майже на кожному проєкті.
Хард скіли
Хмарна інфраструктура. Фахівцю потрібно володіти навичками роботи хоча б з одним із хмарних провайдерів: Amazon Web Services, Google Cloud, Microsoft Azure. DevOps-інженер буде підтримувати уже розгорнуту інфраструктуру або переноситиме її в хмару.
Менеджмент конфігурацій. Потрібно знати системи управління серверами: Ansible, Salt, Puppet та Chef, а також утиліти Terraform та сервіс AWS CloudFormation та сервіс AWS CloudFormation для управління серверами в хмарі за допомогою коду (ІаС).
Контейнеризація. Все частіше програмне забезпечення розробляється по принципу мікросервісів. Тому спеціалісту варто знати платформи для контейнеризації застосунків та їх управління. Наприклад, Docker та Kubernetes.
CI/CD. Основна частина роботи DevOps-інженера — це протестувати код, упакувати його та відправити на збереження. Тому йому потрібно знати Linux-системи та володіти інструментами моніторингу та логування: Jenkins, GitLab CI, CircleCI, GitHub Actions, Azure DevOps. А також володіти протоколами SSH, SFTP, WINRM.
Софт скіли
Розвивати софт скіли для DevOps-інженера не менш важливо, чим вивчати професійні технології.
«Люди працюють з людьми. Приємно мати справу з тим, хто співпрацює з тобою та відкритий до спілкування».
Юрій Добровольський, Senior DevOps Engineer Softserve
Вміння комунікувати з іншими. DevOps-інженер багато спілкується із розробниками, тестувальниками та безпосередньо власниками бізнесу. Вважливо навчитись комунікувати ефективно.
Самомотивація. Не чекати, поки скажуть щось робити, а самостійно знаходити слабкі місця та пропонувати рішення, що можуть їх покращити. DevOps-інженер — це людина, яка завжди рухається вперед.
Постійний розвиток. Метод системних адміністраторів: «Працює, не чіпай» тут не актуальний. Завжди потрібно розвиватись. Бути в тренді технологій, цікавитись новими інструментами, завжди прагнути до кращого.
Плюси та мінуси роботи DevOps-інженером
Плюси
Велика кількість різноманітних завдань. Кожне завдання чи проєкт можуть кардинально відрізнятись від попереднього, майже нереально засумувати від рутинних задач. Навіть після багатьох років у сфері професія все ще залишається цікавою.
Невелика конкуренція. Для України сфера все ще відносно нова, тому ринок не перенасичений фахівцями, як в інших професіях. Зараз всього 10 аплікантів на одну вакансію.
Професія ще довго буде актуальною. Devops — це методологія. Технології змінюються, а принципи роботи ні. Навіть з появою нових інструментів DevOps-інженер все ще буде потрібен на проєктах.
Вплив на бізнес. Якісна робота DevOps-інженерів здатна значно впливати на роботу компанії. Іноді навіть 1% оптимізації може зекономити мільярди доларів.
Конкурента заробітна плата. Новачки з невеликим досвідом роботи можуть отримувати до $900, Middle DevOps Engineer з досвідом 3–6 років вже може претендувати на зарплату в $3 000.
Мінуси
Онколи. Щоб бізнес отримував дохід, його сервіси повинні бути максимально стабільними. За це відповідають DevOps-інженери. Тому в періоди максимального навантаження, наприклад в Чорну пʼятницю чи в Лігу чемпіонів, фахівцям потрібно бути на телефоні, щоб миттєво реагувати на проблеми.
Високий поріг входу. Робота передбачає знання багатьох технологій та інструментів, тому без попередньої підготовки потрапити у сферу майже не можливо. Проте системним адміністраторам чи розробникам може бути легше, оскільки вони вже володіють частиною навичок DevOps-інженера.
Неможливо покрити свій стек на 100%. Навіть якщо здається, що вже вивчив всі технології, то зʼявляється щось нове. Галузь швидко розвивається, не можливо завжди все знати. Через це дуже поширений синдром самозванця — з ним потрібно боротись.
Чим робота у DevOps відрізняється від розробки та QA
І тестувальники, і розробники, і DevOps-інженери працюють над розробкою ІТ-продуктів, мають справу з кодом та релізами. Нумо розбиратись, чим тестувальник та розробник, відрізняються від DevOps-інженера.
Задачі
QA-інженери займаються повторюваною роботою: розробляють тестові сценарії, відтестовують продукт та роблять звіт про знайдені баги. Розробники більшу частину часу пишуть код. Іноді новий, іноді виправляють вже написаний. Їх завдання — знати мови програмування та уміти писати чистий код.
DevOps-інженер і тестує код, і проводить дебагінг. Проте йому не потрібно досконало знати мови програмування, а тестування автоматизовані.
Поріг входу
Тестувальником стати найпростіше. Достатньо пройти місячні курси та можна шукати перші проєкти. Розробникам знайти першу роботу важче. Потрібно володіти декількома мовами програмування або купою фреймворків та бібліотек та мати портфоліо робіт.
DevOps-інженером стати, мабуть, найскладніше. Потрібно знати дуже багато технологій, щоб претендувати на посаду джуна. Проте потім — швидкий ріст, а вивчення кожної наступної технології простіше.
Навчання
Зазвичай, курси тестувальників тривають протягом 3 місяців. Щоб вивчитись лише на фронтенд розробника потрібно потрати мінімум пів року.
Методологія DevOps вивчається найдовше. Від пів року до 9 місяців чи навіть року. Проте навчання допомагає опанувати не лише основи, а й навчитись працювати з усіма необхідними технологіями, вирішувати нестандартні таски та знаходити рішення в будь-якій ситуації.
Опануй навички DevOps-інженера на курсі від ITEDU «DevOps з нуля». Вже скоро старт 2-го семестру і ми починаємо вивчати хмарні провайдери, GIT, логування, віртуалізацію, контейнери та багато іншого. Повна програма курсу на сайті, переходь та ознайомся. |
Конкуренція
Тестувальникам зараз найскладніше на ринку. За останні пару років багато охочих перейти в ІТ вибрали саме цю нішу для свого старту. Тому зараз конкуренція шалена — 98 кандидатів на одне місце.
У розробників ситуація краща, проте лише в бекенді: серед PHP спеціалістів 15 пошукачів на одне місце, Java — 38, Node.js — 30. У фронтенді ще пекельніше, чим у тестувальників: 112 кандидатів на одну вакансію.
Конкуренція серед DevOps-інженерів схожа на невелике змагання серед своїх. Всього 10 кандидатів на одне місце. Замовники хапають їх, як гарячі пиріжечки.
Кар’єрний ріст
QA-інженери можуть розвиватись лінійно до тімліда або рухатись до спеціалізованих типів тестування: Performance Test Engineer, Embedded Test Engineer, Test Automation Engineer. Також можна з часом перекваліфікуватись у бізнес-аналітика.
Розробники можуть ставати керівниками команд, CTO та змінювати проєкти на більш масштабні.
DevOps-інженер може рухатись лінійно до тімліда, архітектора, Head of DevOps, CTO. Або розвиватись у певній спеціалізації: Release Engineer — відповідає за розробку, тестування та розгортання продукту, Infrastructure Engineer — планує, створює та налаштовує інфраструктури продуктів, SRE — відповідає за стабільність та надійність продукту; DevSecOps — відповідає за безпеку продукту на кожному етапі розробки.
Зарплата
Тестувальники можуть претендувати на невелику винагороду в $600 на позиції джуна та з часом вирости до $1 500 на мідл позиції, та $3 000 — на сіньйор.
Зарплата розробника більша: новачки отримують від $800, мідл фахівці — до $2 200, сіньйори — $4 350.
DevOps-інженери найбільш високооплачувана професія. Джун може заробляти $1 200, мідл — $2 550, сіньйор — $4 000. З кожним роком набутого досвіду дохід підвищується майже на $1 000.
Працювати — не мед ложками їсти
Кожна професія має свої переваги та недоліки. Не вір тому, хто обіцяє легкий старт та десятки тисяч доларів за натискання пари клавіш. Працювати доводиться у кожній сфері. Десь складно на початку, десь — з часом.
Професія DevOps-інженера не для тих, хто хоче легко та швидко ввійти в ІТ. Тут так не вийде. Буде складно та місцями ресурсозатратно, але точно цікаво та перспективно. Робота гідно оплачується, працювати можна на цікавих, несхожих один на одного проєктах, та завжди бачити результат своїх дій.