Найм DevOps инженера. Поиск и оценка

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

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

Сначала изложите свои требования - обязанности инженеров DevOps (поиск)
Прежде чем мы перейдем к процессу найма инженеров DevOps, давайте определим, кто этот человек и что на самом деле означает DevOps. Термин образован от двух слов - «разработка» и «операции». Инженер DevOps / девопс - это человек, который разбирается в обоих направлениях. Это универсальный эксперт, основная функция которого - помогать различным командам разработчиков улучшать определенные части кода и позволять компаниям улучшать свои платформы на основе того, что у них уже есть.

Интересно, что DevOps как название должности в некотором роде придумано отраслью, а это означает, что не существует пошагового процесса, как сделать эту карьеру. Может ли кто-то подать заявку на должность DevOps, зависит от его навыков и опыта в кодировании и работе в разных командах.
Короче говоря, DevOps-инженер - это тот, кто:
  • Понимает жизненный цикл разработки программного обеспечения (SDLC).
  • Владеет различными инструментами тестирования автоматизации для разработки конвейеров непрерывной интеграции и непрерывной доставки (CI / CD).
  • Может успешно управлять всей командой DevOps.
Итак, каковы основные обязанности DevOps инженера?
  • Планирование, тестирование и разработка приложений и инфраструктуры.
  • Поддержка конвейеров CI / CD.
  • Внедрение автоматизации.
  • Обеспечение безопасности.
  • Постоянный мониторинг.
Рассмотрим каждую подробнее.

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

2. Поддержка конвейеров CI / CD
Инженеры DevOps несут ответственность за создание конвейера CI / CD и за синхронизацию всех процессов, людей и инструментов. Они могут определить области для улучшения и оптимизировать конвейер на ходу. Когда инженер DevOps хорошо выполняет свою работу, команда может непрерывно тестировать, не снижая общей скорости.

3. Внедрение автоматизации
Автоматизация - это причина, по которой организации в первую очередь нанимают инженеров CI / CD. DevOps несут ответственность за его реализацию, и их работа заключается в повышении эффективности как инженерных, так и ИТ. Между тем компании могут сосредоточиться на более стратегических задачах.

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

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

Какие навыки наиболее важны для DevOps?
Очевидно, что набор навыков, необходимых для таких специалистов, намного выше среднего. В одном из опросов, проведенных Институтом DevOps для отчета о навыках Enterprise DevOps , руководителей высшего звена, менеджеров и отдельных участников попросили оценить важность различных категорий навыков для членов их команды DevOps.

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

Навыки, необходимые для младшего инженера DevOps
  • Понимание Agile, Waterfall, SDLC.
  • Понимание инструментов контроля версий.
  • Знание инструментов CI / CD.
  • Как минимум один язык программирования.
  • Понимание образов Docker, контейнеров и реестров.
  • Знание инструментов управления инфраструктурой.
  • Понимание облачных вычислений.
  • Хорошие коммуникативные навыки на английском языке (письменный, устный).
  • Софт скиллс (целеустремленность, внимание к деталям, сильный командный игрок).
Навыки, необходимые для мидл (среднего) DevOps-инженера
  • Хорошее знание инструментов CI / CD.
  • Хорошее знание инструментов контроля версий.
  • Хороший опыт написания сценариев / устранения неполадок bash.
  • Знание 2+ языков программирования.
  • Глубокое понимание услуг облачных вычислений.
  • Навыки управления инфраструктурой.
  • Владение инструментами автоматизации.
  • Хорошие коммуникативные навыки на английском языке (письменный, устный).
  • Софт скиллс (целеустремленность, внимание к деталям, сильный командный игрок).

Навыки, необходимые для старшего инженера DevOps
  • Подтвержденный опыт использования инструментов CI / CD.
  • Хорошее знание инструментов контроля версий.
  • Опыт написания сценариев / устранения неполадок bash.
  • Знание 3+ языков программирования.
  • Владение услугами облачных вычислений.
  • Навыки управления инфраструктурой на уровне экспертов.
  • Владение инструментами автоматизации.
  • Отличные коммуникативные навыки на английском языке (письменный, устный).
  • Софт скиллс (целеустремленность, внимание к деталям, сильный командный игрок).
