DevOps Engineer: чим займається у компанії та що потрібно знати для роботи на цій позиції

💡 Усі статті, обговорення, новини про DevOps — в одному місці. Приєднуйтесь до DevOps спільноти!

Редакція DOU продовжує рубрику «Кар’єра в IT». У цьому матеріалі розповідаємо про професію DevOps-інженера: які навички цей спеціаліст повинен мати для роботи, у чому труднощі та плюси професії, які рутинні завдання наповнюють його день у компанії.

За даними DOU, середньостатистичному DevOps-інженеру 32 роки, він живе у Києві та входить до найоплачуваніших ІТ-спеціалістів. Медіанна зарплата — $3600. Найбільша кількість фахівців цього напряму має рівень Middle і Senior. Джуніорів у цій професії лише 13%.

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

🥁 Хто такий DevOps Engineer

DevOps — це методологія або культурна філософія, набір практик, що поєднує розробку ПЗ (Dev) та ІТ-операції (Ops). Основна мета DevOps — скоротити цикл розробки ПЗ і подбати про безперервне доставлення програмних компонентів на кінцеве програмне середовище.

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

У сучасній розробці ПЗ написання коду займає невелику частину того, що потрібно для створення робочого застосунку. А це компіляція коду в продукт, автоматичне тестування, розгортання хмарної та мережевої інфраструктури, безпека, моніторинг.

Багато таких супутніх завдань можна автоматизувати і поставити на потік. На виході отримуємо своєрідний «конвеєр» — у професії він називається CI/CD Pipeline. Де написаний розробниками код автоматично проходить різні «зупинки». Серед них перевірка якості та безпеки коду, збирання конкретної версії коду в робочий продукт, збереження цієї версії збірки, розгортання інфраструктури, налаштування безпеки, завантаження додаткових програм і бібліотек, налаштування мережі між компонентами готового рішення, запуск автоматичних тестів тощо.

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

Також DevOps-інженер допомагає автоматизувати процеси, але в цьому він орієнтується на бізнес-цінність змін.

«DevOps — це не про професію і не про позицію, це культура, яку треба нести в команду. Бо це людина, яка співпрацює з різними підрозділами, розробниками, менеджерами, тестувальниками. І основне її завдання — налагодити процес між ними».

💸 Скільки він заробляє

З фінансового погляду професія DevOps Engineer досить приваблива. Влітку 2024 року медіанна зарплата цих фахівців становила $3600, що на $100 більше, ніж у розробників. Найвищі зарплати мають фахівці DevOps у продуктових компаніях — $3350 у мідлів і $5500 у сеньйорів.

Якщо порівнювати із суміжними професіями, DevOps-інженер посідає друге місце за оплатою праці.

Медіанна зарплата згідно з літнім опитуванням 2024.

📅 Основні завдання та обов’язки DevOps Engineer

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

Також DevOps-інженер має бути останньою людиною, яка „вимкне за собою світло“ на проєкті, що завершився. Відімкнення неактуальної інфраструктури теж входить у його обов’язки».

Які рутинні завдання виконує DevOps-інженер у компанії

  • Комунікація. DevOps-інженер багато спілкується з різними стейкголдерами, уточнює, ставить запитання, пропонує. Він взаємодіє з великою кількістю інших ролей, впливає на їхню роботу. Розробники, спеціалісти з безпеки, архітектори, тестувальники — майже всі фахівці в команді певним чином є його клієнтами та споживачами інфраструктури.
  • Налаштування та підтримка CI/CD Pipeline. DevOps приєднує до проєкту нові команди чи продукти, додає функціональності. Іноді DevOps-інженери роблять функціональність самообслуговування, передаючи налаштування «конвеєра» безпосередньо розробникам чи тестувальникам. Наприклад, це може бути функціональність автоматичного «відкочування» на попередню версію продукту у разі невдалого тесту.
  • Інфраструктурні завдання. Цей фахівець автоматизує розгортання інфраструктури, потрібної для тестування та роботи продукту. Налаштовує хмарні сервіси, мережі, безпеку, моніторинг, відновлення у разі аварій. DevOps-інженер відповідає за те, щоб серверній інфраструктурі вистачало потужності для роботи продукту та щоб не витрачати зайвих грошей на хмарну інфраструктуру.
  • Підтримка системної надійності. Фахівець постійно вдосконалює процеси та системи для запобігання простоїв.
  • Оптимізація продуктивності. DevOps-інженер аналізує та оптимізує системи для того, щоб ресурси використовували максимально ефективно.
  • Відновлення після збоїв. Фахівець розробляє стратегії резервного копіювання та відновлення, щоб швидко відновитися після збоїв.

