Собеседование в DevOps Engineering, как оценить свой опыт и сколько нужно знать?

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Основное про DevOps и про обязанности

DevOps — это набор практик, которые помогают автоматизировать и интегрировать процессы между командой разработчиков и командой ответственной за инфраструктуру, чтобы они могли быстрее и надежнее собирать, тестировать и выпускать релизы.

Основная цель подхода - убрать "стену" между командой разработки и командой Operations (Operations так же называют: System Administration, System Engineering) и увеличить скорость релизов. "Стена" образуется из-за того что у команд разные цели. Разработчики преследуют цель выпускать релизы как можно чаще, а Operations снизить количество отказов или держать энвайрмент стабильным и безопасным. DevOps подход объединяет команды, цели и делит риски.

Основные практики DevOps это:

  • Continuous Integration

  • Continuous Delivery

  • Continuous Deployment

  • Continuous Testing

  • Continuous Monitoring

  • Infrastructure as Code

Некоторые практики разделяются между инженерами, например QA может отвечать за Continuous Testing а Security за Continuous Monitoring. Как правило, инженер который получил роль DevOps (не принято говорить "DevOps инженер" но рынок уже взял в оборот, звучит так же неопределенно как "Scrum инженер") отвечает за все что происходит с момента как команда разработки пушнула код в репозиторий или выпустила релиз. Т.е за CI/CD пайплайны, энвайрменты проекта и базовый мониторинг.

Сколько инструментов в домене DevOps и что именно нужно знать?

PROD Grade инфраcтруктура, CI/CD пайплайны и мониторинг это целая экосистема инструментов. Сейчас это более 100 популярных названий. Какие то из них нужно знать глубоко и уметь конфигурировать. Некоторые достаточно настроить однажды, прочитав короткую документацию.

В области технической экспертизы DevOps возникает вопрос: что именно выбирать, сколько вообще инструментов нужно знать и что показывать на собеседовании?

Инженеры переходящие в DevOps, например из системного администрирования, при выборе технологий "для изучения" испытывают страх что они будут привязаны к чему то одному и для другого проекта их опыт будет не актуален. Тут можно немного успокоить: если вы научились писать код Terraform вы справитесь и с Ansible, не потому что они похожи или близки в синтаксисе, нет, ваш мозг теперь умеет решать задачи автоматизации, а психика окрепла верой в себя. На собеседовании это будет заметно и в большинстве случаев вызовет адекватное доверие. Поэтому не стоит стремится выучить большое количество инструментов. Если вы просто учитесь, выберите инструменты которые вам реально интересны, это даст позитивную энергию и удовольствие от процесса обучения.

Если выбор происходит при запуске нового проекта, появляется страх перед неверным выбором инструмента. Тут тоже не стоит тратить много энергии. Рано или поздно вам придется мигрировать с инструмента на инструмент такова жизнь инженера. Миграция это бесценный опыт, так что вместо того что бы исследовать все риски можно следовать Agile принципам и просто сделать MVP вашей автоматизации. В большинстве случаев MVP перерастает в основное решение.

Какое количество инструментов/платформ и насколько глубоко вам нужно знать

Что бы облегчить задачу выбора, все инструменты DevOps можно поделить на домены:

На картинке представлено 30 наиболее популярных инструментов разделенных по соответствующим доменам, вы можете добавить домены или инструменты по необходимости. Стараться выучить все бессмысленно и долго, лучше выбрать из каждого домена один или два инструмента, и составить небольшую, личную матрицу компетенций, например:

IaC: Terraform

CM: Ansible

Cloud: AWS

CI/CD: CircleCI

Scripting: Python, Bash

Containerization: Kubernetes

Monitoring: ELK, Prometheus

OS: Linux

SQL: Postgres, MongoDB

Количество инструментов сильно сократилось, но все равно список большой. Есть риск, что на собеседование придут неопытные интервьюверы-инженеры и если в резюме вы укажете все из вашего проекта или опыта, они будут проверять знание по всем заявленным вами инструментам, ожидая от вас высокого уровня. Такое интервью получится сложным и разочаровывающим. Лучше управлять ожиданиями и указать уровень владения инструментом или платформой разбив на относительно простые и условные категории:

Novice - использовал инструмент/технологию однажды или читал документацию. (Эта категория имеет право на существование, например я устанавливал и настраивал MySQL для различных проектов, делал это раз тридцать точно, но каждый раз читая инструкции. Без предварительной подготовки я не расскажу хорошо про MySQL. Тем не менее не стоит увлекаться, если указать в CV все что вы "читали", резюме потеряет конкретику).

