iTechArt logo

Кто такой DevOps и что стоит за этой профессией

Development & QA

Согласно аналитике сервиса Glassdoor, профессия DevOps входит в десятку самых оплачиваемых позиций 2021 года. Оно и понятно: спрос на профессионалов, способных управлять облачной инфраструктурой организации и помогать компаниям переносить свои услуги в облако, значительно вырос в связи с вынужденным переходом большинства бизнесов на удаленку. 

О востребованности DevOps ранее говорили и наши коллеги, а время показало, что тенденция сохраняется:  многие рекрутеры называют позицию DevOps своей задачей №1 при наборе персонала в 2021 году.

Отличный момент, чтобы присмотреться к этой специализации, не так ли? Тем более, когда на самые распространенные вопросы о карьере в DevOps готовы ответить опытные сотрудники iTechArt – Андрей Матусевич и Алесь Сойкин.
 

Наши собеседники
Матусевич Андрей_cropped.jpg

Андрей Матусевич

Software Engineer iTechArt

Определяет DevOps как культуру взаимодействия между различными командами на всех этапах Software Development Life Cycle.

Сойкин Алесь_cropped.jpg

Алесь Сойкин

Software Engineer iTechArt

Считает, что благодаря DevOps компании становятся более конкурентоспособными на рынке.

DevOps вакансии «не выходят из моды» вот уже несколько лет подряд, с чем это связано?

АНДРЕЙ МАТУСЕВИЧ: По моему мнению, это связано с цифровой трансформацией бизнеса, которая повлекла за собой увеличение объема предоставления IT-услуг и рост численности команд разработки. До определенного момента разработчики могли самостоятельно обслуживать эксплуатацию своего кода, затем стало накладно иметь в штате «универсальных бойцов», поскольку таким разработчикам приходилось платить больше денег за дополнительную экспертизу в смежных областях, хотя, по сути, они отвлекались от основного рода своей деятельности. С другой стороны, команды эксплуатации в их классическом виде не могли в полной мере удовлетворить этот запрос. 

Иными словами, возникла необходимость в расширении знаний о подходах и техниках управления продуктовыми средами для команд разработки. И тут пришли они…

DevOps всё же корректно называть отдельной профессией или это определенный круг обязанностей?

АЛЕСЬ СОЙКИН: DevOps – это прежде всего методология построения рабочих процессов, позволяющая упростить и ускорить доставку конечного продукта к пользователю, что, в свою очередь, позволяет быть компании более конкурентоспособной на рынке. Могу посоветовать книгу «Руководство по DevOps» (The DevOps Handbook), это простая в чтении и совсем не техническая книга, которая описывает, с какими проблемами может столкнуться бизнес и как их можно решить с помощью внедрения DevOps методологий. 

АНДРЕЙ МАТУСЕВИЧ: Многие видят в этом определенный стек технологий или просто модный Job Title. Для меня DevOps — это, в первую очередь, культура взаимодействия между различными командами (не только разработки и эксплуатации, но также QA, менеджмента и т.д.) на всех этапах Software Development Life Cycle (SDLC).

Широко распространено мнение, что единственной целью DevOps является уменьшение значения Time-to-Market показателя. Позволю себе не согласиться с этим: к целям DevOps я бы также добавил более тесную интеграцию команд по вопросам разработки продукта и эксплуатации кода, уменьшение количества ошибок через более частые релизы, что позволяет доставлять изменения в продуктивное окружение инкрементально, а также уменьшение времени на восстановление после отказа. И вот на выходе получается, что, преследуя эти цели, мы не можем вменить это в обязанности какого-то конкретного специалиста, поскольку это зона ответственности всех команд в целом.

Именно по этой причине мне трудно назвать каких-то конкретных специалистов, которые вовлечены в эти процессы, DevOps-инженерами, а уж тем более — очертить какой-то определенный круг их обязанностей. Несомненно, инженерная составляющая зачастую тут будет превалировать, но не всегда это чисто инженерная работа.

Какие задачи DevOps-у приходится решать ежедневно?

АЛЕСЬ СОЙКИН: Я работаю на крупном IT проекте, который в качестве инфраструктурной платформы использует AWS. Все мои задачи в основном связаны с инфраструктурной частью проекта и автоматизацией процессов разработки. Я, как и другие члены команды, поддерживаю в актуальном состоянии наши infrastructure as code (Cloudformation) и configuration management (Puppet) репозитории, выкатывая их релизы раз в неделю, вместе с релизами со стороны команд разработки.

