Кто такой DevOps-инженер
DevOps (Development Operations) — это методология взаимодействия разных специалистов, которая помогает сделать программный продукт качественнее.
DevOps появился, когда ПО стало сложнее, а продуктов на рынке — больше. Разработчики перестали справляться с повышением продуктивности систем, в которых они работают, поэтому в команды начали привлекать системных администраторов. Эти администраторы стали разбираться с тем, как помочь своей команде работать лучше и качественнее. Быстрее тестировать продукт, «выкатывать» обновления. Так продукты выпускаются быстрее, а ошибок становится меньше.
В 2009 году IT-консультант Патрик Дебуа предложил своим подписчикам обсудить «гибкие методы в администрировании систем» под хэштегом #DevOps. Так DevOps стал популярным во всем мире и превратился в методологию и целую культуру взаимодействия между специалистами разного профиля.
Если говорить простыми словами, DevOps помогает общаться на одном языке программистам, тестировщикам и специалистам по эксплуатации, а связующее звено между ними — DevOps-инженеры. Это особенно актуально для больших компаний, у которых много программных продуктов. Профессия быстро набирает популярность во всем мире.
Антон Дьяконов, руководитель группы DevOps IT-компании «Рексофт»:
«В России прижилось понятие DevOps-инженер. DevOps — это прежде всего культура работы, философия, определенный подход к решению задач. Сотрудников этого направления правильнее называть системными инженерами.
Это философия еще и потому, что профессия предполагает сильные софт-скиллы: коммуникативность, менеджмент, вовлеченность в задачи команды, управление временем. А вот технические навыки можно прокачать дополнительно.
Приведу пример отношению DevOps-культуры к промахам в работе. Если нештатная ситуация уже произошла, то следует не применять санкции против виновника, а предложить ему подумать, как не допустить повторения ситуации в будущем, что улучшить в процессах и инструментарии. DevOps относится к этой ситуации как к позитивному опыту, из которого нужно сделать выводы».
Что делает DevOps-инженер
Если открыть сайты с вакансиями и ввести в поиск DevOps, можно увидеть огромный разброс в требованиях и зарплате. Так происходит, потому что на рынке нет единого понимания, кто такой DevOps-инженер.
Каждая компания подразумевает под термином разное, а потому и требования, и оплата тоже отличаются. Где-то DevOps-инженер ближе к менеджеру, где-то — к системному администратору. Но главная задача специалиста остается неизменной — упростить и ускорить выпуск ПО, помочь договориться между собой отделу разработки и эксплуатации продукта.
Как и все IT-специалисты, DevOps-инженеры делятся на три позиции: джуниор (junior), мидл (middle) и сеньор (senior).
- Джуниор — человек, который неплохо знает какие-то области из зоны ответственности DevOps. Обычно на проекте у него есть ментор, который курирует работу, что-то подсказывает и консультирует в том, где нужно прокачать навыки.
- Мидл — сотрудник, который работает полностью самостоятельно. По каким-то вопросам он будет обращаться за советами, но ему уже можно поручить менторство над джуниором. В объявлениях о вакансиях на позицию мидл просят наличие опыта работы в проектах от 2 до 3 лет.
- Синьор — это не просто автономная работа, это сотрудник, который постоянно привносит в работу команды что-то новое. Системно автоматизирует проблемы проектов компании.
Но сказать, кто что должен технически делать сложно. Например, компания «Газпром нефть» в своей вакансии на DevOps-инженера Junior так описывает свои требования:
- сборка Docker образов,
- проектирование и техническая реализация DevOps piplines,
- развитие архитектуры ML сервиса,
- ведение релиза (в том числе в Jira),
- написание документации в Confluence,
- участие в тестировании и приемосдаточных испытаниях релиза,
- взаимодействие с продуктовыми и инфраструктурными командами,
- взаимодействие с продуктовыми командами с целью продвижения и внедрения архитектурных решений,
- архитектурный надзор,
- экспертная поддержка интегрируемых продуктов.
А Сбер.IT описывает обязанности более расплывчато, причем указывает, что это касается позиций и junior, и middle.
При этом DevOps-инженер не пишет полноценных системных продуктов. Он создает вспомогательные решения. Например, для задач инфраструктуры, мониторинга, поддержки. Поэтому он должен понимать основы языков программирования и разбираться в инструментах разработчиков. Иногда DevOps путают с системным администрированием. Сходство есть, но и различия тоже.
Антон Дьяконов:
«Мы не просто выполняем задачи, мы заинтересованы в том, чтобы был долгоиграющий положительный результат. К примеру, сисадмин поставит сервер, отдаст его разработчикам, а дальше делайте, что хотите. Системный инженер должен научить разработчиков правильно работать с сервером, рассказать об особенностях технологий, которые там используются, объяснить, какую пользу для проекта это даст. То есть мы заинтересованы не просто установить софт, мы заинтересованы в том, чтобы с его помощью максимально быстро двигать проект вперед.
Но существуют проекты, где от DevOps требуются очень серьезные навыки системного администратора с уклоном в системный инжиниринг».
Требования к DevOps-инженерам
DevOps-инженерам любой организации необходимо запускать приложения и сервисы — для этого им нужны навыки работы с операционными системами. Одно из главных и частых технических требований к DevOps — уметь работать в Linux. Другие навыки напрямую зависят от проектов. Сейчас есть два инструмента, которые стали стандартом и упоминаются практически во всех вакансиях — Ansible и Terraform. Ansible позволяет максимально автоматизировать серверное окружение под конкретные потребности проекта, а Terraform настраивает инфраструктурную обвязку в облачных платформах.
В DevOps пригодятся и другие инструменты, но их знание обычно не обязательно в начале работы:
- инструменты администрирования: Puppet и Chef;
- Kafka — сервис, который позволяет мгновенно передавать сообщения между разными системами;
- облачные платформы: Google Cloud, Microsoft Azur;
- CI/CD: Microsoft GitHub, Atlassian Jira, Confluence, Red Hat Ansible, Prometheus и Jenkins.
Уметь программировать нужно, но не обязательно на уровне сильного разработчика: обычно этому учат еще в вузе на IT-специальностях. Пригодятся знания Python, PHP, Ruby.
Сертификаты и дипломы будут плюсом, но пока это не обязательное требование в большинстве компаний. Главное — закончить технический вуз и разделять подход и ценности философии DevOps. В целом Devops-инженер должен быть IT-специалистом, мыслить системно, но при этом обладать софт-скилами для менеджерской работы.
По словам Антона Дьяконова, DevOps — это стиль жизни. Если вы не готовы постоянно переключаться, изучать и менять технологии, то DevOps — это не про вас. Нужно очень внимательно подумать об этом прежде, чем погружаться в профессию. Интроверту здесь будет крайне сложно.
Как стать DevOps-инженером
Сейчас нельзя закончить вуз и стать системным инженером. Основной путь — получение опыта в команде. В нее можно перейти внутри компании или прийти «с нуля» с IT-бэкграундом. Опыт разработки и системного администрирования, а также умение работать по методологиям agile и pipeline будут плюсом.
Совсем без опыта можно приходить на стажировки в крупные компании. Такие предложения появляются на сайтах с вакансиями или на различных конференциях. Еще есть онлайн-курсы, они помогут получить общее представление о профессии и разобраться в основном ПО. Но эти сертификаты редко играют роль при приеме на работу.
Вот несколько базовых курсов, с которых можно начать.
- Курс SkillFactory на полгода — нужно знать Linux и основы программирования.
- Курс GeekBrains на полгода с гарантией трудоустройства — с нуля.
- Курс в МГТУ имени Н.Э. Баумана на полгода оффлайн или онлайн — нужно быть IT-специалистом.
- Курс «Нетологии» на 4 месяца — для начинающих специалистов, уже немного ориентирующихся в администрировании.
- Школа DevOps — для людей с разным уровнем подготовки. Есть бесплатный курс для тех, кто пришел с нуля.
Какие перспективы у профессии DevOps-инженера
Сфера DevOps развивается очень быстро. Специалисты нужны не только в крупных, но и в средних компаниях, а также в государственных структурах. В 2021 году Экспресс 42, hh.ru и OTUS Онлайн-образование провели исследование динамики резюме и вакансий в сфере DevOps. Ежегодный прирост числа вакансий на hh.ru для специалистов по DevOps — 59%.
За неполный 2021 год компании разместили в два раза больше предложений, чем за весь 2019-й. А резюме стало больше всего на 23%. Это значит, что в России спрос на таких специалистов превышает предложение. Отсюда высокие зарплаты и лояльное отношение к кандидатам при трудоустройстве: 55% вакансий рассчитаны на людей с минимальным опытом работы или без опыта вообще.
DevOps — сравнительно молодое направление с хорошими перспективами развития. Чем больше ПО выпускают разработчики и чем быстрее меняется мир, тем большему количеству компаний будет нужен в команду DevOps-инженер. И пока таких специалистов мало, а требования размыты, при желании можно быстро продвигаться в профессии и строить карьеру. А заодно привнести что-то новое в это направление.