Баннер мобильный (1) Пройти тест

Кто такой DevOps-инженер?

Разбираем тонкости профессии в навыках, задачах, вакансиях и шашлыках

Гид по профессии

29 февраля 2024

Поделиться

Скопировано
Кто такой DevOps-инженер?

Содержание

    DevOps-инженер — связующее звено между всеми этапами создания продукта: от написания кода до релиза. Спрос на его труд растет из года в год, и даже младший специалист может рассчитывать на зарплату от 100 тыс. рублей. Мы попросили DevOps-инженера из Ростелекома, а также автора одноименного курса в SkillFactory Вячеслава Светлова разложить для нас его профессию по полочкам.

    Что такое DevOps?

    DevOps — это набор практик на стыке системного администрирования (Ops — Operations) и разработки (Dev — Development).

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

    Если возникала проблема, инженер инфраструктуры мог сказать: «С сервером все в порядке, проблема с кодом, дальше разбираться я не буду, проблема не моя», — а разработчик говорил: «На моем компьютере этот код работает, проблема с сервером, дальше разбираться я не буду, это не моя зона ответственности».

    Сисадмин, DevOps-инженер, тестировщик, программист и специалист поддержки взаимодействуют. Источник

    С приходом DevOps-инженера вся команда фокусируется на единой цели — создании качественного продукта.

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

    Что делает DevOps-инженер?

    DevOps-инженер синхронизирует все этапы создания программного продукта: от написания кода до тестирования и релиза.

    Это профессионал, имеющий широкие знания в IT и понимающий, как прийти к конечному продукту. Он хорошо разбирается в инфраструктуре, понимает принципы разработки приложений и построения их архитектуры. Еще он — менеджер-практик, знающий жизненный цикл приложения и современные методологии разработки.

    DevOps-инженер участвует во всем цикле создания ПО. Источник

    DevOps-инженер:

    • на этапе планирования работы помогает решить, какая архитектура будет у приложения, как оно будет масштабироваться;
    • мониторит работоспособность всех сред и инструментов разработки;
    • автоматизирует (где это возможно) определенные стадии создания продукта. Например, организацию автоматического тестирования создаваемого ПО;
    • налаживает коммуникацию между участниками команды;
    • решает задачи, которые помогают организовать работу разработчиков, тестировщиков, системных администраторов и менеджеров.

    А можно на простом примере?

    Есть два друга, которые хотят пожарить мясо на природе. Итоговый продукт их деятельности — шашлык. Друзья распределяют между собой задачи: один нанизывает мясо на шампур (сравним его с разработчиком), другой собирает мангал и разводит огонь (сравним его с инженером инфраструктуры).

    Угли готовы, мясо на шампурах, положили шампуры на мангал — ждут. Но пошел дождь, надо перенести мангал под тент, чтобы угли не потухли. Одному это сделать трудно, дождь усиливается.

    Без DevOps-культуры разработчик (отвечающий за нанизывание мяса на шампуры) может сказать: «Мясо на шампурах — моя работа сделана. Дальше разбираться я не буду», — и в итоге шашлыка никто не поест.

    DevOps-инженер — это третий друг, который заранее посмотрел прогноз погоды, понял, что будет дождь, взял с собой тент, развернул его и, когда погода испортилась, помог перенести мангал с мясом под тент. В итоге все насладились вкусным мясом (выпустили качественный продукт).

    Где нужен DevOps?

    DevOps-инженеры нужны в компаниях, которые разрабатывают ПО для себя или на заказ. При этом сферы могут быть самые разные: медицина, транспорт, спорт, автомобили и пр.

    Что ему нужно знать?

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

    • Опыт системного администрирования. Объективно определить уровень непросто, так как нет точных критериев оценки, но без базовых знаний Linux и сетей придется тяжко, поскольку придется плотно взаимодействовать с Ops-командой (командой инфраструктуры).
    • Навыки разработки. Нужно иметь представление о процессе разработки ПО и знания некоторых языков программирования (по многим оценкам, Python изучить легче всего. Также в тренде Java, Go и др.). Без понимания, как написать обращение к API и обработать его ответ, а также умения работы с Git точно не обойтись.
    • Английский язык. Он нужен постоянно — большая часть необходимой информации публикуется на англоязычных сайтах.

    Какие нужны софт-скилы?

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

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

    Вячеслав Светлов,
    эксперт в DevOps и Linux

    Насколько это востребовано и сколько получает DevOps-инженер?

    IDC прогнозирует, что количество специалистов DevOps с 2019 по 2024 год возрастет в два раза. Ожидается, что к 2024 году минимум 30% компаний внедрят полноценный цикл DevOps.

    По данным Research and Markets сфера DevOps переходит из нишевого инструмента в глобальный рынок, который имеет просто колоссальный потенциал для роста. За период карантина в 2020 году рынок вырос на 29,3%.

    В марте 2021 года на сайте hh.ru было более 4,3 тыс. вакансий DevOps-инженера.

    Можно заметить рост популярности запроса «devops» и других запросов по теме на графиках от сервиса Google Trends.

    Зарплата зависит от компании и навыков. Младший специалист DevOps в Москве получает от 70 до 150 тыс. рублей в месяц, а зарплата ведущего составляет примерно 250 тыс. рублей. По данным Хабр Карьеры, во втором полугодии 2020 года средняя медианная зарплата специалиста DevOps составила 155 тыс. рублей.

    На сайте hh.ru можно найти вакансии с зарплатой более 400 тыс. руб. в месяц. Больше всего вакансий предполагают доход от 105 тыс. до 265 тыс. рублей.

    Плюсы и минусы профессии

    Плюсы профессии:

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

    Минусы профессии:

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

    Чем DevOps отличается от Agile?

    Agile — обобщающий термин для целого набора принципов, подходов и практик, основанных на ценностях гибкой разработки. Такую методологию применяют для организации труда небольших групп. Она нацелена на минимизацию рисков при работе с помощью разделения разработки на короткие циклы, каждый из которых выглядит как отдельный конечный проект. Каждый из этапов обычно включает в себя спектр задач: планирование, анализ требований, проектирование, программирование, тестирование и документирование.

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

    DevOps-инженерами становятся:

    • Когда хочется освоить много компетенций сразу, разобраться в основах программирования и развивать коммуникативные навыки.
    • Разработчики, которые интересуются развертыванием и сетевыми операциями.
    • Системные администраторы, которые увлекаются написанием сценариев и кодированием и переходят на сторону разработки, где они могут улучшить планирование тестирования и развертывания.
    • Тестировщики, которым стало тесно в своей профессии, хочется освоить больше направлений.

    Я пришел в специальность из системного администрирования около трех лет назад. До этого работал в центре обработки данных (ЦОД), занимался системами мониторинга — приходилось заниматься как администрированием, так и немного разработкой. После решил попробовать себя в DevOps, там и остался.

    Вячеслав Светлов,
    эксперт в DevOps и Linux

    Как начать?

    DevOps вряд ли будет вашей стартовой профессией в IT, нужно уже иметь опыт в сфере и общее понимание разработки. Для DevOps-инженера также важно знать фундаментальные основы системного администрирования и сетей.

    Узнать больше о сетях можно в книгах «Компьютерные сети» Виктора и Натальи Олифер и «Руководство по подготовке к экзамену CCNA» Уэнделла Одома. А ознакомиться с Linux и операционными системами в целом помогут «Настольная книга Unix & Linux системного администратора» Эви Немет и «Современные операционные системы» Эндрю Таненбаума.

    Присоединяйтесь к профсообществам на форумах и в соцсетях, чтобы лучше понимать тенденции рынка и обращаться за советами:

    • DevOps Moscow — московское сообщество разработчиков, тестировщиков и сисадминов. Здесь сидят все организаторы московских DevOps-митапов и конференции DevOpsDays Moscow.
    • DevOps_Ru — самый большой чат про DevOps.
    • Ru_DevOps — еще одно русскоговорящее сообщество про DevOps.
    Скопировано
    0 комментариев
    Комментарии