Давайте в самом начале расставим все точки над “i”. DevOps - это не человек, DevOps - это набор практик и инструментов, нацеленных на ускорение процессов разработки. Обратившись к Википедии, мы узнаем, что DevOps - технология (методология) активного взаимодействия специалистов по разработке со специалистами по информационно-технологическому обслуживанию и взаимную интеграцию их рабочих процессов друг в друга для обеспечения качества продукта. Предназначена для эффективной организации создания и обновления программных продуктов и услуг.
Давайте представим. Вы сидите в любимом свитере с оленями, компилируете ядро и особо не переживаете за то, как там работает ваш апликейшн на бизнес уровне. Для того, что б задеплоить новую версию продукта, вам присылают последний код в виде tar архива или, что еще хуже, приносят его на флешке. Не разбираясь, что там, вы просто копируете содержимое архива на сервер и запускаете скрипты, которые обновляют код. И все бы ничего, но код имеет свойство ломаться, и в какой-то момент скрипт выходит не с нулем. Вы пишите письмо разработчику, что код плохой, не деплоится. Разработчик в свою очередь пишет, что у него на локальной машине все работает, и начинается никому не нужная ругань. А от этого страдает что? Правильно — бизнес. Если, прочитав это, вы узнали свою команду - вам самое время внедрять DevOps практики. В результате вы сможете ускорить разработку без потери качества.
В Украине DevOps по моим ощущениям возник в 2013-2014 годах, когда на известном сайте dou.ua ребята в рубрике с вакансиями переименовали «Системных администраторов» в «DevOps инженеров». И все в один день стали DevOps инженерами. Только зарплаты не сразу стали как у DevOpsов, если вы понимаете, о чем я.
DevOps инженеры сейчас очень востребованы. В любой команде разработки вы найдете минимум одного DevOps инженера. Средний уровень зарплат этой специализации сейчас колеблется в пределах 2000-3000 тысяч долларов. Верхний порог – больше 6000 тысяч долларов. Неплохая перспектива, не так ли?
Исходя из личного опыта, я бы не советовал заходить в IТ через эту специализацию. Очень высокие требования к начальным знаниям. Необходимо знать хотя бы на базовом уровне очень много технологий и инструментов. Оптимальным вариантом будет переход в DevOps инженеры с позиции системного администратора или разработчика, так как эти специализации предусматривают владение схожими практиками и навыками.
Необходимо владение многими технологиями и инструментами, основные из них:
CI/CD инструменты, такие как Jenkins, TeamCity, GitlabCI, TravisCI;
облачные провайдеры. AWS, GCC, Azure:
логгинг и мониторинг. Grafana, ELK stack, Prometheus;
инфраструктура как код. Terraform, Cloudformation;
управление конфигурациями. Ansible, Puppet, Chef;
Docker;
git. Без него никуда. Все сейчас как код;
базовые знания языков программирования. Python, Ruby. Ну и Shell
скриптинг. Без него никуда. Ну и ко всему этому не забываем про английский язык хотя бы на уровне Pre-Intermediate. Владение технологиями вышеперечисленного списка позволит претендовать на Middle DevOps engineer позицию, ведь позиции Junior DevOps engineer встречается крайне редко. Еще одним хорошим вариантом будет устроится в интернатуру крупной Компании. Но это уже совсем другая история.
Если вы работаете в IТ и можете администрировать сервера по ssh, или очень хотите этому научиться, вам необходимо подтянуть знания и навыки в технологиях и инструментах, описанных выше. Сделать это можно посредством просмотра лекций или посещения специализированных DevOps курсов. Совет напоследок. Первые 3 собеседования будет очень больно. Тут главное не сдаваться и не останавливаться. Дорогу осилит идущий.