Кто такой DevOps и как его найти

Согласно Отчету о вакансиях Open Source за 2020 год, подготовленного Linux Foundation и edX, западные работодатели больше нуждаются в ИТ-специалистах с навыками DevOps (65%), чем в разработчиках (59%). Наиболее востребованы они в крупных организациях, где разрабатывается много приложений и ведется управление большим количеством серверов в рамках B2C. Такие специалисты высокооплачиваемы, поэтому в небольших компаниях их обязанности часто распределяются между разработчиками, инженерами по инфраструктуре и системными администраторами. Сегодня поговорим, почему DevOps-инженер нужен бизнесу, в чём его отличие от системного администратора и SRE, и на что обращают внимание наши консультанты, когда ищут кандидатов этого профиля.

DevOps (Development Operations) — это методология, помогающая наладить эффективное взаимодействие между разработкой и эксплуатацией ПО. DevOps-инженер работает на стыке нескольких IT-специализаций и занимается автоматизацией жизненного цикла ПО, способствуя увеличению производительности, уменьшению операционных затрат, сохранению рыночной конкурентоспособности и быстрому решению возникающих проблем.

Задачи, которые помогают решать DevOps-инженер

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

  • Разработка, запуск и поддержка конвейера непрерывной поставки ПО.
  • Интеграция инструментов, обеспечивающих конвейер непрерывной поставки.
  • Стандартизация и автоматизация инфраструктуры для сборки, развертывания и тестирования ПО.
  • Мониторинг, автоматизация и модернизация существующей инфраструктуры.
  • Обнаружение и фиксация различных проблем.
  • Обеспечение бесперебойной работы продуктовой среды
  • Поддержка команд разработки в вопросах системного администрирования, инфраструктурной оптимизации и сопровождения.
  • Организация процесса DevOps (на всех этапах — от инфраструктуры до сервиса).

Hard skills специалиста DevOps

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

  • Чтобы заниматься автоматизацией процессов разработки — от построения архитектуры до деплоя — DevOps желательно знать, как они устроены, а также понимать, чем занимаются разработчики и тестировщики, какие у них цели и задачи.
  • Чтобы непосредственно автоматизировать процесс разработки, DevOps пишет скрипты и программы, соответственно ему необходимо знание одного или нескольких языков программирования. Сейчас на рынке особенно востребованы Python и Go.
  • Чтобы автоматизировать интеграцию кода в репозитории, осуществлять сборку, тестирование и запуск приложений в продакшн DevOps пригодится опыт работы с CI/CD, Jenkins, Terraform.
  • Чтобы перенести процесс разработки в облачную среду и сократить затраты на инфраструктуру, DevOps-инженеру будет полезны знания GCP, AWS и Azure.
  • Чтобы разворачивать приложения и запускать код, DevOps-инженеру необходимы навыки работы в операционных системах. Сегодня большинство серверов работает на Linux, поэтому знание именно этой ОС особенно востребовано.
  • Чтобы отслеживать исправления и истории изменений для упрощения анализа и восстановления кода, нужно понимать принципы работы систем управления версиями Git, SVN или Bazaar.
  • Чтобы осуществлять деплой приложений, могут потребоваться знания Kubernetes, Docker и микросервисной архитектуры.

На что стоит обратить внимание при поиске DevOps

Чтобы определиться с уровнем нужного специалиста, следует оценить сложность задач в компании. Например, чтобы срочно разработать релизную политику или систему управления развертыванием Big Data сервисов необходим сотрудник Senior-уровня, а для проектов без сжатых сроков релиза можно нанять нескольких Junior-инженеров: на первых порах они будут вникать в процессы, но по мере профессионального роста смогут решать много задач. 

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

DevOps-инженер и системный администратор: в чём разница

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

  • Так, DevOps занимается конфигурированием рабочих, тестовых и production-серверов, поэтому в их резюме отмечены навыки Puppet, Ansible, Chef и т.д. Системные администраторы решают вопросы построения и обслуживания оборудования и программного обеспечения, необходимых для компании, и для этого им нужен опыт в настройке оборудования и маршрутизаторов, а также навыки в администрировании рабочих станций и т.д.
  • DevOps автоматизируют процесс разработки и пишут для этого скрипты, поэтому в своих резюме они указывают языки программирования, которыми владеют. В то время как системные администраторы не принимают участия в написании кода, скриптов и разработке ПО, поэтому от них знание языков программирования не требуется.
  • DevOps-инженеры решают задачи надежности функционирования облачной ИТ-инфраструктуры, высоконагруженных проектов, высокой доступности приложений, балансировки нагрузки и т.д., а следовательно они обладают опытом работы с AWS, MS Azure, Docker, Kubernetes и т.д. А системные администраторы помогают поддерживать работоспособность локальной сети и ПО, следовательно, навыки работы с контейнерными оркестраторами и облачной инфраструктурой им не нужны.

DevOps и SRE: в чём разница

Ещё одной IT-специализацией, родственной DevOps, считается SRE (Site/SystemReliabilityEngineering). Если коротко, то DevOps ближе к системному администрированию, а SRE — к программированию. Функционал SRE-инженеров шире и от них требуется полноценный опыт в роли Middle-разработчика, в то время как от DevOps не ожидают серьёзных знаний в написании кода. Потребность в таких специалистах появляется, когда софт становится очень сложным и нагруженным, и необходимо обеспечить надёжность работы систем. Отчасти SRE можно сравнить с архитекторами: на вакансии этого типа подходят лишь опытные кандидаты, знающие что и когда может пойти не так, и как это можно предотвратить или исправить. Как отдельная специализация SRE появилась в компании Google и не так давно перекочевала на российский рынок. В отечественных реалиях ещё нет чёткого понимания отличий DevOps от SRE, поэтому, часто в вакансиях можно увидеть смешанный список требований к кандидатам — и DevOps, и SRE. Обычно это означает, что от SRE-инженера требуются навыки автоматизации и разворачивания, но не все соискатели умеют или хотят этим заниматься.

Где искать DevOps-инженеров

Искать опытных DevOps можно в социальных сетях, на профессиональных ресурсах (dzone.com, puppet.com, stackoverflow.com) или в профессиональных Telegram-каналах (DevOps_Ru, DevOps Jobs, Админим с Буквой и т.д.). А также можно обратить внимание на мероприятия, тематика которых связана непосредственно с DevOps или с технологиями, относящимися к DevOps-практикам.

Если у вас есть задача усилить команду разработки сильными DevOps-инженерами, оставьте заявку, и мы подберем специалистов с релевантным опытом работы.

Необходима консультация?

Оставьте заявку, и мы свяжемся с вами в ближайшее время

    Read more

    Ваша заявка успешно отправлена.

    Спасибо! Письмо с ответом будет отправлено вам на почту в ближайшее время

    Произошла ошибка.

    Пожалуйста, повторите попытку позже, или свяжитесь с нами по телефону +7 495 967-80-30 или по электронной почте info_GC@IBS.RU