В то время как другие компании развертывают проект за проектом, вы все еще пытаетесь понять, как уложиться в один крайний срок с 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 инженером".