«Якщо проєкт на старті, то у DevOps-інженера буде багато обов’язків. Особливо якщо це маленька компанія з одним таким спеціалістом у команді. Тоді він буде займатися і побудовою архітектури, і її налагодженням, розгортанням всього проєкту, моніторингом, щоб усе працювало коректно».

🧲 Що повинен знати кожен DevOps

  • Операційні системи. Мастхев — це знати, як працює Linux і загалом Unix-система. Розуміти, у чому різниця між Windows, MacOS та іншими Unix-подібними системами.
  • Version Control: Git, SVN, Mercurial.
  • CI/CD Tools: Jenkins, Travis, GitLab CI, GitHub Actions.
  • Інфраструктура як код (IaC): Terraform, CloudFormation, Bicep, Google Cloud Deployment Manager, Pulumi.
  • Публічні хмари: AWS, Azure, GCP. Іноді DevOps-інженери працюють на приватних хмарах, але ці три найбільші публічні хмари дають найширшу функціональність для DevOps-процесів.
  • Мікросервіси та оркестрування мікросервісної архітектури: Docker, Kubernetes, Helm, ArgoCD, FluxCD.
  • Мережі та безпека. Розуміння принципів побудови безпечних мереж і управління сертифікатами. Основи мережевих технологій VPN, VPC, балансування навантаження, DNS. Практики безпеки: SSL/TLS, налаштування фаєрволів, управління доступом (IAM).
  • Моніторинг і логування. Prometheus, Grafana, Loki, ELK Stack.

«DevOps-інженеру потрібні фундаментальні знання в ІТ, особливо в інфраструктурній частині. Операційні системи (з акцентом на Linux), мережа, віртуалізація, Web, сховища, бази даних. Також важливі навички в скриптингу та програмуванні. Найбільш популярні мови програмування для DevOps-завдань — Python і Go».

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

Які навички потрібні новачку для старту в професії

  • Базові принципи Linux. Розуміти, як працювати з командним рядком і системними процесами.
  • Контейнеризація та оркестрація. Навчитися працювати з Docker і Kubernetes. «Для старту в професії важливо вміти будувати власні контейнери, оптимізувати їх і „запакувати“ все у Docker. Нині є тенденція, щоб усе було у контейнерах. Це ізольовані середовища, які можна підіймати, і це досить зручно для локальної розробки».
  • Основи хмарних технологій. Ознайомитися з AWS, Azure або GCP.
  • CI/CD. Розуміти процеси безперервної інтеграції та доставляння коду.
  • Інфраструктура як код (IaC). Почати з Terraform або Ansible.
  • Мережі та безпека. Знати основи TCP/IP, VPN, безпеки у хмарах.
  • Базове вміння програмувати. Писати простий код на рівні скриптингу на Go, Python, Bash.

«Коли кажуть, що DevOps-інженери не пишуть код, це неправда. DevOps пишуть код і часто. Тому класно, якщо початківець буде мати базові знання у програмуванні».

💡 Які софт-скіли важливі для DevOps Engineer

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

«Технології постійно змінюються, і DevOps часто гуглять, щоб отримати нові знання. І те, що з’являється першим про нові технології, — найчастіше англійською. Відповідно потрібно мати принаймні рівень Intermediate чи Upper-Intermediate».

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

«Це не та професія, де ти вивчив дефолтний стек і з ним працюєш. Проєкти масштабуються та вдосконалюються, під’єднуються нові сервіси. Тому DevOps повинен бути „зарядженим“ і прагнути постійно розвиватись».

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

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

«Я часто спостерігаю, як молоді колеги під час „алярму“ намагаються взятися за все й одразу. У критичній ситуації DevOps починають писати всі співробітники в усі чати. Але на відповіді їм можна витратити надто багато часу. Тому я передусім занурююся в основну проблему, а тоді вже відповідаю на репорти».

