Чем принципиально отличается виртуальная машина от контейнера, является ли виртуализация продолжением контейнеризации, основные преимущества и недостатки данных технологий – это те вопросы, которые интересуют сотни специалистов в сфере IT.
Понятие виртуализации
Виртуализация – набор вычислительных ресурсов или их логической совокупности, абстрагированный от аппаратного обеспечения. Она является своеобразным методом уплотнения программных продуктов на одном “железе”.
Что характерно для технологии виртуализации:
- возможность размещать на одном и том же сервере большое число клиентов;
- оперирование исключительно ресурсами процессора в соответствии с технологиями Intel, AMD, VMX;
- максимально полное распределение производственных мощностей.
Главная особенность виртуальной машины – это полная ее изоляция: изолировано и системное ядро, и программные модули, и библиотеки. А в части процессора и памяти предоставляются строго ограниченные ресурсы.
Docker – самая распространенная на сегодняшний день технология виртуализации (автоматизация развертывания и управления программными продуктами в среде с поддержкой контейнеризации).
Классический пример использования виртуальной машины – это возможность загрузки сразу нескольких операционных систем на одном портативном/персональном компьютере. При этом каждый экземпляр подобной клиентской операционной системы оперирует своим комплектом логических объектов (ОЗУ, процессорная память, хранилища данных, и т. д).
Основные категории виртуализации
В широком смысле слова, виртуализация представляет собой имитацию настоящего процесса реализации, абстрагируя вычислительные ресурсы для пользователя системы.
Принято различать два типа виртуализации:
- На базе платформ виртуальных машин. Представляет собой набор стандартных программно-аппаратных средств с распределенным пользовательским пространством. В конечном итоге всё сводится к генерации программных систем на основе имеющихся аппаратных комплексов.
- На основе ресурсов. Подразумевает под собой кластеризацию компьютеров, инкапсуляцию и агрегацию данных, распределенные вычисления.
Что такое контейнеризация
Принято считать, что контейнеризация – это один из методов виртуализации. Ее еще называют зонной или контейнерной виртуальной машиной.
Среди характерных особенностей данной технологии следует выделить:
- ядро ОС поддерживает сразу несколько зон (экземпляров) пользовательского пространства;
- полная изолированность контейнеров, что исключает возможность интероперабельности программных продуктов из разных контейнеров;
- ограничение на запуск экземпляров ОС с разной топологией ядра.
В отличие от виртуальной машины, которая изолируется процессорными средствами (аппаратная часть), контейнер для этого использует не само “железо”, а возможности операционной системы (именуемое пространством имен).
Почувствовать разницу между контейнеризацией и виртуализацией можно на примере. Так, если хост в качестве операционной системы использует Linux, то “виртуалка” у вас может быть адаптирована и под Windows. Напротив, если контейнер адаптирован под Linux, то внешняя среда также будет Linux (все контейнеры узла имеют одно ядро).
Подводя итог, можно констатировать, что виртуализация и контейнеризация не являются смежными понятиями. С точки зрения своей сущности и применения они занимают разные ниши и объединять их некорректно. Это равносильно сравнению теплого с мягким.