Хто такий DevOps інженер? Обов’язки, інструменти та ЗП - Блог ITVDN
ITVDN: курси програмування
Відеокурси з
програмування

Вибери свою IT спеціальність

Підписка

Хто такий DevOps інженер? Обов’язки, інструменти та ЗП

advertisement advertisement
  1. Хто такий DevOps Engineer?
    1. Коротка історія виникнення DevOps
    2. Що таке DevOps? Які обов’язки DevOps спеціаліста?
  2. Що має знати DevOps інженер?
  3. Розвиток професійних навичок
  4. Кар’єрні перспективи та заробітна плата DevOps Engineer
    1. Кількість вакансій
    2. Конкуренція
    3. Зарплати
    4. Кар’єрні шляхи DevOps
  5. Ключові тренди в DevOps та технології
  6. Висновки

DevOps інженер – це професія, яка дуже часто випливає в рейтингах найвищих зарплат в ІТ. При цьому спектр обов’язків досить неочевидний: розробники – програмують і створюють ПЗ, системні адміністратори – адмініструють комп’ютерні системи, тестувальники – тестують, рекрутери – рекрутять… А що роблять DevOps спеціалісти? Який спектр їхніх обов’язків? Які інструменти вони використовують і чому їхня праця так високо оцінюється в грошовому еквіваленті? З цими та іншими питаннями розбираємося в даній статті.

Хто такий DevOps Engineer?

Коротка історія виникнення DevOps

DevOps є відносно молодим напрямком в ІТ, який виник приблизно у 2007-2008 рр. під час об’єднання зусиль двох спільнот: розробників ПЗ (відповідальні за Development – розроблення) та спеціалістів з підтримки та управління ІТ-інфраструктурою (Operations – операційна сторона або сторона, відповідальна за експлуатацію, операційну підтримку).

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

Саме об’єднання зусиль спеціалістів обох напрямків і дало життя новій спеціальності, яка знаходиться на стику двох ІТ-стихій – DevOps Engineer.

Що таке DevOps? Які обов’язки DevOps спеціаліста?

DevOps (Development and Operations) – це філософія та набір практик, покликаних об'єднати розроблення та експлуатацію в єдиний та координований ланцюжок постачання програмного забезпечення. Використання даного підходу сприяє:

  • скороченню циклу розроблення;
  • автоматизації та оптимізації процесів;
  • пришвидшенню відповіді на потреби користувачів;
  • підвищенню захищеності ПЗ;
  • покращенню якості програмних продуктів;
  • кращій комунікації всередині команди.

What is DevOps

Життєвий цикл DevOps. Джерело: стаття на GitLab під назвою “What is DevOps?”

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

Обов'язки DevOps спеціаліста включають:

  1. Керування CI/CD. DevOps Engineer будує, налаштовує, керує та підтримує процеси безперервної інтеграції (CI) та безперервної доставки (CD), забезпечуючи швидкі та надійні поставки продукту користувачам.
     
  2. Автоматизація інфраструктури. Він створює та підтримує інфраструктуру, що сприяє ефективному масштабуванню та керуванню ресурсами, а також автоматизує процеси життєвого циклу продукту.
     
  3. Забезпечення безпеки. Девопс інженер працює над забезпеченням безпеки програм та інфраструктури, застосовуючи практики DevSecOps.
     
  4. Моніторинг, логування та обслуговування. Він встановлює системи моніторингу задля відслідковування продуктивності застосунків та інфраструктури, аби швидко реагувати на проблеми в роботі системи.
     
  5. Налаштування хмарних сервісів. Девопс спеціалісти активно працюють з cloud-платформами для розроблення, розгортання та керування застосунками.
     
  6. Оптимізація функціонування інфраструктури. Правило системних адміністраторів “працює – не чіпай” у випадку з девопсами не є актуальним. Спеціаліст наглядає за роботою системи і на основі фідбеку може вносити певні корективи. Інколи це дозволяє досить суттєво зменшити витрати на інфраструктуру.
     
  7. Комунікація. Оскільки спеціаліст знаходиться водночас між Dev та Ops, він обов’язково повинен мати гарні комунікативні навички, аби ефективно взаємодіяти з колегами, швидко вмикатися в процеси та бути на вістрі продуктивності.

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

  • DevSecOps – фахівець, який більше зосереджений на безпеці;
  • Release Engineer – увага в більшій мірі спрямована на DevOps-процеси, асоційовані з релізом;
  • Build Engineer – обов’язки більше пов’язані з етапом білду застосунку, коли потрібно зібрати код, розібратися в конфліктах та підключити необхідні залежності;
  • Cloud Engineer – зосереджений на роботі з хмарною інфраструктурою;
  • Automation Engineer – зайнятий процесами автоматизації інфраструктури;
  • SRE (Site Reliability Engineer) – фокусується на масштабованості, надійності і доступності онлайн-сервісів;
  • тощо.