Пример описания вакансии для разработчика DevOps
При поиске идеального инженера DevOps обратите особое внимание на создание привлекательного и точного описания должности. Это избавит вас от необходимости отказываться от приложений, которые не соответствуют требованиям. Ниже приведен пример описания должности инженера DevOps, который вы можете использовать в качестве шаблона при поиске.

Введение
[Название вашей компании] - это компания, специализирующаяся на […]. Прямо сейчас мы ищем инженера DevOps уровня [младший / средний / старший] для заполнения вакантной должности в нашей команде. Вы будете работать на стыке разработки и эксплуатации, чтобы проектировать, кодировать, тестировать и оптимизировать отличные решения для клиентов.

Должностные обязанности и обязанности
Кто ты:
Высокомотивированный человек со страстью к созданию масштабируемых и эффективных продуктов.
У вас очень сильные коммуникативные навыки на английском, как письменном, так и устном.
Вы отлично решаете проблемы.
Вы [знакомы / имеете твердое представление / эксперт в] операционных системах, таких как Linux, Windows, iOS и Android.
У вас есть [базовое / основательное / экспертное] понимание программирования на таких языках, как […].
Вы [интересуетесь / понимаете / являетесь экспертом] по методологии дизайн-мышления и Agile.

Что вы будете делать:
Создавайте, развертывайте, настраивайте и обслуживайте системы в […] среде.
Работайте в тесном сотрудничестве с командой разработчиков, чтобы обеспечить непрерывную среду интеграции.
Оптимизируйте и автоматизируйте процессы, используя такие инструменты, как […].
Выявляйте и решайте проблемы при разработке, тестировании и производстве.
Необходимая экспертиза
Должен иметь [базовые / основательные / экспертные] знания в [Java, Jenkins, Puppet, Docker, Bash, Python, Ruby и т. Д.]
Предпочтительный опыт
Опыт в […]

Вопросы на собеседовании разработчикам DevOps (оценка)
Предположим, вы выбрали несколько красивых резюме. Как определить, подходят ли какие-либо из них? Очень просто. Задавая правильные вопросы будет делать трюк. После собеседования вы сможете определить, обладает ли кандидат необходимыми навыками hard и soft, чтобы стать идеальным дополнением к вашей команде.
Ниже приведены примеры вопросов на собеседовании для младшего, среднего и старшего разработчиков, чтобы проверить их навыки.

  • С какими инструментами DevOps у вас есть опыт? Хотите освоить другие инструменты?
  • Что такое контроль версий и зачем его использовать?
  • Почему важны процессы и инструменты управления конфигурацией?
  • Можете ли вы объяснить концепцию «Инфраструктура как код» (IaC)?
  • Что подразумевается под непрерывной интеграцией и как вы ее обеспечите?
  • В чем разница между оркестровкой и классической автоматизацией? Какие есть общие решения для оркестровки?
  • Почему правильные инструменты и измерения важны для культуры DevOps?

Проверка софт скиллс
  • Многие компании ценят индивидуальность и профессиональные навыки выше технических знаний. В конце концов, вы можете углубить знания или отточить навыки, но личность останется прежней. Вот несколько вопросов, которые вы можете задать во время собеседования, чтобы убедиться, что кандидат вписывается в культуру вашей компании.
  • Как бы вы описали функции идеальной команды DevOps?
  • Какие навыки вы приобрели, чтобы стать лучше в роли DevOps?
  • Как выглядит идеальный релиз? Кто участвует и какова ваша роль?
  • Как бы вы подошли к диагностике и устранению проблем в производственной среде?
  • Развертывание просто не удалось. Какие шаги вы предпримете, чтобы исправить ситуацию?
  • Как бы вы улучшили стратегию DevOps в нашей компании?
Дополнительные вопросы для интервью с девопс инженером вы сможете найти в нашей статье "Вопросы для собеседования с DevOps инженером".
HR Блог для IT рекрутера в Телеграм
Хочешь всегда получать новые статьи, бесплатные материалы и полезные HR лайфхаки! Подписывайся на нас в Telegram! С нами подбор ит персонала становится проще ;)
Хотите найти талантливого сотрудника?
Оставьте заявку и получите в подарок список вопросов для сбора рекомендаций на кандидата