DevOps інженер: хто це, чим займається та яка освіта потрібна фахівцю

16 Січня 2023

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

У цій статті DevOps Lead у NIX Дмитро Данчук розкаже все, що варто знати про DevOps: що це, чим займається DevOps інженер та які навички необхідні для старту кар’єри в цьому напрямі.

DevOps Engineer

Хто такий DevOps Engineer

 

DevOps — скорочення від Development & Operations. Це все, що пов’язано з інтеграцією та доставкою програмного забезпечення до користувачів.

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

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

Плюси та мінуси роботи в DevOps

 

Почнемо з переваг…

  • Відносна легкість входу у професію

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

  • Різноманіття задач

Сьогодні налаштовуєш мережу, завтра — проєктуєш інфраструктуру чи запускаєш проєкт у хмарному середовищі. Одноманітних задач у вас точно не буде.

  • Кар’єрні перспективи

Попит на DevOps-фахівців зростає разом із розвитком технології CI/CD — автоматизації на всіх етапах розробки. Що більшим і складнішим стає проєкт, тим більше в ньому необхідна допомога девопсів.

Щодо можливих труднощів, варто бути готовим до наступного:

  • Непорозуміння специфіки роботи

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

  • Відсутність чітких вимог до результатів роботи

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

Які знання потрібні DevOps-інженеру

 

Передусім на базовому рівні варто розібратися в операційних системах Linux, Windows, сервісах AWS та Azure від Microsoft та Google Cloud Platform.

Стане у пригоді вміння розгортати проєкти з автоматизацією. Для цього знадобляться навички використання таких інструментів:

  • Ansible — для налаштування серверів
  • Jenkins — для деплою програмного забезпечення
  • Docker та Kubernetes — для контейнеризації.

Не будуть зайвими і знання мов програмування Python та Bash.

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

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

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

З чого почати кар’єру в DevOps

 

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

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

Щоб краще вивчити DevOps, раджу практикуватись у розгортанні сайтів. Почніть із простих проєктів та повторюйте їх деплой у різних середовищах. Спершу на локальному комп’ютері, потім — у хмарі. Спробуйте мануально, а пізніше — автоматично, підключаючи моніторинг та бекапи. На кожному етапі ви маєте “погратися” з конфігурацією проєкту. Це дозволить вам побачити, на що впливають ті чи інші налаштування і де в системі шукати помилки. Маючи прикладні знання, ви зможете забезпечувати стабільність проєктів за будь-яких умов. А це вже гарна основа для успішного старту в ролі DevOps Engineer.