Що має знати DevOps інженер

knowledge

Відповідь ми складемо, відштовхуючись від трьох джерел:

  • дороговкази зі спеціальності (roadmaps);
  • поради від DevOps інженерів;
  • вимоги у вакансіях на українських сайтах з пошуку роботи.

Комп’ютерні мережі

Комп’ютерні мережі – це база як для сисадмінів, так і для девопсів. Вам знадобляться наступні знання: розуміння різних архітектур мережі та їхніх структур, знання мережевих моделей OSI та TCP/IP, основні протоколи цих моделей (IP, HTTP, HTTPS, TCP, UDP тощо), маршрутизація, фаєрволи та брандмауери, моніторинг та безпека мережі, DNS, VPN тощо.

Linux

Linux – сімейство операційних систем з відкритим вихідним кодом. DevOps інженери тісно працюють з даним різновидом ОС, наприклад він важливий при конфігурації CI/CD контейнерів, автоматизації збірки, виконання білдів, роботі з артефактами тощо. Вам потрібно знати основи лінукс, включаючи встановлення, налаштування та підтримку даної ОС. Найчастіше у вакансіях зустрічаються саме Ubuntu, CentOS та Red Hat.

CI/CD

CI/CD (Continuous Integration / Continuous Delivery) – це підхід до розроблення ПЗ, який орієнтований на автоматизацію процесів розроблення, тестування та розгортання програмних змін. Цей підхід сприяє зниженню ризику помилок та покращенню якості програмного забезпечення, а також швидкому впровадженню нового функціоналу.

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

Це фундаментальна тема в роботі всіх, хто є дотичним до девопс, тому гарні знання CI/CD процесів обов’язкові.

Скриптові мови (Bash, PowerShell), Python

Також треба вміти писати bash-скрипти для автоматизації різних процесів – від резервного копіювання даних до налаштування середовища розроблення.

Bash – це командна оболонка, в якій можна писати команди у Linux та Unix системах – їх виконуватиме ваша ОС (у Windows використовується PowerShell). А для того, щоб можна було запустити одразу декілька команд, можна написати спеціальний скрипт з послідовними інструкціями і просто запускати його через командну оболонку тоді, коли вам треба.

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

Навички роботи з Bash та Python (PowerShell рідше застосовується) стають у великій нагоді DevOps Specialist та усім іншим фахівцям, котрі пов’язані з конфігурацією ОС, а також допомагають розуміти код, написаний розробниками.

Вебсервери

Вебсервери відіграють ключову роль у розгортанні та підтримці вебзастосунків і послуг. Одними з найпопулярніших є Nginx, Apache Tomcat, IIS. Девопс спеціалістам потрібно вміти правильно їх налаштовувати та траблшутити (знаходити і оперативно вирішувати проблеми).

Docker, Docker Hub

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

Docker Hub – репозиторій (вебсховище), де розташовані docker-контейнери. З його допомогою розробники можуть завантажувати свої та скачувати контейнери інших девелоперів, аби потім використати у своїх цілях.

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

Хмарна інфраструктура: AWS, Azure, GCP

Хмарні сервіси дозволяють використовувати потужності сторонніх компаній (в даному випадку – Amazon, Microsoft, Google) для виконання обчислень, зберігання даних, розгортання та масштабування інфраструктури, автоматизації, моніторингу та проведення аналітики, використання API тощо. Вони зараз супер затребувані, тому один клауд-сервіс з перерахованих (AWS, Azure, GCP) треба знати обов’язково.

Найбільше вакансій зараз саме на AWS.

