02.06.2021

Виртуализация против контейнеризации

Чем принципиально отличается виртуальная машина от контейнера, является ли виртуализация продолжением контейнеризации, основные преимущества и недостатки данных технологий – это те вопросы, которые интересуют сотни специалистов в сфере IT.


Понятие виртуализации


Виртуализация – набор вычислительных ресурсов или их логической совокупности, абстрагированный от аппаратного обеспечения. Она является своеобразным методом уплотнения программных продуктов на одном “железе”.

Что характерно для технологии виртуализации:

  • возможность размещать на одном и том же сервере большое число клиентов;
  • оперирование исключительно ресурсами процессора в соответствии с технологиями Intel, AMD, VMX;
  • максимально полное распределение производственных мощностей.

Главная особенность виртуальной машины – это полная ее изоляция: изолировано и системное ядро, и программные модули, и библиотеки. А в части процессора и памяти предоставляются строго ограниченные ресурсы.

Docker – самая распространенная на сегодняшний день технология виртуализации (автоматизация развертывания и управления программными продуктами в среде с поддержкой контейнеризации).

Классический пример использования виртуальной машины – это возможность загрузки сразу нескольких операционных систем на одном портативном/персональном компьютере. При этом каждый экземпляр подобной клиентской операционной системы оперирует своим комплектом логических объектов (ОЗУ, процессорная память, хранилища данных, и т. д).


Основные категории виртуализации


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

Принято различать два типа виртуализации:

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

Что такое контейнеризация


Принято считать, что контейнеризация – это один из методов виртуализации. Ее еще называют зонной или контейнерной виртуальной машиной.

Среди характерных особенностей данной технологии следует выделить:

  • ядро ОС поддерживает сразу несколько зон (экземпляров) пользовательского пространства;
  • полная изолированность контейнеров, что исключает возможность интероперабельности программных продуктов из разных контейнеров;
  • ограничение на запуск экземпляров ОС с разной топологией ядра.

В отличие от виртуальной машины, которая изолируется процессорными средствами (аппаратная часть), контейнер для этого использует не само “железо”, а возможности операционной системы (именуемое пространством имен).

Почувствовать разницу между контейнеризацией и виртуализацией можно на примере. Так, если хост в качестве операционной системы использует Linux, то “виртуалка” у вас может быть адаптирована и под Windows. Напротив, если контейнер адаптирован под Linux, то внешняя среда также будет Linux (все контейнеры узла имеют одно ядро).

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