Виртуальные машины предоставляют виртуальное оборудование, которое гостевая ОС использует для запуска приложений. Несколько приложений работают на одной виртуальной машине, но они логически разделены и изолированы. Используя контейнеры, разработчики берут оптимизированную базовую файловую систему ОС и размещают только необходимые двоичные файлы и библиотеки, от которых зависит приложение.

Рисунок 7 – Структура контейнера в среде виртуализации


       С помощью виртуализации несколько физических машин можно объединить в одну физическую машину, на которой работает несколько виртуальных машин. Каждая виртуальная машина предоставляет виртуальное оборудование, которое гостевая ОС использует для запуска приложений. Несколько приложений работают на одной виртуальной машине, но эти приложения по-прежнему логически разделены и изолированы. Проблема с виртуальными машинами заключается в том, что они имеют размер от сотен мегабайт до гигабайт и содержат множество двоичных файлов и библиотек, которые не имеют отношения к основному приложению, работающему на них. Используя контейнеры, разработчики берут оптимизированную базовую файловую систему ОС и размещают только необходимые двоичные файлы и библиотеки, от которых зависит приложение. Когда контейнер запускается как процесс в ОС узла контейнера, контейнер может видеть свои зависимости и пакеты базовой ОС. Контейнер изолирован от всех других процессов в операционной системе узла контейнера. Контейнерные процессы — это единственные процессы, которые работают в минимальной системе. С точки зрения хост-ОС контейнера, контейнер — это еще один запущенный процесс, но он имеет ограниченное представление файловой системы и потенциально ограниченный ЦП и память.
       Виртуальные машины и контейнеры работают по-разному (таблица 4).
       Таблица 4 – Сравнение виртуальных машин и контейнеров

Виртуальные машины

Контейнеры

Инкапсуляция всей операционной системы

Инкапсуляция приложения и зависимых двоичных файлов или библиотек

Запланировано гипервизором

Запланировано операционной системой хоста контейнера

Запуск на гипервизоре

Запуск на хост-ОС контейнера

Запуск виртуальной машины означает запуск операционной системы (от секунд до минут)

Запуск контейнера означает запуск процесса приложения (миллисекунды в секунды)

       Контейнеры — идеальная технология для микросервисов, потому что цели контейнеров (легкость, простота упаковки, возможность запуска в любом месте) совпадают с целями и преимуществами архитектуры микросервисов. Операторы получают модульные компоненты приложений, которые имеют небольшие размеры и могут вписаться в существующие ресурсы. Разработчики могут сосредоточиться на логике модульных компонентов приложения, зная, что инфраструктура надежна и поддерживает масштабируемость модулей.
       Система группового управления (СГУ), Система резервного копирования (СРК) и Система управления рабочими средами пользователей работают в отдельных контейнерах, запущенных на хостах виртуализации Горизонт-ВС.


Рисунок 7 – Структура контейнеров в составе Горизонт-ВС

  • Нет меток