Из рубрики "Спрашивали? Отвечаем!"
Что я спрашиваю на собесах по хард-скиллам?
Сразу оговорюсь. Я не проверяю, насколько хорошая у человека память, так что знание конкретных ключей меня не интересует (с одним исключением🙂). Меня интересует, понимает ли человек предметную область, поэтому в каждый топик можно углубляться ровно настолько, насколько есть понимание. Если кто-то знает больше меня, то это прям очень хорошо, такие интервью самые приятные.
Часто я спрашиваю что-то типа "а почему, по вашему мнению, это реализовано именно так или иначе?"
Траблшутинг: я озвучиваю ситуацию, вы проговариваете свои действия. Говорите мне команды, которые вы запускаете, я буду говорить, что они показывают.
Например: у вас сработал мониторинг, что на сервере кончилось свободное место. Вы заходите туда и видите, что df показывает, что половина диска еще свободно. Ваши действия?
Ситуация моделируется в соответствии с топиком
Итак:
Linux
- FS/VFS
- Процессы и их взаимодействие
- Сисколлы, файловые дескрипторы
- Пакеты, управление софтом
- Траблшутинг
Networking
- Основные протоколы, понимание разделения на уровни
- Статическая и динамическая маршрутизация
- vlan
- HTTP-протокол
- SSL/TLS
- iptables
- AntiDDOS
- Траблшутинг
Исключение, уопмянутое выше. Я спрашиваю с какими ключами надо запускать netstat, чтобы получить ту или иную информацию) Обычно эти ключи впечатываются на подкорку, если постоянно пользуешься netstat-ом и суть вопроса именно в этом, а не в знании конкретных ключей🙂
System design
- Балансировка трафика
- HA-конфигурации
- nginx (openresty), haproxy
- VRRP
- Проектирование системы, решающей указанную задачу. Крупными мазками.
Databases:
- Master-master design
- Высокодоступные конфигурации
- Репликация
- Индексы
- EXPLAIN, отладка запросов
- Резервное копирование
- Траблшутинг
Конкретные БД, про которые мы говорим: mysql, postgresql.
Clickhouse будет большим плюсом. Понимание как можно в кликхаус запихать многогигабитный поток данных будет огромным плюсом
Virtualization/Containerization:
- Контейнеры и все с ними связанное: способы изоляции, ограничивания ресурсов, зачем оно все вообще так
- Сетевая подсистема в случае окружения, построенного на контейнерах/VM
- Виртуализация в linux: KVM
- Траблшутинг
Kubernetes:
- k8s itself - из чего состоит, какие задачи решает, зачем оно вообще так
- etcd
- Ingress/Egress, сервисы (SVC), роутинг трафика
- Сетевая модель, CNI, calico
- DaemonSets, StatefulSets
- Инструменты для observability
- Storage, PV/PVC. понимание моделей записи
- Helm
- Масштабирование в kubernetes
- Траблшутинг
DevOps (ну тут буквально вот в общих чертах поговорить. Мы тесно работаем с несколькими девопсовыми командами и надо понимать, конечно, что и как у них происходит):
- Понимание CI/CD
- Puppet, ansible
- Git (Gitlab)
Немножко программирования на словах. Задачки типа: написать простенькую регулярку, разобрать лог с помощью баша или питона и все такое, исключительно админское
Надо понимать, что все топики в одно собеседование впихнуть невозможно, поэтому здесь я постарался по максимуму вспомнить все темы, о которых я говорю с кандидатами, но конкретный набор разный для каждого собеса :)
Напоминаю, что я нанимаю Senior SRE к себе в команду :) Резюме на andrey@sinits.in
Post #175
2.65K
- 👍 22
- ❤ 4