📌 Завдання DevOps Engineer упродовж робочого дня

Перевірка стану інфраструктури проєкту. День часто починається з перевірки стану систем, моніторингу та логів для виявлення будь-яких аномалій чи збоїв, що могли виникнути за ніч.

Також це перегляд дашбордів моніторингу (Prometheus, Grafana, Datadog) і аналіз метрик, таких як використання CPU, пам’яті, мережевого трафіку та часу відгуку сервісів.

Щоденні зустрічі (Stand-up). DevOps бере участь у щоденних планувальних зустрічах з командами розробки та тестування, де обговорюють завдання, проблеми та пріоритети на день.

Автоматизація та конфігурація

  • Працює над автоматизацією процесів, створює та оптимізує скрипти для розгортання, налаштування CI/CD пайплайнів.
  • Проводить перевірки після розгортання, щоб упевнитися, що всі сервіси працюють належним чином.

Виявлення та розв’язання проблем

  • Швидко реагує на інциденти або аварії, діагностує та розв’язує проблеми.
  • Аналізує логи, метрики та системи моніторингу, щоб виявити першопричини проблеми та усунути її.
  • Разом з розробниками та тестувальниками розв’язує проблеми, пов’язані із середовищем, розгортанням або продуктивністю.

Поліпшення інфраструктури

  • Оптимізує та масштабує інфраструктуру, додає нові функції або сервіси.
  • Розробляє та впроваджує нові інструменти або процеси для підвищення продуктивності та стабільності систем.

Тестування та моніторинг

  • Налаштовує та підтримує автоматизовані тести для перевірки системи перед релізом.
  • Впроваджує нові інструменти моніторингу та сповіщень для кращого відстеження стану системи.

Документація

  • Оновлює документацію про інфраструктуру, CI/CD, процедури розгортання та аварійного відновлення.
  • Пише звіти про виконану роботу та відомості про закриті проблеми або статуси завдань у системі.

Планування наступного дня

  • Переглядає прогрес і планує завдання на наступний день або тиждень.
  • Обговорює майбутні релізи, інфраструктурні зміни або нові проєкти з командою.

🔔 Труднощі та переваги професії

Виклики

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

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

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

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

Переваги

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

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

«Ці фахівці можуть зазирнути „під капот“ масштабних проєктів, які мають вагомий вплив на рівні організацій. У роботі багато спілкування, багато відповідальності та висока цінність праці».

DevOps-інженери можуть швидко побачити результати своєї роботи — як пришвидшилися процеси та поліпшилася робота систем.

Вони постійно опановують нові технології та інструменти, що сприяє професійному зростанню.

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

🤔 Чому DevOps-інженер — це не сисадмін

Ще 15 років тому не були такими поширеними CI/CD-пайплайни, контейнеризація та інші патерни, якими зараз займається девопс. Тож усі суміжні з DevOps завдання виконував сисадмін. Проте нині ці позиції розділені.

Сьогодні девопсів стало більше: 2015 року фахівці DevOps/SRE становили 1% від усіх ІТ-спеціалістів, а 2024-го їх 4%. Натомість сисадмінів меншає: у 2015-му їх було 3%, цьогоріч — 1%.

Дані з Портрета ІТ-спеціаліста 2024.

«DevOps — це наче еволюція сисадміна, наступний рівень».

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

Також на відміну від сисадмінів, DevOps-інженери пишуть код і працюють з хмарними технологіями.

«Сисадмін — це більш усталена професія, де спеціаліст виконує рутинні завдання. Так, буває імплементація нових технологій, сервісів, але досить поступово. DevOps — це динамічний напрям, де фахівець відчуває турбулентність змін».

📚 Де шукати знання DevOps Engineer

Безплатні курси та навчальні платформи

