Вопросы на собеседовании девопса

Господа, какие вопросы можно ожидать на позицию Devops-инженера? Как проходит стандартный день на работе? В чем заключается ежедневная рутина, если все автоматизированно и работает как часы.

Решил круто изменить свою деятельность, имея небольшой бэкграунд в виде умения пользоваться линуксом на уровне админа и пайтона. Посмотрел видео уроки и немного разобрался с Jenkins, Ansible, Git, PostgreSQL, Prometheus и Докером, k8s ещё не усвоил (он кажется чем-то крайне сложным).

Проблема в том, что настоящий скилл приходит только после решения реальных задач, но где их взять, если ты ещё не устроился? Панически боюсь быть уволенный за проф. непрегодность.

Нашёл на просторах интернета неплохую подборку вопросов, буду рад если дополните:

 Что такое Load Average, SWAP, inode?

— Опишите модель OSI и все ее уровни?

— Чем отличается TCP от UDP, как устанавливается соединение TCP?

— Когда нужно использовать SWAP, а когда нет?

— Чем отличается git pull от git fetch?

— Чем отличается транзакция от запроса, в контексте БД?

— Как починить chmod -x /bin/chmod?

— Что такое DevOps, Agile?

— С какими методологиями разработки ПО работал? Что знаешь о Scrum, Kanban и т.д?

— Чем виртуалки отличаются от контейнеров?

— Клиенты жалуются на то, что веб-сервис стал медленно работать, как бы ты последовательно докапывался до проблемы? Как обнаружить bottleneck?

— Чем отличаются реляционные БД от нереляционных и key-value? С какими из них работал, как бы ты организовывал разгрузку баз, репликации, миграции, бекапы?

— Что такое балансировщик? Какие типы балансировки при деплое знаешь? Что такое blue-green deployment, канареечные релизы?

— Как бы ты организовал поднятие инфраструктуры в облаке, в случае если отвалилась целая зона или регион?

— Как налету мигрировать работающую базу из одного региона в другую?

— Как бы ты строил ту или иную архитектуру проекта?

— Работал ли с облаками, AWS, GCP, Azure, OpenStack?

— Что представляет собой докер-контейнер? Из каких двух базовых вещей состоят контейнеры (имеется ввиду namespaces и cgroups)?

— Какие инструменты оркестрации контейнеров использовал? Для чего нужен Kubernetes, Nomad, Swarm, Compose?

— Есть ли опыт работы со стеком ELK, со стеком ПО от Hashicorp (Vault, Consul, Nomad, Terraform и т.д)?

— С какими системами мониторинга работал? Есть опыт работы с Prometheus?

— С какими CI-системами работал? В чем отличия Jenkins от TeamCity и других аналогичных систем?

— Что такое Continuous Integration/Delivery/Deployment и чем они друг от друга отличаются?

— Есть ли опыт внедрения CI/CD в инфраструктуру java-приложений (ant/maven/gradle)?

— С какими системами управления конфигурациями работал (Ansible/Puppet/Chef и т.д)? Почему именно с ними, в чем между ними разница?

— Как в access-логе Nginx посмотреть самые активные IP-адреса за последние сутки с помощью BASH?

— Как отсортировать массив в Python? Написать код в реальном времени.

Понимаю, что в каждой компании могут использоваться свои инструменты и технологии, все не выучишь. Решил выбрать наиболее популярные.

0
24 комментария
Написать комментарий...
Виктор Рэд

Есть подборка с вопросами на гитхабе. https://github.com/bregman-arie/devops-interview-questions
Вообще, все сильно различается от проекта к проекту - и требования и вопросы и специфика работ. Кстати, приходилось собеседовании людей с опытом меньше чем у тебя, и в запросах они себя не ограничивали). Не забывай, что это и философия в том числе. И желаю удачи)

Ответить
Развернуть ветку
Константин Демиас

Сорри, но, ИМХО в dev-ops с таким поверхностным знанием рановато... это более серьезная должность, чем вы думаете... Тут не подойдет "немного разобрался".

Ответить
Развернуть ветку
Дмитрий Валетин

Неправда. Все когда-то были джунами. Для джунского уровня достаточный набор. Автору: ходите по собеседованиям минимум 3 собеседования в день и вы найдете работу за неделю.

Ответить
Развернуть ветку
Константин Демиас

Всегда считал дев опсов закаленными ветеранами, куда идут ребята с отличным опытом да даже с тем же гитом, докером, а не "посмотрел видосики"...

Ответить
Развернуть ветку
Bulat Ziganshin

девопс - это специализация, а не уровень знаний

Ответить
Развернуть ветку
Константин Демиас

Сорри, значит у меня ложные представления...