Также мы активно используем Jenkins для автоматизации большинства рутинных задач, как наших, так и задач разработчиков. И если что-то ломается – мы разбираемся и чиним это.

Какие проблемы есть сейчас на рынке DevOps-инженеров?

АНДРЕЙ МАТУСЕВИЧ: Если говорить именно про рынок труда, то это, конечно же, дефицит DevOps специалистов высокого уровня.

Если же говорить про самих специалистов, то тут бы я отметил некоторую пассивность в коммуникациях и акцент на углубление в строго определенный стек технологий, что не всегда соответствует T-Shaped модели навыков и обусловлено «хайповостью» той или иной технологии. Однако позволю себе заметить, что это не проблема для них самих, поскольку в силу высокого спроса на такого рода специалистов проект или компания, соответствующая их skills set, с высокой долей вероятности найдется без особых проблем.

Насколько высок порог входа в эту профессию?

АЛЕСЬ СОЙКИН: Думаю, самостоятельно и с нуля будет весьма непросто разобраться, что стоит изучать прямо сейчас, а что можно отложить на потом. Однако благодаря стажировкам, которые предлагают iTechArt и другие большие компании, стать DevOps будет не сложнее, чем разработчиком. Однако важно понимать, будет ли это вам это действительно интересно, так как задачи и зона ответственности у разработчиков и DevOps сильно разнятся. 

Я вообще учился на разработчика мобильных приложений, однако мне всегда было очень интересно разбираться как работаю большие IT-проекты в целом и как взаимодействуют их компоненты между собой на уровне инфраструктуры. Университет дал мне хорошую базу по разработке, я самостоятельно изучил на очень базовом уровне Linux и на 4 курсе университета стал работать как Junior Linux System Administrator. У меня был замечательный ментор, который передал очень важный для меня опыт. Именно благодаря ему у меня появилось понимание, в каком направлении мне нужно двигаться дальше. Сразу после армии я устроился на позицию Cloud Support Engineer, где занимался развертыванием и обслуживанием крупных приватных облачных инфраструктур. А после перешел в iTechArt на позицию DevOps Engineer, где и работаю по сей день.

И всё-таки, как найти того самого DevOps в команду, и как выглядит правильный DevOps Engineer?

АНДРЕЙ МАТУСЕВИЧ: На самом деле, критерии «правильности» довольно субъективны. Специалист, который востребован по этому направлению в определенной компании, может быть не к месту в другой. И во многих случаях это даже будет не его вина – многое зависит от складывающихся обстоятельств и критериев, выставляемых компанией по отношению к специалисту. Чем конкретнее выставлены эти критерии, тем больше шансов найти более «правильного» специалиста.

Для меня must have для соискателя – это горящие глаза, хорошие коммуникативные навыки, желание и способность к обучению и саморазвитию, и, конечно же, определенный технический бэкграунд.

Периодически в интернете можно прочитать кейсы о том, как компании отказываются от звена тестирования, оставляя только разработчиков. Может ли проект ли прожить без DevOps, как без QA? 

АНДРЕЙ МАТУСЕВИЧ: Скажу больше: некоторые компании не подозревают или не заинтересованы в найме такого рода специалистов. Одни «вывозят» самостоятельно, другие могут быть не готовы к имплементации и использованию DevOps практик у себя.

Компания должна быть готова к DevOps трансформации, и запрос на эту трансформацию должен быть сформирован естественным образом и в конечном счете преследовать определенные бизнес цели. В таком случае высока вероятность того, что DevOps практики и вовлеченные в них специалисты действительно будут востребованы.

Какой стек технологий нужен DevOps на постоянной основе, а какой – из разряда «nice to have»? И какие soft skills должны быть у DevOps инженера?

АЛЕСЬ СОЙКИН: Самое важное – это крепкое понимание устройства операционных систем Linux и знание компьютерных сетей и сетевых протоколов. Что же касается инструментов и технологий, используемых в DevOps – проще всего пролистать актуальные вакансии и посмотреть, что требуется чаще всего, так как даже для решения какой-то одной задачи может быть сразу несколько инструментов со своими преимуществами и недостатками.

Soft skills в работе DevOps важны ничуть не меньше, чем hard skills, так как сама методология подразумевает активное взаимодействие специалистов по разработке со специалистами по информационно-технологическому обслуживанию и взаимную интеграцию их рабочих процессов друг в друга. Важно иметь критическое мышление, навыки работы в команде и навыки организационной деятельности. 

