Чи справді Junior DevOps Engineer — новачок?
Я Павло Завада — співзасновник компанії NETFORCE Ukraine, що надає послуги системного адміністрування та DevOps, а також IT Education Center, де навчаю технологій цієї сфери.
DevOps не такий відомий напрям в ІТ, як тестування чи розробка. Стандартний жарт «спробуй пояснити бабусі, ким ти працюєш» у цьому випадку виходить на новий рівень. Іноді складно пояснити навіть друзям.
Хочу допомогти тим, хто розглядає DevOps як можливий напрям для себе, незалежно від технічного бекграунду. Розберемося, що це за спеціальність, які знання та навички потрібні джуну та чи можна його назвати початківцем.
Що таке DevOps
DevOps — це методологія, що допомагає покращити взаємодію команд Dev та Ops. Головна мета — випускати продукти швидше, але з вищою якістю.
Цього можна досягти за допомогою покращення процесів збирання коду, тестування та розгортання, створення міжфункціональних команд, розвитку культури DevOps тощо.
На проєктах ми автоматизуємо рутинні процеси, налаштовуємо CI/CD пайплайни, надаємо інфраструктуру як код, щоб полегшити управління нею, та моніторимо системи, щоб вчасно помічати проблеми й усувати їх. І все ж це лише частинка задач.
Посада DevOps-інженера вимагає сильних hard skills. Потрібно вміти працювати з багатьма різними інструментами та технологіями. Kubernetes, Docker, Ansible, Terraform, Jenkins, Prometheus, Grafana — список можна продовжувати довго.
Тож яким має бути Junior DevOps у цьому потоці задач та технологій?
Junior DevOps Engineer — чи така роль існує?
Мені ставили й таке питання — і не дарма. Якщо заради цікавості подивитися вакансії, можна натрапити на:
- Senior System Administrator / Junior DevOps Engineer — не ясно, чи можна зайняти таку посаду, якщо не пройти до цього шлях сисадміна. Тож це збиває зі шляху тих, хто хоче потрапити у сферу, але не має відповідного досвіду.
- Просто DevOps Engineer — рівень навіть не вказують, що примножує непорозуміння. Ви можете бути middle, але продати себе як junior, тому що в різних компаніях відрізняються вимоги до фахівців одного рівня. Я бачив вакансії junior з вимогою
3-х років досвіду та strong junior із 1,5 роками. Тож будьте уважні.
У самій сфері є складнощі із визначенням такого фахівця, але роль Junior DevOps Engineer існує.
Потрібні навички
Джун DevOps — це спеціаліст, який уже вміє щось робити руками. Він має досвід з розробкою ПЗ, ІТ-операціями та управлінням інфраструктури. Якщо ви лише маєте уявлення, як усе працює, то варто почати з позиції Trainee.
Від Junior DevOps Engineer очікують досвід:
- адміністрування ОС Linux. Із цього все починається, тому на позицію й розглядають системних адміністраторів. Вони мають досвід віртуалізації, налаштування інфраструктури, її захисту та troubleshooting;
- автоматизації. Наприклад, за допомогою Ansible, Puppet чи Chef;
- зі скриптовими мовами: Bash, Python тощо. Вибір мови не так важливий — ці знання потрібні, щоб автоматизувати рутинні завдання;
- інфраструктурою як кодом (IaC). Необхідно розуміти концепції та принципи й вміти керувати інфраструктурою за допомогою коду, а також прописувати базову інфраструктуру з Terraform або CloudFormation;
- контейнеризації та оркестрації (Docker та Kubernetes). Йдеться про вміння створювати образи контейнерів, розгортати їх та оркеструвати;
- із системами моніторингу. Потрібно налаштовувати інструменти моніторингу та логування, такі як Prometheus, Zabbix або стек ELK;
- із хмарними провайдерами: Google Cloud, AWS, Azure. Це про розгортання програми на хмарних платформах, керування базовою cloud-інфраструктурою та автоматизацію процесів;
- безперервної інтеграції та доставки (CI/CD). Необхідно вміти налаштовувати конвеєри CI/CD за допомогою Jenkins, Travis CI або CircleCI.
Окрім того, Junior DevOps має добре розуміти життєвий цикл розробки ПЗ, необхідні інструменти та технології, а ще мати практичний досвід роботи з ними. Це важливо, тому що ви працюватимете з іншими командами саме над покращенням SDLC.
Також потрібно знати системи контролю версій — наприклад, Git. Треба вміти створювати та керувати репозиторіями коду, а ще розуміти методи розгалуження, злиття та управління версіями.
Зверніть увагу й на знання англійської. Це стандартна вимога у сфері ІТ загалом, яка відчиняє вам двері до міжнародних проєктів. Ми в NETFORCE Ukraine теж оцінюємо англійську в наших кандидатів.
Задачі Junior DevOps-інженера
Припустимо, усі ці навички у вас є. Тож чим доведеться займатися?
Завдання Junior-фахівця виглядають приблизно ( пишу «приблизно», бо всі компанії та їхні задачі різні, тож цей список може варіюватися) так:
- адміністрування серверів та їхнє обслуговування;
- управління конфігураціями — встановлення та налаштування інфраструктури;
- упровадження та управління CI/CD;
- налаштування моніторингу;
- розв’язання проблем за допомогою нескладних скриптів;
- створення та супровід середовищ на хмарних платформах;
- автоматизація процесів;
- забезпечення та дотримання процедур безпеки, конфіденційності та захисту даних клієнтів.
Чим це відрізняється від інших джунів
Від початківців у тестуванні чи розробці не очікують попередній досвід на іншій позиції, як в історії з DevOps та системним адмініструванням. До речі, досвід тестування або розробки теж корисний для майбутнього DevOps-інженера.
Чому так: для QA важливе розуміння SDLC, знання основ тестування, frameworks та інструментів, баз даних і ще багато іншого. Але всі ці моменти пов’язані безпосередньо з тестуванням. Те саме і з розробниками.
Особливість DevOps у тому, що він залучений на всіх етапах життєвого циклу розробки ПЗ. Тому обсяг знань, навичок та інструментів, якими необхідно володіти, збільшується. DevOps-інженер об’єднує і розробників, і команду експлуатації, покращує процеси та взаємодію між командами. Він свого роду і швець, і жнець, і в дуду грець. І тому будь-який досвід у розробці стане в пригоді.
Зони відповідальності QA, розробника та DevOps-інженера — нескінченний цикл
Для прикладу візьмемо стандартну задачу DevOps — автоматизацію процесу розгортання. Щоб її виконати, потрібно розуміти вимоги до розгортання, залежності та обмеження.
Треба звернути увагу на середовище розгортання, бо від цього залежать конфігурації. Потім визначити специфікації заліза, інфраструктури та врахувати очікуваний трафік і навантаження на програму, щоб вона витримувала реальний потік реквестів. Важливо не забути жодну залежність — бібліотеки, БД, сторонні служби або API та інфраструктурні залежності. І вишенька на торті — бюджетні, часові та ресурсні обмеження, а ще відповідність нормам (наприклад, GDPR, HIPAA).
На позиції Junior ви точно не займатиметеся всім самостійно, тож не лякайтесь. Але якщо все ж доведеться, то раджу змінити проєкт, адже так ви не навчатиметеся, а тільки засвоюватимете власні помилки.
Крім технічних навичок, від Junior DevOps Engineer чекають сильних комунікативних умінь. Вам слід уміти спілкуватися однією мовою з командами розробників, тестувальників, експлуатації, а ще — з внутрішнім чи зовнішнім замовником. Знадобиться й вправність у розв’язуванні конфліктів.
Тому назвати Junior DevOps Engineer початківцем складно. Це фахівець, що має серйозний технічний бекграунд. Тут не так важливо, чи він отримав його на інших посадах, чи навчився з нуля, але має практичні приклади. Він має розуміти процеси, щоб їх оптимізувати.
Висновок
У статті ми з усіх сторін розглянули посаду Junior DevOps Engineer. Почали з того, що це за сфера та чи існує в ній роль джуна. Часто такими фахівцями називають досвідчених системних адміністраторів, хоча мати такий досвід — необов’язково.
Іноді виникають запитання, проте така справді роль існує. Це фахівець, який уже має практичний досвід з основними технологіями та інструментами.
Ми розглянули вимоги компаній до спеціалістів цього рівня та чим вони займаються. Це допоможе визначити, коли ви готові претендувати на цю посаду.
Ви зможете правильно оцінювати вакансії. Якщо потрібно 3 роки досвіду на позицію джуна — проходьте повз. Деякі компанії взагалі не вказують рівень фахівця, тож проаналізуйте вакансію, щоб зрозуміти, чи це ваш рівень.
Junior DevOps Engineer — не новачок; він має широкий обсяг знань та навичок. Проте це не означає, що не варто пробувати подаватися на вакансії, якщо якогось досвіду вам не вистачатиме.
Вмістити в одну статтю всі поради початківцям у DevOps доволі складно. Тож якщо вам цікаво дізнатися більше про цей напрям, скоро я розповідатиму про нього на безплатному інтенсиві «Професія DevOps-інженер: твій неочевидний шлях в ІТ».
Також буду радий обговорити ваші питання в коментарях.
40 коментарів
Додати коментар Підписатись на коментаріВідписатись від коментарів