Документація та практичні керівництва

  • Docker Documentation — офіційна документація Docker містить докладні інструкції для початківців, зокрема встановлення, основи Docker і роботу з контейнерами.
  • Docker Playground — онлайн-пісочниця для практики з Docker без потреби встановлення.
  • Kubernetes Documentation — офіційна документація з основами Kubernetes, зокрема про розгортання кластерів та управління контейнерами.
  • AWS Free Tier — безплатні продукти для практичного вивчення AWS-сервісів.
  • AWS Training and Certification — ресурси з відео та лабораторними роботами для ознайомлення з сервісами AWS.
  • Ansible Documentation — офіційна документація з основами Ansible для управління конфігураціями та автоматизації.

Онлайн-спільноти та блоги

Подкасти про DevOps на DOU

YouTube-канали

Книги

«The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win», Gene Kim, Kevin Behr, George Spafford.

«Learn DevOps: Infrastructure Automation With Terraform», Yevgeniy Brikman.

Дякуємо за підготовку та рецензування матеріалу нашим експертам:

Володимир Абрамович — DevOps Engineer у Promova (Genesis)
Ілля Ільїн — DevOps Engineer у Genesis
Олександр Савченко — Staff DevOps Engineer у Checkr
Роман Рудик — DevOps Engineer в Sigma Software
Дмитро Клевакін — Azure Solutions Lead, Solutions Architect, CoE — Critical Services у SoftServe
Владислав Грам — Lead DevOps Strategy Advisor у Ciklum
Олександр Полюх — Lead DevOps (AWS) Engineer в Intellias
Сергій Дівнич — Engineering Manager в Avenga



Все про українське ІТ в телеграмі — підписуйтеся на канал DOU

👍ПодобаєтьсяСподобалось27
До обраногоВ обраному19
LinkedIn



9 коментарів

Підписатись на коментаріВідписатись від коментарів Коментарі можуть залишати тільки користувачі з підтвердженими акаунтами.

Зайвий раз впевнився, що в айті працюють самі токсичні люди. Прочитав статтю, ну може не з усім погодився, але не виникло бажання виправити авторів, комусь щось довести, показати власну унікальність та експертизу. Через таких коментаторів бажання ділитись чимось з комʼюніті відпадає.
Дякую за статтю!

спілкується з різними стейкголдерами

Пройшло десь 5 секунд, перш ніж я перестав думати, що «стейкголдери» — це ті, хто готують золоті стейки)
Ви не повірите, але «голден гейт» — це Golden Gate, а не Holden Hate.

Мене теж кумарить оця транслітерація, коли починають вживати українське " г " у випадку, якщо вжито англійське " h «, мотивуючи тим, що англійське » g " зарезервовано під українську літеру " ґ «. З цього народжуються такі монстри, як „Гельсінкі“ (столиця Фінляндії), „Гемінґвей“ (письменник), „Гонда“ (японський виробник авто), чи „нов гав“ (колишнє „ноу хау“, себто, англійське „know how“), і це прекрасний доказ того, що необхідно трохи думати головою і намагатися якнайточніше передати оригінальне звучання, а не „аби не як у москалів“. Хоча, чув на цю тему інші думки про те, що це стара російська проблема — в російському алфавіті відсутня буква, яка дає звук » г " (бо там літера " г " дає по суті звук " ґ «). Скажіть рускому чєловєку відтворити слово «гай», то він обов«язково скаже «ґай». З м’яким звуком «г» рускі мають у вимові такі ж проблеми, як і ми, українці, з англійським «th». Тобто, вживання букви «х» замість нашої «г» є нашою російською залежністю, насамперед, мовною, адже, споживаючи російськомовну різноманітну продукцію (кінофільми, радіо, пресу і т.д.), користуючись у спілкуванні на побутовому і державному рівнях російською, буква «х» стала для переважної більшості українців нібито природньою. Вбите українцям у свідомість «Хельсінкі» чи «Хонда» є стереотипом, який важко в собі побороти, щоб вживати своє рідне українське «г», якого не мають росіяни, і вживати більш наближене до оригіналу «Гельсінкі» чи «Гонда».

навчання в 2020+ роках...
скільки вказано ресурсів на курси, скільки на подкасти, відео. і скільки на книги. це при тому, що окремо виділили:

DevOps-інженеру потрібні фундаментальні знання в ІТ

фундаментальні знання з відосів черпати?)

Automation? We’re going to automate like never before. Monitoring? It’s going to be beautiful. We’re going to watch everything, 24/7, and it’s going to work. Some people don’t know how to do this, but we do.

