Преимущества виртуальных машин перед портативными контейнерами
Хотя современные контейнеры кажутся подходящим решением для обеспечения вычислительной среды из-за их легкости, в этой статье мы рассмотрим преимущества виртуальных машин перед портативными контейнерами нового поколения.
1. Безопасность:
Виртуальные машины более безопасны, чем контейнеры, потому что приложения (несколько) работают внутри виртуальной машины, то есть в гостевой ОС, и связь с оборудованием происходит через гипервизор. В случае контейнеров у них есть все необходимое для запуска приложения. Однако, когда им приходится взаимодействовать с другими контейнерами или ОС хоста, на которой работают эти контейнеры, это создает угрозу безопасности. С тех пор, как виртуализация пришла на первое место, в виртуальных машинах была проделана значительная работа с точки зрения безопасности и шифрования данных, чем по сравнению с контейнерами. Любой компромисс с виртуальной машиной не повлияет и не позволит злоумышленнику добраться до другой виртуальной машины, поскольку аспект безопасности находится под контролем гипервизора, тогда как в контейнерах это не так, поскольку они не имеют строгих границ безопасности.

Гипервизор
2. Запуск старых приложений:
Виртуальные машины - лучший выбор, когда нам нужно запускать старые приложения или приложения, которые работают поверх старых версий операционных систем. Поскольку у нас может не быть ресурсов для модернизации приложения для работы внутри контейнера, нам придется обратиться к виртуальным машинам. В таких ситуациях мы могли запустить старую ОС как виртуальную машину и запустить приложение поверх нее.
3. Приложения, интенсивно использующие ресурсы ОС:
Виртуальные машины могут использоваться, когда нам нужно размещать или запускать приложения, которые являются ресурсоемкими и требуют функциональности и ресурсов ОС. Также в средах, где необходимо запускать различные ОС, предпочтительнее использовать виртуальные машины. В случае контейнеров они используют ядро хоста и не могут быть изолированы, как виртуальные машины, так как они запускают собственное ядро.
4. Использование ОС хоста и совместимого ядра (Переносимость):
Мы можем запускать несколько виртуальных машин с разными гостевыми ОС (имеющими собственное ядро) поверх хоста / сервера. В то время как с контейнерами, поскольку они используют ядро из ОС хоста, они ограничены операционной системой, и, следовательно, контейнер, предназначенный для работы в конкретной ОС хоста, не сможет перенести другой сервер с другим ядром и будет иметь проблемы совместимости. при переносе контейнеров.
5. Графический интерфейс пользователя (видеовыход):
По сравнению с виртуальными машинами, контейнеры неэффективны с точки зрения вывода / поддержки видео, поскольку они в основном предназначены для консольных приложений. Запуск инструментов или программного обеспечения с графическим интерфейсом или с богатым графическим интерфейсом проще на виртуальных машинах с использованием виртуального дисплея на хост-машине. Виртуальные машины - предпочтительное решение, когда нам нужно запускать приложения на основе графического интерфейса.
6. Постоянное хранилище:
В виртуальных машинах есть виртуальный диск, который используется для постоянного хранения данных приложения. Однако это не относится к контейнерам, контейнеры используют то, что мы называем эфемерным хранилищем (по умолчанию контейнеры не имеют состояния). В связи с растущим спросом и потребностью в приложениях с отслеживанием состояния перед контейнерами встает задача добавить решение для хранения. Когда дело доходит до постоянного хранилища, оценка виртуальной машины выше, чем у контейнеров, поскольку в последних нам необходимо реализовать сложные решения для хранения данных.
На изображении ниже показаны различия между виртуальными машинами и контейнерами:

ВМ против контейнеров