Git, GitHub / GitLab

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

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

Jenkins / GitLab CI / Circle CI / GitHub Actions

Це CI/CD системи, які допомагають в роботі з безперервною інтеграцією нового коду та безперервною доставкою нової версії продукту користувачам.

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

GitHub Actions – інтегрована з GitHub служба автоматизації. Девопс розробники використовують її для створення та налаштування CI/CD. Вона дозволяє виконувати дії після доставлення коду до GitHub-репозиторію, наприклад компіляцію, тестування і розгортання.

Circle CI та GitLab CI можна наділити такими ж характеристиками – вони дозволяють налаштувати CI/CD. Усі інструменти мають низку відмінностей, а обрати варто той, який краще підходить під ваші задачі та має кращу сумісність з системами, котрі ви використовуєте.

Agile: Scrum / Kanban

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

Scrum – методологія розроблення ПЗ, яка відноситься до гнучких (Agile). ЇЇ головна задача – створити проміжний продукт, який теоретично можна представити користувачам, а з кожною наступною ітерацією – спринтом в 2-4 тижні – додавати все більше та більше змін, рухаючись ітеративно до кінцевого вигляду.

Kanban – ще одна Agile-реалізація, яка робить акцент на швидкості розроблення проєкту від початку i до кiнця, а також на візуалізації задач – для цього команда використовує Kanban-дошку і безперервно вдосконалює процес розроблення.

Англійська мова

DevOps інженерам потрібна англійська (бажано Intermediate та вище) для гарного розуміння технологій, з якими вони працюватимуть, читання мануалів і т. д., адже більшість документацій та корисних статей йдуть саме мовою Туманного Альбіону. Також English потрібен для успішної комунікації з іноземними замовниками / членами команди тощо.

Додаткові технології

additional technologies

Окрім основних технологій, перерахованих вище, у вакансіях досить часто зустрічаються наступні:

  • системи моніторингу та логування: Zabbix, Grafana, ELK (Elasticsearch, Logstash, Kibana), Prometheus;
  • системи керування конфігураціями: Ansible та Terraform;
  • Kubernetes – технологія оркестрації контейнерів;
  • розуміння БД – як реляційних, так і нереляційних.

Розвиток професійних навичок

skills

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

  1. Безкоштовні інтернет джерела / самостійне навчання. Сюди можна віднести YouTube, різні соціальні мережі з відповідними групами, де збираються девопс спеціалісти, блоги та статті у відкритому доступі, ChatGPT тощо. Переваги очевидні – ви нікому нічого не платите, однак вам треба самостійно підбирати навчальні матеріали (які можуть бути застарілі), самостійно шукати відповіді на питання, тримати дисципліну та навчальний запал і т. д.
     
  2. Курси. Ви можете записатися на очні/онлайн курси і навчатися з тренером та іншими одногрупниками, або ж обрати формат записаних відео курсів (Udemy, edX, ITVDN та ін.). Вибір на користь очного або онлайн навчання з тренером дозволяє краще опанувати матеріал, оскільки вам є до кого звернутися, конкуренція підігрівається одногрупниками, а також ви маєте постійну мотивацію, адже д/з і курсові проєкти мають бути виконані вчасно. Мінус – для якісних курсів треба діставати гаманець, але воно того варте. Сюди ж можна віднести конференції DevOps, на яких ви можете знайомитися з однодумцями і прокачувати ваші знання та навички.
     
  3. Курси від великих компаній. Варіант, який дозволяє потрапити на якісні курси та вчитися у достатньо інтенсивному темпі з перспективою отримати запрошення на позицію Intern/Trainee в цій же компанії. Дуже класний варіант, проте є два але: 1) потрібно самостійно отримати деякі знання з DevOps і пройти відбір; 2) такі курси бувають платні. Даний формат навчання можуть надавати EPAM, SoftServe, Sigma Software, PortaOne тощо. 
     
  4. Менторство. Ви також можете знайти знайомого або DevOps-філантропа, який візьме вас під своє крило і буде навчати, видавати д/з, відповідати на питання, направляти, стежити за прогресом і т. д. Також гарний варіант, однак знайти таких добродіїв-джедаїв досить важко.

