DevOps з нуля: різниця між Trainee та Junior
DevOps-інженерів бізнеси розбирають швидко, як гарячі пиріжки. Талановитих спеціалістів не так багато, хоча попит зі сторони компаній — високий. На сайті Djinni в Україні шукають роботу 986 фахівців цієї сфери, серед них 4 DevOps Trainee та 45 фахівців рівня Junior.
Щодо попиту з боку компаній: на DOU розміщено 142 вакансії у цій сфері, а на Djinni — 458. Для кандидатів без досвіду або з досвідом до 1 року, пропозицій на цих сайтах 3 та 6.
Конкуренція є, але без неї було б нецікаво. Проте до кандидатів у сфері DevOps ринок не настільки жорстокий, як до інших спеціалістів.
За даними Djinni, на одну вакансію розробника-початківця претендують 135 кандидатів, для тестувальників цей показник вищий — 298 спеціалістів. Для DevOps-початківців ситуація краща — 21 кандидат на одне місце.
Як потрапити у сферу DevOps, з чого почати та який заголовок писати в резюме — відповіді на ці питання й розглянемо у матеріалі.
Хто такий DevOps Trainee?
Той, хто лише починає свій шлях у DevOps. В нього є базове розуміння про сферу та майбутні задачі, але ще немає практичного досвіду. Trainee також може мати попередній досвід програмування чи системного адміністрування.
Навчання DevOps Trainee зазвичай включає CI/CD, автоматизацію, моніторинг, хмарні обчислення та інфраструктуру як код.
Наступна сходинка — Junior DevOps Engineer
Junior DevOps — це спеціаліст з невеликим практичним досвідом у сфері. Він має не лише базові знання, а й навички та певний досвід з розробкою ПЗ, ІТ-операціями та управлінням інфраструктури.
До задач фахівця цього рівня можуть входити встановлення та конфігурація середовищ розробки та тестування, автоматизація розгортання та задачі з системного адміністрування. Він також може брати участь у моніторингу та усуненні несправностей систем, обслуговуванні ПЗ та допомагати з впровадженням нових технологій та інструментів.
Junior DevOps співпрацює з досвідченими інженерами та іншими командами, щоб розвивати свої навички, а також покращувати життєвий цикл розробки програмного забезпечення.
Навички DevOps Trainee
Кар’єру у сфері можна почати з позиції Trainee DevOps. Цей варіант підійде тим, хто не має айтішного бекграунду. Що для цього потрібно?
Хоч кожна компанія може мати особливі вимоги до кандидатів, загальні навички Trainee DevOps включають розуміння:
- Основ розробки ПЗ. Маєш розуміти принципи, методології та інструменти розробки програмного забезпечення. Сюди відноситься знання мов програмування, систем контролю версій і фреймворків тестування.
- ІТ-операцій. Необхідно розуміти, як все влаштовано: про системне адміністрування, керування мережею та адміністрування баз даних.
- Процесів та інструментів DevOps. Маєш знати про безперервну інтеграцію та доставку (CI/CD), контейнеризацію, автоматизацію та інфраструктуру як код.
- Хмарних обчислень. Тут мова про базове уявлення про хмарні платформи, такі як Amazon Web Services, Microsoft Azure або Google Cloud Platform.
Це означає, що ти орієнтуєшся в процесах, розумієш методологію та маєш базові навички роботи з різними інструментами.
Щодо нетехнічних навичок:
- Вміння розв’язувати проблеми та аналітичні навички. Це допоможе знаходити ефективні рішення та визначати сфери, які потрібно покращити.
- Комунікаційні навички. Потрібні для продуктивної роботи з іншими членами команди та топменеджментом.
- Постійне навчання. Щоб встигати за змінами у сфері, необхідно навчатися нових технологій, інструментів та бути в курсі найкращих практик.
Все це допоможе отримати можливість потрапити у DevOps та розвиватися у цій сфері.
Що повинен знати та вміти Junior DevOps?
Наступним кроком до омріяної кар’єри є роль Junior DevOps. На цьому етапі треба не просто розуміти, як все влаштовано, але й більше вміти робити руками.
Коли все це вже вмієш та знаєш, можна переходити від початківця до джуна:
- Розробка ПЗ. Junior DevOps не лише добре розуміє життєвий цикл розробки ПЗ та необхідні інструменти та технології. Він має практичний досвід роботи з ними та вміє автоматизувати рутинні завдання. Щоб автоматизувати, необхідно знати хоча б одну мову програмування (до прикладу Python або Ruby), а також мати досвід із Bash або Shell.
- Контроль версій. Потрібно знати системи контролю версій, наприклад, Git. Треба вміти створювати та керувати репозиторіями коду, а також знатися на методах розгалуження, злиття та управління версіями.
- Інфраструктура як код або IaC. Необхідно розуміти концепції та принципи й вміти керувати інфраструктурою за допомогою коду. Потрібно вміння прописувати базову інфраструктуру за допомогою Terraform або CloudFormation.
- CI/CD. Теж потрібно знати концепції та вміти налаштовувати конвеєри безперервної інтеграції та доставки за допомогою Jenkins, Travis CI або CircleCI.
- Хмарні обчислення. На відміну від trainee, на цьому етапі треба вміти розгортати програми на хмарних платформах, керувати базовою хмарною інфраструктурою та автоматизувати процеси.
- Контейнеризація. Про Docker та Kubernetes маєш знати не з чуток. А ще вміти створювати образи контейнерів, розгортати їх та оркеструвати.
- Моніторинг і логування. Потрібно вміти налаштовувати інструменти моніторингу та логування, такі як Prometheus, Grafana або стек ELK.
Знання… Вони всюди. Ще більше інформації та інструментів знайдеш у цьому матеріалі.
Для того, щоб додати Strong до Junior DevOps в описі профілю, необхідно мати ще більше практичного досвіду, а також розумітися на безпеці та відповідності. Знати методи безпечного кодування, керування ідентифікацією та доступом, а також шифрування. Ще потрібно знати правила відповідності: HIPAA, GDPR та PCI-DSS.
Сюди можна додати досвід усунення несправностей та налагодження, вміння аналізувати логи та контролювати системні показники. Також досвід роботи з методологіями Agile.
Це все круто, але де отримати необхідні знання?
Навчання методології та інструментарію DevOps — таке ж навчання, як і у будь-якій іншій сфері.
Перегляд фільмів, як у випадку з вивченням англійської, тут не підійде, але варіанти є.
DevOps включає багато інструментів та технологій, тож навчатися самостійно — складний та довгий процес. Щоб не розтягнути своє навчання на роки, можна обрати відповідний курс.
Важливо розуміти, що навчитися цієї професії за 3 місяці не вийде. Необхідні комплексний підхід, ціль та велике бажання. Спершу треба отримати базові знання, а потім постійно вдосконалюватися, розвивати навички та навчатися нових технологій. А ще практика, практика та ще раз практика.
Щоб впевнитись, чи справді ти хочеш розвиватись у сфері, можемо порадити книги: «The Phoenix Project», яка описує, як працює сфера ІТ та «The DevOps Handbook», щоб більше дізнатись про методологію.
Якщо готовий до викликів, теорії та різнопланових задач — реєструйся на курси DevOps, що формують навички. Потім створюй резюме DevOps Trainee, розвивайся до Junior спеціаліста, а там вже недалеко до Middle та Senior 👌