Ответить
Развернуть ветку
KilledDebtor

А как получить опыт работы с гитом и докером, не будучи девопсом? Админ занимается немного другим, разраб - вообще другая ветка.

Ответить
Развернуть ветку
Константин Демиас

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

Ответить
Развернуть ветку
KilledDebtor
Например пофрилансить пару месяцев

Кем? Девопс может вообще не уметь ни программировать ни верстать. Какие-то только основы понимать и всё.

У нас вузы некоторые готовят девопсов, можно туда отправить, конечно.

Ответить
Развернуть ветку
Глеб Федосов
Автор

Ну не совсем посмотрел видосики, а посмотрел видосики несколько раз, выполнил примеры из видосиков, почитал документацию.)
Разработка всегда казалась не моим делом. Был опыт администрирования, сейчас работа вообще не связана с IT. Как я заметил, 95% девопсов это бывшие админы.
В целом согласен с вами в том, что ХОРОШИЙ девопс это шарящий человек, а такое только с опытом приходит.

Ответить
Развернуть ветку
KilledDebtor

А что нужно сделать, что бы было не рановато? ))

Ответить
Развернуть ветку
Константин Демиас

Заиметь хотя бы опыт в основах, будучи разрабом, а не идти посмотрев пару тройку видосов...

Ответить
Развернуть ветку
Bulat Ziganshin

ну а попасть в разрабы без опыта можно например с должности девопса...

Ответить
Развернуть ветку
KilledDebtor

Товарищ сейчас так и планирует. По этому и вопросы возникли :)

Ответить
Развернуть ветку
KilledDebtor

Стопэ. Девопс может вообще не иметь опыта разработки, он админ, а не программист.

Ответить
Развернуть ветку
Константин Демиас

Я привел лишь пример, соглашусь.

Ответить
Развернуть ветку
Denis Astahov

У нас на собеседованиях такие мелкие вещи никто не спрашивал, обычно дают сценарий и как бы ты решал проблему. Ну и конечно же даём задачу на дом и 1-2 дня на решение.
Это всегда сделать деплой в Cloud.
Git -> GitHub -> Jenkins - > AWS

Ответить
Развернуть ветку
Francis R. Wilkeу

На всех моих собеседованиях было также. Больше проектирование и обоснование решений. А технические детали - ну такое, технологий для решения одной и той же проблемы очень-очень много: кто-то тесно работал с Jenkins, а кто-то со Spinnaker, кто-то эксперт в Nginx, а кто-то в Apache (а кто-то может и в Caddy) и так далее. Жизни не хватит быть экспертом во всем.  Обычно если появляется задача с использованием технологий, с которыми не знаком - учишься на ходу. Работа в DevOps неоднородна и нужно уметь всегда подстраиваться. 

Ответить
Развернуть ветку
Ринат Г.
Git -> GitHub -> Jenkins - > AWS

А в чем прикол платить за гитхаб если есть бесплатный гитлаб, у которого и так есть ci? 

Ответить
Развернуть ветку
Francis R. Wilkeу

насчет K8S - он не кажется, он и есть сложный :) попробуй AWS ECS, он менее популярен, но это, по-моему, сейчас единственная альтернатива. намного интуитивнее и понятнее. 

Ответить
Развернуть ветку
Timofey Dyrin

Автору: Хорошо заданный вопрос содержит от 50 до 100% ответа. У Вас нормально сформулированные вопросы. Выделяем, например, "Чем отличается git pull от git fetch?" - нажимаем Найти - Профит!

Ответить
Развернуть ветку
Дмитрий Валетин

Да, но для собеседования кого? Если для собеседования джуна - то да, такие вопросы норм. Но для собеседование кого-то более-менее старше нужны вопросы помогающие понять как кандидат решает проблемы а не знает чем git pull от git fetch отличается. На свете много таких которые начитались "как пройти собеседование в гугл или фейсбук" а сами физзбаз написать не могут.

Ответить
Развернуть ветку
Timofey Dyrin

Я немного о другом писал - о том, что накатав такой пост, состоящий из вопросов и тем для изучения (по сути, план обучения как раз) - можно было его не выкладывать "на оплевывание" на vc, а использовать по назначению - как план для обучения, внезапно!

Ответить
Развернуть ветку
Semyon Gashchenko

"Что представляет собой докер-контейнер? Из каких двух базовых вещей состоят контейнеры (имеется ввиду namespaces и cgroups)?" Контейнеры не состоят из namespaces и cgroups. namespaces и cgroups это подсистемы ядра Linux на основе которых построен docker. Контейнеры состоят из слоев

Ответить
Развернуть ветку
21 комментарий
Раскрывать всегда