Освітні ресурси дадуть вам знання інструментів. А як щодо особистих скілів – так званих soft (м’яких) навичок? Щоб стати гарним DevOps Specialist, важливо мати наступні якості:

  • комунікабельність, асертивність та вміння грати в команді;
  • вміння продуктивно розпоряджатися часом (time management);
  • проактивність;
  • уважність;
  • кмітливість (жвавий розум);
  • гарно розвинені критичне та системне мислення;
  • вміння швидко вчитися;
  • вміння гарно слухати і чути;
  • жага до постійного розвитку;
  • гарні навички problem solving / траблшутингу;
  • стресостійкість;
  • вміння брати на себе відповідальність;
  • емпатія.

Кар’єрні перспективи та заробітна плата DevOps Engineer

Кількість вакансій

Почнемо з того, наскільки затребувані DevOps Engineers. Для цього переглянемо кількість відкритих вакансій на DOU.ua – найбільшій спільноті українських девелоперів – і порівняємо з іншими популярними напрямками (станом на початок листопада):

  • DevOps – 156 вакансій;
  • QA – 160;
  • Front End – 150;
  • Python – 108;
  • Java – 107;
  • .NET – 100;
  • Node.js – 102;
  • Data Engineer – 46;
  • Data Science – 45;
  • Android – 27.

На українському Djinni, де айтішники України анонімно шукають роботу, ситуація наступна:

  • DevOps – 283 вакансії;
  • JavaScript / Front-End – 534;
  • Java – 168;
  • C# / .NET – 161;
  • Python – 193;
  • Node.js - 222;
  • QA Manual – 136;
  • QA Automation – 88.

Конкуренція

Скористаємося співвідношенням кількості відгуків до кількості вакансій на DOU (жовтень 2023), аби зрозуміти, наскільки конкурентний ІТ-ринок у спеціалістів за напрямком DevOps. Бачимо наступне:

В середньому на 1 вакансію припадає 11 претендентів. Це досить непоганий результат як для поточного стану українського ІТ. Наприклад, для QA ця цифра становить 109.6, FrontEnd – 109.1, Java – 46.3, Node.js – 33.9, .NET – 32.2, Python – 26.4.

Ви абсолютно справедливо зазначите, що це статистика для всіх фахівців – як новачків, так і спеціалістів із досвідом. А яке співвідношення відгуків-вакансій у тих, хто має менше 1 року досвіду?

Станом на жовтень 2023: DevOps – 24.5, FrontEnd – 458, Node.js – 443, Java – 198, .NET – 178, QA – 139.7, Python – 72.5. Все одно девопс має значно менше конкуренції, аніж найбільш популярні напрямки.

Зарплати

Щодо ЗП на українському ІТ-ринку звернімося до літнього зарплатного опитування від DOU.

DevOps спеціалісти наразі мають одну з найвищих медіанних зарплат – 3500 USD, поступаючись SRE (одна з гілок DevOps), менеджерським та найвищим керівним посадам.

 salaries

Медіанна ЗП відповідно до міст:

  • Київ – 3675 USD;
  • Харків – 3000 USD;
  • Львів – 2800 USD;
  • Одеса – 4212 USD;
  • Дніпро – 4000 USD;
  • Івано-Франківськ – 3875 USD.

Кар’єрні шляхи DevOps

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

  • хочете фокусуватися на хмарних процесах – Cloud Engineer;
  • подобається автоматизація інфраструктури – вам до Automation Engineer;
  • робите ставку на кібербезпеку та захист на всіх етапах життєвого циклу розроблення – DevSecOps буде чудовим вибором;
  • Site Reliability Engineer – гарний вибір, якщо хочете заробляти ще більше грошей і займатися якістю вже готових систем;
  • і так далі.

Якщо говорити про ріст вгору, то спочатку вас очікує стандартні девелоперські сходи – Junior, Middle, Senior, а зі збільшенням об’єму вашого досвіду ви можете претендувати на керівні посади, як-от Head of DevOps, Lead, Architect.

Також у вас є можливість відійти від DevOps ремесла як такого і:

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

Тут діє і зворотнє правило: так само ви можете потрапити в DevOps і через розроблення, і через QA, і через CyberSecurity тощо. Просто треба буде довчити частину стеку, якої вам бракує.

