Виртуализация — это технология, которая позволяет создавать несколько моделируемых сред из одной физической аппаратной системы.
Контейнеризация — это упаковка программного кода со всеми его необходимыми компонентами, такими как библиотеки, фреймворки и другие зависимости, так, чтобы они были изолированы в своем собственном «контейнере».
Основные различия:
- При виртуализации гипервизор создает уровень абстракции над оборудованием, благодаря чему несколько операционных систем могут работать параллельно друг с другом. Этот метод считается первым поколением облачных вычислений.
- Контейнеризация считается облегченной версией виртуализации, при которой виртуализируется операционная система, а не оборудование. Без гипервизора контейнеры обеспечивают более быстрое предоставление ресурсов. Все ресурсы (включая код и зависимости), необходимые для запуска приложения или микросервиса, упаковываются вместе, поэтому приложения можно запускать где угодно.
P.S. Как думаете, какова разница в производительности между виртуализацией, контейнеризацией и «голым железом»?