АНДРЕЙ МАТУСЕВИЧ: К списку базовых технических навыков я бы отнес знания основных методов и подходов построения и эксплуатации информационных систем (в большинстве случаев это будут инфраструктуры, предоставляемые облачными провайдерами), основных сетевых протоколов, основ операционных систем и сетевой безопасности, а также знание хотя бы одного скриптового языка для автоматизации рутинных задач.

Приветствуется, а иногда и обязателен опыт в построении и эксплуатации CI/CD систем, взаимодействии с различными API, контейнеризированными приложениями, а также их оркестрация (тут чаще всего ожидаются знания Kubernetes, поскольку он уже практически стал отраслевым стандартом).

От специалиста в DevOps ожидается, что он должен хорошо разбираться в различных инструментах и технологиях, применяемых на всех стадиях жизненного цикла доставки ПО. Кроме того, он должен знать и предвидеть, как различные зависимости на разных этапах CI/CD конвейеров могут повлиять на конечный результат.

Часто встречаюсь с мнением, что DevOps — это такой «админ на стероидах» за более высокую зарплату. Как по мне, хорошим специалистом, имплементирующим и использующим DevOps практики, может стать не только специалист с опытом системного или сетевого администрирования. Я больше склоняюсь к мнению, что стать хорошим специалистом в DevOps субъективно больше шансов у разработчика, поскольку зачастую именно команды разработки инициируют изменения по улучшению процессов разработки, интеграции и эксплуатации кода, админы же менее склонны к изменениям: сказывается профессиональный менталитет «работает – не трогай».

Как организовано собеседование на позицию DevOps в iTechArt? На чём обычно проваливаются кандидаты?

АНДРЕЙ МАТУСЕВИЧ: Не могу сказать за всю компанию, но в U5.GoD это общая и техническая часть интервью без тестового практического задания, но зачастую с очень каверзными вопросами по дизайну систем (как правило, с использованием облачных решений) и конвейеров доставки, а также реализации конкретных бизнес-задач с использованием определенного стека технологий, вытекающего или близкого к техническому бэкграунду кандидата.

Зачастую невозможно предугадать, как будет развиваться интервью, но обычно нам вполне хватает полтора часа на техническую часть,чтобы сформировать определенную картину по hard skills кандидата.

По результатам всего собеседования вместе с менеджером и рекрутером мы обсуждаем все подмеченные в ходе интервью нюансы, чтобы понять, подойдёт ли он в нашу обойму или нет. Пользуясь случаем, хочу поблагодарить ребят за то, что на старте интервью им получается раскрепостить кандидата и настроить его на нужный лад – это здорово помогает при проведении технической части.

Основными причинами отказа я бы выделил недостаточный уровень или опыт владения сопутствующими с DevOps технологиями, которые кандидаты указывают в резюме – случается, что указанный ими опыт не всегда релевантен с тем, что они готовы продемонстрировать в ходе интервью.

Немаловажным, а порой и определяющим фактором являются soft skills (не забываем, что DevOps – это не только про технологии, но также про людей и процессы), были случаи отказа именно по этой причине.

Кроме того, иногда в ходе интервью понимаешь, что кандидат отлично бы интегрировался по техническим навыкам в определенные проекты, но вот уровень владения английским языком оставляет желать лучшего. Это бы я тоже отнес к списку причин отказа.

К каким сложностям DevOps должен быть готовым?

АЛЕСЬ СОЙКИН: Как и любой IT-специалист, DevOps должен постоянно учиться. Технологии очень быстро развиваются, появляются новые, устаревают существующие. Не получится просто один раз выучиться и так работать до пенсии. Чем больше ты работаешь – тем больше понимаешь, как много ты ещё не знаешь. Нужно это понимать и быть к этому готовым.

Как насчёт карьерных перспектив? Куда может вырасти грамотный DevOps?

АНДРЕЙ МАТУСЕВИЧ: Он может вырасти в очень грамотного специалиста с отличными знаниями архитектур информационных систем, построения и налаживания внутренних процессов взаимодействия между различными командами, умеющий думать и проектировать информационные системы на перспективу с опцией их гибкой адаптации под изменяющиеся условия.

Я считаю, что это неплохое подспорье для системных архитекторов, менеджеров по продукту и Delivery менеджеров, и наша компания способствует развитию специалистов в этих направлениях.