На словах ты Лев Толстой, а на деле не можешь развернуть Nginx в Kubernetes
Блог компании KTS Управление персоналом * DevOps * Kubernetes *
2024-03-09 15:11:08 - ERneSt⚡️os
Задача собеседования — понять, как будет справляться с задачами кандидат.
В собеседованиях по разработке всё проще: можно просто провести live coding и увидеть, как человек работает. Но в интервью по DevOps много теории, и в итоге часто неясно, есть ли у человека реальный опыт выполнения какой-то задачи или он просто вспоминает обрывки когда-то прочитанных материалов.
Нам хотелось дать реальную задачу и увидеть действия специалиста. Но готовую задачу дать тяжело, потому что нужно поднимать инфраструктуру, на которой будет решаться задача. Если не поднимать инфраструктуру, получится просто задачка ради задачки. Не получится посмотреть и проследить, как человек справляется с решением, траблшутингом и вещами, в которых опыта нет или его мало.
В итоге в собеседованиях было много воды. Мы задавали вопросы вроде: «Ну вот что бы ты сделал, если …» Понимание о компетентности и уровне кандидата на должность мы получали лишь примерное.
У нас есть своя школа разработки Metaclass KTS. Дважды в год мы проводим курсы по фронтенду и бэкенду и ещё есть несколько нерегулярных — в том числе курс для разработчиков «Деплой приложений в Kubernetes».
Когда мы готовили курс по Kubernetes, то хотели сэкономить время преподавателей для проверки домашних заданий и дать студентам платформу, на которой можно практиковаться. Для этого мы внедрили систему песочницы — под каждого студента разворачивается индивидуальный кластер, а задания проверяются автоматически. Есть редактор кода, все необходимые утилиты и терминал.
Мы поняли, что это отлично подходит для решения проблем DevOps-собеседований, и стали давать на интервью задачи на тренажёре. В итоге качество интервью резко выросло:
- Автоматизировалась подготовка к собеседованиям — для запуска контура для задачек нужно нажать одну кнопку
- Мы видели реальный уровень кандидата благодаря серии последовательных задач разной сложности: с первой может справиться и стажёр, но если человек справляется с последней, то это скорее уже мидл/мидл+. Конечно, мы видим уровень в разрезе нашего видения
- Собеседование стало наглядным:
- Хорошо видно, сталкивался ли человек с важными для нас темами внутри Kubernetes:
- развертывание приложения
- работа с компонентами Куба и понимание принципа их работы — например, Ingress Controller и его связка с облачными балансировщиками
- Helm-чарты и их параметры — например, установка стека мониторинга так, чтобы можно было посмотреть метрики в Grafana
- Понятны навыки траблшутинга — если в процессе интервью кандидат допускает ошибки и/или сталкивается с проблемами, по его действиям хорошо видны приемы решения проблемы, навык поиска информации, поиск и правка багов и мисконфигураций в манифестах
- По отзывам кандидатов — повысили интерес собеседований. Мы даём обстановку, приближенную к реальности. Это не кодинг на вайтборде, а настоящий Kubernetes-кластер в настоящем облаке и возможность пользоваться любой доступной информацией: Гугл, свои наработки, дока. Суть задачи сильно похожа на работу в реальных условиях
Сначала мы даём одну несложную, но показательную задачу: например, в пустом развёрнутом кластере Kubernetes развернуть Nginx-приложение и получить на него публичную ссылку.
Сначала обсуждаем тонкости решения, как надо действовать. После этого кандидат приступает к выполнению задачи. Мы разрешаем гуглить и пользоваться своими наработками, подсказываем. Чтобы было проще разговаривать, просим включить стрим вкладки с VS-кодом.
Если кандидат справляется с задачей быстро, добавляем задание посложнее: например, настроить мониторинг, чтобы мы увидели дашборд с нашим развёрнутым приложением.
После такого интервью мы сразу понимаем, подходит ли нам человек.
Другие наши статьи по DevOps для начинающих:
- Сравнение Kubernetes с другими оркестраторами: Docker Swarm, Nomad, Openshift
- Как изучать Kubernetes джуну — и зачем
- Как деплоить приложение на Django в Kubernetes с нуля
Другие наши статьи по DevOps для продолжающих:
- Как построить эргономичный мониторинг
- Зачем мы сделали собственный контроллер для копирования секретов в Kubernetes
- Как экономить ресурсы, затрачиваемые Kubernetes