Кто такой DevOps-инженер: программист, сисадмин или всё сразу
Разбираемся, кому подходит профессия, что должен уметь специалист и как им стать.
DevOps-инженер — не просто универсал, который умеет всё понемногу, а в итоге не умеет ничего. Тут скорее симбиоз программиста и системного администратора — одновременно эволюция каждой из профессий и шаг в сторону от них.
Специалист по DevOps не решает отдельные задачи разработки и администрирования, а ускоряет весь процесс разработки программ, мобильных приложений и сайтов в IT-компаниях отделах. Он разбирается в специфике задач программистов, тестировщиков и системных администраторов и помогает им работать вместе и автоматизировать процессы — чтобы быстрее выпускать новые продукты и обновлять уже готовые.
Разберём, что конкретно делает DevOps-инженер, каким компаниям он нужен, сколько ему готовы платить и каковы перспективы роста.
В чём состоит работа DevOps-инженера
Разработка ПО и сайтов никогда не была быстрым процессом. Одна из причин в том, что между разработчиками, тестировщиками и сисадминами всегда стояла стена, через которую время от времени перекидывались куски кода.
Никто не понимал, что происходит по другую сторону стены: разработчики не знали, с какими проблемами сталкиваются тестировщики и сисадмины; тестировщики ругали разработчиков за то, что их код неудобно тестировать; сисадмины ругали всех — потому что исправление ошибок требовало времени, а выпустить обновление надо было ещё вчера.
Всё это происходило из-за того, что создание ПО делилось на три отдельных процесса:
- Разработчики писали код и периодически передавали готовые большие куски тестировщикам.
- Тестировщики тестировали то, что им передали разработчики. Если что-то работало не так, они накапливали отчёты об ошибках и пачкой отправляли их назад разработчикам.
- Системные администраторы брали протестированный рабочий код и делали его доступным для пользователей — заливали на сервера компаний и выпускали новое приложение или обновление.
Чтобы как-то исправить ситуацию, светлые умы IT-индустрии решили превратить разработку в единый цикл. Они продумали процессы, создали новые стандарты разработки, и в итоге это выросло сначала в методологию, а потом и в целую культуру — DevOps.
Термин собран из двух английских слов: development и operations. Смысл в том, что DevOps превращает разработку в непрерывный конвейер. Даже небольшие куски программ тестируются автоматически, разработчики сразу делают их удобными для ручного тестирования и запуска у пользователей, а сисадмины могут прийти с ошибками и хотелками пользователей прямо к программистам — чтобы те быстро написали новый код.
Но чтобы внедрить красоту и мощь DevOps у себя в компании, нужно:
- обучить ей программистов, тестировщиков и сисадминов;
- сделать, чтобы все понимали друг друга и хоть немного прониклись проблемами, с которыми сталкиваются коллеги;
- настроить автоматизацию, чтобы повторяющиеся процессы занимали меньше времени. Например, чтобы часть готового кода сразу тестировалась с помощью специальных инструментов.
Для решения всех этих вопросов и появилась профессия DevOps-инженера. Его главная задача — сделать так, чтобы разработка в компании шла по методологии DevOps. Для этого он должен:
- наладить общение между разработчиками, тестировщиками и сисадминами. Говорить с ними на одном языке, понимать их проблемы, хотя бы немного уметь работать с их инструментами;
- настроить инструменты процесса: репозитории кода, CI/CD-системы, автоматические инструменты тестирования, средства для контейнеризации приложений;
- постоянно следить за процессом разработки: помогать всем осваиваться с новыми инструментами, обновлять автоматические системы и придумывать, что ещё можно упростить и автоматизировать.
Кто нанимает DevOps-инженеров
Сейчас DevOps — стандарт разработки. Без него не получится быстро выпускать IT-продукты — есть риск, что конкуренты уйдут далеко вперёд, а компания останется без прибыли. Поэтому DevOps-инженеров стараются нанимать все, кто так или иначе связан с разработкой и осознал ценность методологии DevOps.
Такие компании делятся на три группы:
IT-компании. Зарабатывают именно благодаря программам, приложениям и сайтам, то есть разработка — основное направление их деятельности. Google, Mail.ru, Uber, Booking, 1С, разработчики игр — всё это IT-компании. Им жизненно необходим DevOps, так как без него не получится эффективно выпускать главный продукт.
Обычные компании с IT-отделом. Эти компании в основном занимаются чем-то другим: продают одежду, выдают кредиты, строят дома. Но у них есть IT-отдел, который разрабатывает сайты или мобильные приложения. Ozon, Сбербанк, «Лента» — всё это обычные компании с IT-отделом, который занимается их сайтами и приложениями. Теоретически они могут существовать и без DevOps, но тогда конкуренты их обгонят, поскольку будут выпускать приложения быстрее и завоюют больше клиентской любви.
IT-агентства. Это компании, которые занимаются разработкой под заказ — для других компаний. Например, небольшой магазин хочет сайт или приложение, но не может позволить себе целый IT-отдел — и нанимает IT-агентство, которое всё разработает. Таким компаниям DevOps нужен, чтобы быстрее и качественнее делать свою работу для клиентов.
В крупных компаниях обычно есть штат разработчиков, тестировщиков и сисадминов. Поэтому девопса приглашают именно для внедрения методологии, настройки всех процессов и автоматизации. В небольших компаниях денег на такой большой штат нет.
Поэтому часто от сисадмина ждут, что он будет выполнять ещё и работу DevOps-инженера — поддерживать разработчиков и помогать тестировщикам. Это нормальная практика в небольших компаниях — здесь не найти столько задач, чтобы понадобились и девопс, и сисадмин.
Насколько востребованы DevOps-инженеры и сколько им платят
DevOps-инженеры нужны во всём мире. Например, согласно исследованию Linux Foundation и edX, в 2020 году 65% IT-компаний искали DevOps-инженеров, но только 59% искали разработчиков. Разница в процентах кажется небольшой, но на практике это сотни и тысячи открытых вакансий. Рынок DevOps растёт даже несмотря на пандемию — это значит, что спрос на девопс-инженеров будет только увеличиваться. В рейтинге лучших должностей Америки должность DevOps-инженера занимает пятое место.
По России такой статистики, к сожалению, нет. Но можно оценить общий спрос, просмотрев вакансии. На «Яндекс.Работе», которая агрегирует данные разных работных ресурсов, сейчас есть больше 8 тысяч предложений для DevOps-инженеров:
Для сравнения, вакансий по запросу «Web-разработчик» — около 7 тысяч, «JavaScript-разработчик» — 8,5 тысяч, а это самый популярный язык веб-программирования в мире. Это совсем не значит, что DevOps требуется больше — на 10–20 разработчиков нужен всего один. Но сами цифры показывают, что потребность в таких специалистах очень высока.
К слову, вакансий сисадмина гораздо больше — 23 тысячи. Но большая часть из них никак не связана с разработкой — это поиск системного администратора в небольшую компанию, который будет настраивать сеть и следить, чтобы бухгалтеры и менеджеры ничего не сломали.
Всё это значит, что DevOps-инженер легко может найти работу в России, а при желании — уехать за рубеж. И спрос на таких специалистов будет только расти.
В США DevOps зарабатывает в среднем 7–10 тысяч долларов. В России даже начинающим специалистам готовы платить от 90 тысяч рублей в месяц уже после вычета налогов, а зарплаты опытных доходят до 250 тысяч рублей и больше.
Что нужно узнать, чтобы стать DevOps-инженером
Сложность профессии в том, что она включает в себя два набора компетенций: знания в разработке и в администрировании. Изучать сразу оба непросто, поэтому проще стать DevOps-инженером, если вы уже сисадмин или программист. Тогда понадобится освоить специфику другого направления — и можно будет приступать к работе.
Если хочется получить профессию с нуля, лучше сначала изучить системное администрирование или программирование, немного набраться опыта — и потом осваивать специфические инструменты, необходимые именно для DevOps.
Каждый DevOps должен уметь:
- работать с GitLab, создавать пространство для коллективной работы, разрешать внутренние конфликты версий, настраивать CI/CD — конвейер, который позволяет непрерывно вносить в код небольшие изменения и быстро запускать приложения на боевых серверах;
- программировать на Python. Это понадобится, чтобы писать программы для автоматизации и в целом понимать специфику работы программистов;
- работать с контейнерами Docker — ПО для автоматического развёртывания и управления приложениями в средах с поддержкой контейнеризации;
- настраивать всю инфраструктуру разработки;
- мониторить статусы сервисов, серверов и сетевого оборудования с помощью инструментов вроде Zabbix;
- настраивать инструменты для автоматизации тестирования.
Другие компетенции зависят от компании, в которой будет работать DevOps. Например, может потребоваться умение администрировать Linux, работать с облачными технологиями, настраивать виртуализацию. Но для старта хватит базовых навыков.
Кроме того, понадобятся прокачанные софт-скиллы: аналитический склад ума, желание организовывать и автоматизировать, умение логически мыслить и видеть всё системно. Без них даже освоить профессию DevOps будет непросто. Также полезно уметь общаться — придётся много разговаривать с разработчиками, тестировщиками и сисадминами, обучать их методологии DevOps, презентовать свои решения руководству.
Знание английского тоже пригодится: документация ко многим программам написана на английском, а решения для каких-то проблем часто проще найти на зарубежных сайтах и форумах, так как там культура DevOps развита сильнее.
Какие перспективы роста есть у DevOps-инженера
Даже на старте DevOps-инженеры зарабатывают неплохо. В основном потому, что DevOps считается следующим шагом в карьере программиста и сисадмина — пусть и шагом слегка в сторону.
Перспективы дальнейшего развития тоже есть. В первую очередь рост идёт за счёт опыта — когда DevOps отработает три-пять лет, ему будут предлагать более высокооплачиваемую работу. Опыт в этой профессии особенно важен, так как опытный DevOps сталкивался с большим количеством проблем и знает, что делать в нестандартных ситуациях, в которых даже очень умный новичок растеряется.
Чтобы получать больше, можно наращивать дополнительные компетенции: учиться строить инфраструктуру в облаке, работать с базами данных, осваивать системы оркестрации контейнеров и новые инструменты автоматизации. А вот дальше для роста понадобится прокачивать уже не конкретные навыки или знания, а опыт и умение решать нестандартные проблемы. Тогда девопса охотнее наймут в большую компанию, где всё это пригодится.
В особенно крупных обычно есть целые отделы DevOps. Здесь можно в итоге вырасти до руководителя такого отдела — то есть задавать направление развития разработки во всей компании. Конечно для этого понадобятся управленческие навыки — умение руководить, делегировать, планировать работы и презентовать решения высшему руководству.
Где всему этому научиться
Если вы уже разработчик или системный администратор, можно попытаться освоить профессию самостоятельно. Для этого понадобится проникнуть в специфику смежной области, освоить нужные для DevOps инструменты и разобраться в автоматизации и контейнеризации. Сисадминам обычно проще — знаний в языках программирования от DevOps ждут совсем немного, а вот в IT-инфраструктуре нужно разбираться глубже.
Если боитесь зайти не туда или не хотите тратить много времени на самостоятельное освоение, можно получить более основательное образование. Например, окончить курс «Профессия DevOps-инженер» в Skillbox — здесь сразу дают системные знания из всех областей и не грузят тем, что девопсу знать не обязательно.