Кто такой 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-инженерами, оставьте заявку, и мы подберем специалистов с релевантным опытом работы.

Ready to Hire the Best IT Talent?

Submit your query and we’ll get in touch

    Read more

    Thanks for your request!

    Your request has been successfully received!

    An error occurred.

    Please try again later, or contact us by phone +7 495 967-80-30 or e-mail info@globalcareer.eu