Kubernetes expertise — everyone’s talking about it, folks. And we’re doing more with it than anyone.
Monitoring tools like Prometheus and Grafana. We see everything — everything.
CI/CD pipelines? You build them, you run them, you win with them.

I was at a debate the other day, and let me tell you, everyone’s talking about how important it is to keep systems running. We’re going to bring back uptime. We’re going to bring back stability. And we’re going to make systems so reliable, you’ll get bored of being reliable.

Let’s make SRE great again!

Я щиро перепрошую, але на деяких моментах у мене трохи пригоріло і я не хочу страждати наодинці.

> DevOps-інженер — це фахівець...

Трохи згодом:

> DevOps — це не про професію і не про позицію, це культура...

Ви вже визначтесь, що то має бути, хоча б у статті, що має назву «Хто такий DevOps» (:
З іншого боку, тут як раз і полягає корінь проблеми: бо ніхто насправді не знає. Так, це інженер, але подальша дефініція дуже розмазана. І я це кажу з прагматичної точки зору, а не як пурист, для якого такої професії не існує. Подивіться вакансії із цим тайтлом, або подивіться, що відбувається на співбесідах; одні компанії потребують одного, інші — іншого. Комусь потрібно CICD, комусь Observability, комусь внутрішню платформу, комусь оптимізацію перформансу. І з великою ймовірністю, всі ці ролі будуть проходити під однією «парасолькою». Так, цей факт може допомогти зрозуміти, що потрібно знати, щоби отримати тайтл, але взагалі не допомагає зрозуміти, хто ж такий той DevOps-інженер.

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

От з цього я згорів (:
Якою першою людиною? Під капотом чого? Якщо ви перша людина — у вас нічого ще немає: ні продукту, ні MVP, ні розуміння маркет-фіту. Як ви це собі уявляєте? Прийде людина, що півроку буде вам налаштовувати хмари, Дженкінси та іншу фігню, а потім вже думати: «А чого ми взагалі тут зібрались?» Так бізнес не робиться. Я знаю компанії у яких не було Continuous Delivery перші 6 років їх існування, або які хостились на 2-3 VPS по $200 кожний. Чи це оптимально? Не факт. Чи смертельно — точно ні. Тому якщо ви думаєте про свій проєкт — викиньте цей параграф із голови: спочатку вам потрібен продукт, який ви зможете показати потенційним клієнтам і/або інвесторам. Потім вже будете думати за девʼятки і як цей продукт розказувати в декілька регіонів за хвилини.

> Також DevOps-інженер має бути останньою людиною, яка «вимкне за собою світло»...

Ні, це роблять юристи, але та й таке.

> Ще 15 років тому позиції «DevOps-інженер» не існувало. Тоді не були поширеними CI/CD пайплайни, контейнеризація та інші патерни, якими зараз займається девопс

Цікавий фактоїд: славнозвісний виступ «10+ Deploys a Day at Flickr» відбувся на Velocity Conf у 2009 році, в тому ж році відбувся перший DevOps Days в Генті. Тобто як раз 15 років тому. Очевидно, що це сама заря і такої популярності DevOps тоді не мав — просто цікавий факт. Тож, шановні рекрутери, можете сміливо записувати у вакансії: «15 років роботи DevOps».

Дякую, що завітали на мій ТЕД-ток, як то кажуть. Вибачте за rant. Rant is over. Всім гарного дня!

Дякую за змістовний розбір статті. Частина про 15+ років тому — моя — тому вибачаюсь що не дослідив історичні факти

Вітаю!

www.youtube.com/...​/UC-EEBX3yVkBaSduOYykQbKA
AWS, K8s, Docker, linux, python, terraform — українською. Нас вже 1800

t.me/ n8-HOyw9aMxhOWUy — некомерційна DevOps спільнота.

Також проводжу навчальні заходи та курси за донати на ЗСУ.
Разом зібрали майже 1 мільйон гривень

Щиро дякую за грунтовний матеріал! Іду тепер з цим до своїх ДевОпсів нарізати їм таски на дизайн автоматизованих тестів ;) Подивлюсь, як глибоко вони мене пішлють ;)

Підписатись на коментарі