Ролі DevOps-фахівця: 7 варіантів розвитку
Рівень напруженості між командами розробників та сисадмінів — ще той виклик. Кожен з цих двох відділів працює у своїй мильній бульбашці, без зворотного зв’язку та оптимізації ресурсів. Це реалії компаній, де не чули про DevOps.
Історичне. Років 20 тому кілька різних бізнес-активістів об’єдналися навколо нової ідеї, де члени команди мали б працювати воєдино, а не один проти одного. У 2001 році склали маніфест з 12 принципами Agile-розробки.
На деякий час це знизило рівень напруженості між командами. Та оскільки Agile більше про розробку, команди з експлуатації вирішили вдосконалити ідею зі своєї точки зору.
І тут в гру вступає Патрік Дебуа, на той час сисадмін та Agile-практик. У 2008-2009 роках він активно працював над поліпшенням взаємодії між командами Dev та Ops, що це врешті решт вилилося в конференції DevOpsDays та нову методологію DevOps.
Нинішнє. Через 13+ років після усіх цих подій бізнес прийшов до того, що DevOps-інженери не лише про зворотний зв’язок та оптимізацію ресурсів.
Ця посада тепер приховує дещо більше. Вона містить виняткові ролі та обов’язки під завдання конкретної організації.
Який він, сучасний DevOps-інженер? Чим займається на роботі та за що відповідає? Про це й поговоримо.
Хто такий DevOps-інженер?
DevOps-інженер відповідає за безперебійну роботу ІТ-інфраструктури компанії. Він працює із розробниками над розгортанням та управлінням змінами коду. А також з командами, що відповідають за експлуатацію, аби забезпечити безперебійну роботу систем. Щоб бути успішним у цій ролі, спеціаліст повинен глибоко розуміти процеси розробки, експлуатації та мати технічний досвід.
Оскільки світ бізнесу все більше залежить від технологій, роль DevOps-інженера стає дедалі важливішою. Компанії шукають людей, які можуть допомогти їм оптимізувати свої операції та максимально ефективно використовувати свою ІТ-інфраструктуру.
Що робить DevOps-інженер?
DevOps-фахівець відіграє важливу роль в інтеграції функцій та ресурсів проєкту протягом усього життєвого циклу продукту. Починаючи з планування, створення, тестування й розгортання, закінчуючи підтримкою.
Спеціалісти мають вміти працювати з інструментами, які можуть знадобитися для автоматизації процесів та тестування. Основна ціль цієї професії:
- пришвидшити релізи,
- покращити комунікацію між відділами,
- автоматизувати рутинні процеси,
- підвищити ефективність команд,
- покращити якість продукту.
І як результат цього всього: збільшити прибуток для бізнесу. Задачі із зірочкою, щиро кажучи. Тому не дивно, що DevOps-інженерам гарно платять.
Робота DevOps-інженером в Україні: зарплата
За даними Djinni, Middle DevOps традиційно входить до списку ТОП 5 професій, які найбільше шукають рекрутери.
Стосовно зарплат, то за тією ж статистикою, DevOps-фахівці — найдорожча серед популярних професій. Спеціаліст цього напрямку із досвідом від 3 до 5 років, швидше за все, знайде роботу в Україні з місячною чистою зарплатою від 3 до 7 тисяч доларів.
За статистикою DOU, спеціалісти DevOps/SRE отримують:
- Middle DevOps — $2 900,
- Middle SRE — $2 650,
- Senior DevOps — $5 000,
- Senior SRE — $5 200,
- Junior DevOps — $1 200.
То ж за що ж їм платять?
Загальні навички, якими має володіти DevOps-фахівець
Обов’язки DevOps-інженера — багатогранні, адже він має бути і технарем, і керівником. Ось деякі з основних:
- Розуміти вимоги замовника та KPI проєкту
- Впроваджувати різні інструменти розробки, тестування, автоматизації та ІТ-інфраструктури
- Планувати структуру команди та її діяльність
- Налаштовувати інструменти та необхідну інфраструктуру
- Визначати та налаштовувати процеси розробки, тестування, випуску, оновлення
- Мати технічні навички для перегляду та перевірки коду ПЗ
- Вміти усувати неполадки та виправляти помилки коду
- Моніторити процеси протягом усього життєвого циклу продукту
- Заохочувати та створювати автоматизовані процеси скрізь, де це можливо
- Виявляти та розгортати заходи кібербезпеки шляхом безперервної оцінки вразливостей та управління ризиками
- Управляти інцидентами та аналізувати основні причини
- Налагоджувати комунікацію всередині команди та з клієнтами
- Вибирати та розгортати відповідні інструменти CI/CD
- Наставляти та направляти членів команди
- Моніторити та вимірювати клієнтський досвід та KPI
- Вести періодичну звітність про виконану роботу перед керівництвом та замовником
Досвід та основні навички, необхідні DevOps-інженеру:
- Робота з інфраструктурою на базі Linux
- Відмінне розуміння Ruby, Python, Perl та Java
- Вміти налаштовувати та керувати БД, такими як MySQL, Mongo
- Мати навички усунення несправностей
- Знати різні опенсорсні інструменти та технології, типу Kubernetes
- Розумітися на хмарних сервісах
- Бути поінформованим про найважливіші концепції DevOps та принципи Agile
Ролі DevOps-інженера: які вони бувають та спектр відповідальності
Команда DevOps будується з урахуванням наявних процесів розробки ПЗ. DevOps контролює наскрізну розробку та розгортання програмного забезпечення. Зазвичай людина, яка «сидить нагорі», повинна керувати всією командою як з технічними, так і нетехнічними знаннями.
Загалом, кожна організація впроваджує DevOps відповідно до своїх потреб. Нижче навели деякі з робочих ролей, важливих обов’язків та необхідних навичок фахівців зі сфери.
Роль | Навички/технології |
Release Manager | Планування та управління життєвим циклом програмного забезпечення |
DevOps Lead | Jenkins, Git, Nagios, Zabbix, bit bucket, SVN, Chef, Puppet, Ansible |
DevOps Automation Expert | Git, SVN, bitbucket, Jenkins |
DevOps Testing Professional | Модульне тестування, тестування збірки, Selenium, MySQL |
DevOps System Engineer | Linux, AWS, Azure |
DevOps Security Professional | Аналіз ризиків, тестування на проникнення |
DevOps Software Developer | C, C++, Java, Ruby |
DevOps Release Manager
Менеджер випусків — це досвідчений професіонал у сфері ПЗ. Зазвичай реліз-менеджер має не менше 3-4 років досвіду роботи в ІТ. Фахівець повинен добре знати наскрізну розробку програмного забезпечення та життєвий цикл розгортання.
Такий менеджер повинен мати хороші навички спілкування, оскільки йому часто доводитиметься комунікувати як з професіоналами з управління, так і з технічним персоналом, залученим до проєкту.
Обов’язки DevOps Release Manager
- Контролювати життєвий цикл доставки програмного забезпечення
- Керувати плануванням проєкту та документацією для членів команди
- Забезпечувати якість продукту, шляхом аналізу відгуків клієнтів
- Керувати ризиками та зменшувати їх шляхом належного планування
- Підтримувати зв’язок між технічним і управлінським персоналом
Devops Lead
Керівник DevOps має 3-4 роки досвіду лише в DevOps. Він керує всім циклом DevOps і відповідає за належне виконання процесу. Фахівець повинен:
- мати широкі знання про різні інструменти автоматизації, які використовуються членами команди
- знати, як реалізувати цикл DevOps
- мати знання про широкі інструменти та технології DevOps
- вміти вирішувати, які інструменти та технології підійдуть відповідно до потреб проєкту.
Devops Lead відповідає за підтримку високої доступності робочого та невиробничого середовища.
Обов’язки та навички керівника DevOps
- Відстежувати інфраструктуру безперервної інтеграції та розгортання
- Отримувати відомості про реалізацію конвеєрів CI/CD за допомогою таких інструментів, як Jenkins, Chef, Puppet, Git
- Мати навички роботи інструменти моніторингу, такі як Nagios, Zabbix тощо
- Відповідати за управління високою доступністю виробничої та невиробничої інфраструктури
- Вміти працювати з платформами хмарних обчислень, таких як IaaS, PaaS, SaaS
- Мати великий досвід використання AWS, Azure, OpenShift тощо
Devops Automation Expert
Експерт з автоматизації DevOps — відповідає за створення автоматизованих конвеєрів для виробничого та невиробничого середовища. Фахівець зазвичай має 2-3 роки досвіду в IT. Експерт з автоматизації DevOps знається на Unix і Linux. Вміє автоматизувати завдання за допомогою сценаріїв оболонки.
Обов’язки та навички експерта з автоматизації DevOps
- Створювати автоматизовані конвеєри CI/CD
- Мати знання GIT, SVN, Jenkins
- Розумітися на Unix
- Знати сценарії Shell, Perl, Python
- Мати досвід створення автоматизованих конвеєрів CI/CD за допомогою таких інструментів, як Gitlab, Jenkins, Chef, Ansible і Puppet
- Мати знання про розгортання контейнерів за допомогою інструментів контейнеризації, таких як Docker
DevOps Testing Professional
Професіонал з тестування DevOps — відповідає за написання автоматизованих тестів для програм, що розробляються. Спеціаліст повинен мати 2-3 роки досвіду ІТ у тестуванні ПЗ. Обов’язково треба володіти інструментами типу Selenium, Cucumber, Silktest.
Ролі та обов’язки спеціаліста з тестування DevOps
- Володіти глибокими знаннями щодо тестування ПЗ
- Вміти створювати автоматизовані тестові конвеєри
- Володіти глибокими знаннями модульного тестування
- Вміти кодувати на Python, Java
- Чітко розуміти суть методології DevOps
DevOps System Engineer
Системний інженер DevOps повинен мати досвід підтримки та моніторингу систем ІТ-інфраструктури. Фахівець має знати, як створювати високодоступні, відмовостійкі системи для виробничого та невиробничого середовища. А ще, розумітися на хмарних обчисленнях.
Ролі та обов’язки системного інженера DevOps
- Відповідати за збереження інфраструктури
- Володіти UNIX, Linux на високому рівні
- Експертно створювати сценарії за допомогою скриптів Shell, Python, Perl,
- Добре знати AWS, Azure, OpenShift тощо
- Володіти навичками MySQL
DevOps Security Professional
Професіонал з безпеки в DevOps має близько 2-3 років досвіду у сфері безпеки ІТ-інфраструктури. Спеціаліст відповідає за безпеку, оцінює її та створює план протидії загрозам.
Ролі та обов’язки спеціаліста з безпеки DevOps
- Чітко розуміти безпеку системи та мережі
- Оцінювати ризики та складати план їх зменшення
- Знатися на брандмауерах, IDS, ОС
- Розуміти тестування на проникнення
- Використовувати такі інструменти, як Metasploit, Nmap, Wireshark, Snort
- Мати глибокі знання безпеки в хмарі
DevOps Software Developer
Розробник ПЗ в DevOps повинен мати досвід написання якісного коду протягом 2-3 років. Фахівець має працювати з такими інструментами керування версіями ПЗ, як Git, SVN тощо. DevOps Software Developer повинен глибоко розуміти різні етапи процесів розробки ПЗ.
Ролі та обов’язки розробника ПЗ в DevOps
- Мати експертизу в комерційних IDE, таких як IntelliJ idea, Komodo тощо
- Вміти писати високоякісний код
- Мати глибоке розуміння алгоритму та структури даних
- Знатися на C, Java, Ruby тощо
Післяслово
Більшість професіоналів, які працюють у сфері DevOps, є:
- або системними адміністраторами, які набули більшого розуміння програмування,
- або програмістами, які розвинули навички системного адміністрування.
Та є й ті, хто навчився усього з нуля. В будь-якому випадку, цей матеріал допоможе обрати оптимальний шлях до бажаної посади.
Хочеш зробити кар’єру в DevOps?
Обирай авторські курси DevOps від ITEDU, що допоможуть ІТ-фахівцям полегшити перехід від традиційних практик розробки програмного забезпечення до DevOps.
Не маєш досвіду в ІТ, але хочеш опанувати нову сферу — ось список курсів для тих, хто починає знайомство зі сферою.
Нехай прибуде з тобою сила знань 🖖