Ключові тренди в DevOps та технології

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

  1. DevSecOps (Development, Security, Operations). Безпека виходить на перший план: спостерігається стійка тенденція до все більшої інтеграції безпекових парадигм та практик в DevOps процеси, аби програмне забезпечення було якомога менш вразливим та більш надійним.
     
  2. Інтеграція штучного інтелекту. Наприкінці 2022 та початку 2023 виник великий ажіотаж навколо ChatGPT, котрий створений на базі ШІ. Звісно, це не перший випадок, коли використовуються нейронні мережі, однак подія була резонансна. Тому досить логічно, що по всьому ІТ наразі котиться ШІ-тренд, оскільки це несе спрощення роботи, підвищення швидкості реагування та продуктивності.
     
  3. Infrastructure as Code (IaC). Все більше популяризується підхід до інфраструктури як до системи, на яку людський фактор повинен мати мінімальний вплив. Натомість якомога більше процесів мають автоматизовуватися за рахунок використання програмного коду (скрипти, шаблони, конфігураційні файли тощо) на противагу ручному/інтерактивному налаштуванню.

Сюди ж можна додати serverless-обчислення, мікросервіси, Chaos Engineering, контейнеризацію та оркестрування, тренд на Site Reliability Engineering, посилення моніторингу та cloud-технології.

devops-trends

А з трендових інструментів можна відзначити наступні основні:

  1. eBPF – технологія, яка надає можливість програмувати та виконувати код прямо в ядрі операційної системи Linux. Ця технологія розширює можливості фільтрації пакетів мережі і забезпечує високий рівень моніторингу та аналізу мережевого трафіку.
     
  2. WebAssembly (він же Wasm) – бінарний формат вебпрограм, який може виконуватися в браузерах. Для DevOps дає можливість розгортання та моніторингу вебзастосунків, які працюють на різних мовах програмування та можуть запускатися у браузері без додаткових обмежень.
     
  3. OpenTelemetry – це open-source проєкт, який допомагає збирати дані про продуктивність, моніторинг і трасування застосунків.
     
  4. Argo Rollouts – інструмент, спрямований на автоматизацію процесу розгортання застосунків і мікросервісів. Він розширює можливості Kubernetes з управління релізами та розгортання застосунків, надаючи додаткові функції та контроль над процесом оновлення.
     
  5. Інструменти від OpenAI. Рік тому саме ця компанія випустила славнозвісний ChatGPT, однак ним її здобутки не обмежуються. Це компанія активно займається розробками на базі ШІ, і також доклала зусилля до GitHub Copilot, котрий значно спрощує написання коду.

Висновки

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

Для тих, хто хоче дізнатися думку досвідченого System Engineer та DevOps спеціаліста стосовно DevOps кар’єри, радимо переглянути запис вебінару від Миколи Прокопенка. Автор має 6+ років досвіду в аутсорсі та аутстафі у великих компаніях (Luxoft, Ciklum, DataArt), а також є сертифікованим експертом Microsoft Azure.

Бажаємо успіхів на вашому шляху в ІТ!

КОМЕНТАРІ ТА ОБГОВОРЕННЯ
advertisement advertisement

Купуй передплатуз доступом до всіх курсів та сервісів

Бібліотека сучасних IT знань у зручному форматі

Вибирай свій варіант підписки залежно від завдань, що стоять перед тобою. Але якщо потрібно пройти повне навчання з нуля до рівня фахівця, краще вибирати Базовий або Преміум. А для того, щоб вивчити 2-3 нові технології, або повторити знання, готуючись до співбесіди, підійде Пакет Стартовий.

Стартовий
  • Усі відеокурси на 3 місяці
  • Тестування з 10 курсів
  • Перевірка 5 домашніх завдань
  • Консультація з тренером 30 хв
59.99 $
Придбати
Преміум Plus
  • Усі відеокурси на 12 місяців
  • Тестування з 24 курсів
  • Перевірка 20 домашніх завдань
  • Консультація з тренером 120 хв
  • Завантаження відео уроків
199.99 $
Придбати
Базовий
  • Усі відеокурси на 6 місяців
  • Тестування з 16 курсів
  • Перевірка 10 домашніх завдань
  • Консультація з тренером 60 хв
89.99 $
Придбати
Notification success