Вопрос на собеседовании · DevOps-инженер
Чем контейнер отличается от виртуальной машины?
Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.
Виртуальная машина эмулирует отдельную вычислительную среду и запускает собственную гостевую ОС с ядром. Контейнер изолирует процессы средствами ядра хоста — namespaces и cgroups — и обычно включает приложение с пользовательскими библиотеками, но не отдельное ядро.
Поэтому контейнеры обычно быстрее запускаются и плотнее размещаются, а виртуальные машины дают более сильную границу изоляции и могут запускать другую ОС. На практике эти подходы часто сочетаются: контейнеры работают внутри виртуальных машин облака.
01 · Структура ответа
Что важно сказать интервьюеру
Начните с определения, затем объясните механизм и закончите примером из практики. Для полного ответа раскройте эти тезисы:
02 · Пример
Как объяснить на практике
Kubernetes-кластер в облаке может состоять из VM-узлов, на каждом из которых runtime запускает множество контейнеров. VM задаёт инфраструктурную границу, а контейнер обеспечивает переносимую упаковку и изоляцию процесса приложения.
Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.
03 · Ошибки
Чего избегать в ответе
04 · Углубление
Что могут спросить следом
- Что делают namespaces и cgroups?
- Что входит в container image?
- Почему контейнеры обычно запускаются быстрее?
Практика ответа
Ответьте вслух, а не про себя
Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с опорой.
Mira