Intermediate - уверенное использование технологии/инструмента (важное замечание: этот уровень может достигается через обучение).

Advanced - широкий опыт использования на проектах, неоднократно приходилось конфигурировать/писать код, hands-on experience от года. Продолжительность hands-on experience очень важна, в IT это как боевые вылеты в авиации, если вы не просидели за консолью или IDE свои боевые часы решая задачу или выполняя issue troubleshooting, вы не обретете экспертизу и не погрузитесь в технологию. (Здесь не надо беспокоиться если вам скучно в консоли или в IDE, иногда вкус не сразу приходит). Можно говорить, что Advanced уровень приобретается на PROD проектах, но иногда учебный проект может быть сложнее реального PROD заказчика.

Expert - использовал технологию на сложных проектах продолжительное время от года и выше. Знает лучше чем производитель технологии или является коммиттером.

*эти категории можно критиковать в комментариях, это позволит выработать более точную модель!!

Теперь получилась следующая матрица:

IaC: Terraform - Advanced

CM: Ansible - Intermediate

Cloud: AWS - Intermediate

CI/CD: CircleCI - Novice

Scripting: Python, Bash - Novice

Containerization: Kubernetes - Intermediate

Monitoring: ELK, Prometheus - Novice

OS: Linux - Advanced

SQL: Postgres, MongoDB - Novice

Таким образом мы сильно сузили область, если вы только входите в профессию вам проще строить цели. Если вы идете на интервью, из этой матрицы видно, что нужно подтянуть и на какие темы общаться.

Можно указать уровень владения в CV, но я бы рекомендовал выделять основные инструменты с которыми работаете на проекте и отдельной строкой категорию Novice. Это нужно для того что бы состоялся разговор по конкретному опыту.

Тут можно добавить еще один еще один уровень оценки: если вы претендуете на позицию Senior DevOps Engineer, нужно владеть 3-4 инструментами на Advanced уровне и одним инструментом как Expert. Для Middle DevOps достаточно работать с 2-3 на Advanced.

Итого, ваша матрица компетенций:

Middle DevOps Engineer

Terraform, Linux - Advanced: основные инструменты

AWS, Ansible, Kubernetes - Intermediate: регулярно приходится решать задачи

ELK, Prometheus, CircleCI, Python, Bash, Postgres, MongoDB - Novice: общее понимание

Конкретика в CV и на собеседовании избавляет от разочарования, вызывает доверие, и освобождает вас от траты времени на подготовку, например если вы не хотите учить SQL позволяя сконцентрироваться на том что реально нужно подтянуть.

За последние 3 года я провел около 180 собеседований на роли DevOps, Senior DevOps и Team Lead в различные команды и с разными интервьюверами. Мне самому приходится проходить собеседования к различным заказчикам внутри компании. На интервью моя цель состоит в том, что бы раскрыть насколько опыт кандидата соответствует заявленному и как отвечает ожиданиям заказчика. Я так же проверяю насколько наши ожидания к открытой вакансии соответствуют с рынком, является ли они ниже или выше и можем ли мы влиять на это. Опыт интервьюируемого не должен совпадать с требованиями к позиции на 100%. Но к сожалению, приблизительно 70% интервьюируемых собеседование валят несмотря на то что это просто беседа, о заявленном кандидатом опыте, без каверзных вопросов. По сути, на интервью нужно показать что вы знаете, с чем сталкивались и имеете опыт, чего не знаете но хотели бы развиваться и мотивацию. Адекватная оценка своего опыта, общая эрудиция и мотивация, это ключ к позитивному собеседованию.

Источник: https://habr.com/ru/post/560792/


Интересные статьи

Интересные статьи

Переход на юридически значимый документооборот (ЮЗДО) при всем влиянии на эффективность бизнеса остается сложной процедурой: нужно учесть многие нюансы, в том числе закон...
Какое-то время назад появилась возможность уделить внимание языку Go и удачно на глаза попалась публикация «Паспортный контроль, или Как сжать полтора гигабайта до 42 мег...
Данная статья выражает мое личное мнение, основанное на опыте подготовки и сдаче экзамена на сертификат PMP (Project Management Professional) от Project Management Instittute.Вся информац...
Над этим вопросом я задумался ещё до того, как стал работать менеджером по продажам в первый раз. Свою карьеру в продажах я начал с холодных продаж в b2b. Продавал автомо...
Ранее в одном из наших КП добавление задач обрабатывалось бизнес-процессами, сейчас задач стало столько, что бизнес-процессы стали неуместны, и понадобился инструмент для массовой заливки задач на КП.