Блог

Всі статті

DevOps Engineers – хто це і що вони роблять

DevOps Engineer - what is it and what do they do

Хто такі Девопс-інженери? Що саме вони роблять і чим відрізняються від  Agile-інженерів? Розберемося з термінами та розглянемо основи технологій та інструменти, які треба знати, щоб стати девопс розробником.

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

Таким чином, відповідь на питання «хто такий девопс і чим він займається» буде така: DevOps Engineer – це IT-фахівець, який синхронізує роботу програмістів, тестувальників і сисадмінів, а також відповідає за автоматизацію налаштування та розгортання додатків. Тобто він займається питаннями на стику програмування (dev – development) та (ops – operations).

Чим займається DevOps інженер

В залежності від кваліфікації, сфера діяльності спеціаліста може полягати в таких категоріях розробки, тестування і розгортання ПЗ:

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

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

  • Знання мови програмування – найчастіше це Bash та/або Python
  • Впевнена робота з операційною системою Linux
  • Вміння працювати з хмарною інфраструктурою AWS (Amazon Web Services), Azure, Google Cloud
  • Розуміння принципів роботи баз даних
  • Практичний досвід роботи з системами збору та автоматизації конфігурацій та оркестрації.

Три стовпи DevOps Software: Python, Linux та AWS. Для того, щоб стати девопсом, потрібно постійно вдосконалювати свої знання, актуалізувати їх, вивчати нові методи та інструменти.

Якими інструментами та технологіями користується DevOps

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

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

Тож які інструментами слід опанувати DevOps Engenieer?

  • Система управління версіями (SCM). Найчастіше використовують онлайн-сервіси GitLab, GitHub, Jenkins, BitBucket, Bamboo.
  • Безперервна інтеграція (CI) в ізольованому контейнерному середовищі – інструменти GitLab-CI, Jenkins та інші.
  • Управління даними (Data management) – інструментарій для супроводу баз даних FlywayDB, LiquiBase, Flocker.
  • Amazon Web Services, Azure, Heroku
  • Оркестрація – OpenShift, Docker, Swarm
  • Моніторинг New Reliс, Zabbix, DataDog
  • Логування Splunk, ELK Stack

Інструменти для спільної роботи

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

  • Відстеження завдань за допомогою Jira, Trello, Pivotal Tracker
  • ChatOps – системи обміну повідомленнями MatterMost, Slack
  • Документація для внутрішнього використання  – вікі-система Confluence, розмітка даних MarkDown

Маємо зауважити, що hard skills та опановані інструменти можуть змінюватися в залежності від проєкту! Спеціалістів на проєкт ставлять із певною метою, тож скіли та інструменти то справа індивідуальна. Ви як можете потрапити на проєкт і почувати себе вільно із тими навичками які вже здобули, чи вам доведеться опановувати нові, щоб закрити робочі завдання. 

В команді New Line Technologies є DevOps інженери з різним досвідом. Окрім таких опанованих популярних інструментів як Azure, AWS, Git, Jenkins та інше, вони працюють зі відмовостійкими та високомасштабованими рішеннями. Підлаштовуючись під запит клієнта, вони обирають індивідуальний підхід, не втрачаючи, а тільки здобуваючи нові знання та розширюючи межі своєї експертизи. 

Що почитати про DevOps? Рекомендації з літератури:

  • “The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations” Gene Kim, Patrick Debois, John Willis, Jez Humble
  • “Effective DevOps: Building a Culture of Collaboration, Affinity, and Tooling at Scale” Jennifer Davis, Ryn Daniels
  • “Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series (Fowler))” Jez Humble, David Farley
  • “Securing DevOps: Security in the Cloud” Julien Vehent
  • “Practical Guide to Continuous Delivery“ Eberhard Wolff
  • “Terraform: Up and Running: Writing Infrastructure as Code“ Yevgeniy Brikman
  • “Cloud Native DevOps with Kubernetes: Building, Deploying, and Scaling Modern Applications in the Cloud” John Arundel, Justin Domingus

Які фахівці можуть стати DevOps-інженером

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

10 популярних питань які задають DevOps Інженеру на співбесіді

Готуєшся до співбесіди на посаду Junior DevOps? Ми заздалегідь переглянули форуми, поспілкувалися з HR-спеціалістами, та відокремили 10 найпоширеніших питання, які задають на співбесіді Девопсу початківцю. Переглянь, щоб мати можливість підготуватися:

  • Що таке Scrum? Як він працює?
  • Що таке Kanban? Як він працює?
  • Архітектура Linux системи. Основні команди для керування операційною системою через командну оболонку
  • Які є основні мережеві протоколи? Яка між ними різниця?
  • VPN-протокол. Приклади VPN-серверів
  • Основи роботи з Git (базові команди, керування гілками, створення тегів)
  • CI/CD. Основні етапи
  • Приклади CI/CD систем. Які DSL вони використовують?
  • Системи для віртуалізації. Як вони працюють? 
  • Контейнеризація. Основні Container Runtimes. Базові команди Docker

Як стати DevOps Engineer

Щоб опанувати професію девопс інженера та претендувати на посаду Senior DevOps, треба постійно вчитися та опановувати інструментарій та технології, які постійно розвиваються.

Розпочати можна з DevOps Roadmap де в зрозумілій формі викладено, що саме треба знати, з чого почати. Пошукати спочатку онлайн-курси за вибраними темами.

Для навчання з AWS можна почати з різноманітних курсів на aws.amazon.com. Це понад 100 продуктів для розробки на AWS. Тут є можливість не тільки вивчати, але й отримувати допомогу зовнішніх сертифікованих експертів та практичний досвід.

Azure від Microsoft – azure.microsoft.com – надає можливість безоплатного облікового запису для створення, розгортання та керування програмами в кількох хмарах.

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