Где размещать контейнеры: выделенный сервер Украина или виртуальная машина?

Размещая контейнеры Docker на специальных выделенных серверах, компании получают стабильность и переносимость. Эксперт Кристофер Тоцци поясняет, почему иногда выбор необходимо делать в пользу современных виртуальных машин.

hosting 800x471 Где размещать контейнеры: выделенный сервер Украина или виртуальная машина?

Выделенный сервер Украина или же виртуальная машина?

Введение

Для чего же вам могут потребоваться контейнеры, вы уже знаете. Однако знаете ли вы, какой вид сервера для них больше подходит? Реально ли для хостинга площадок вроде Docker или другой схожей среды по управлению контейнерами желательно пользоваться выделенными серверами, нежели виртуальными машинами?

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

Виртуальная машина или выделенный сервер?

Сравнение минусов и плюсов виртуальных машин и выделенных серверов для хостинга программной среды — совсем неновая задача. Технические руководители задумались об этом еще когда виртуализация начала широко использоваться в дата-центрах в далеких 2000-х годах, задолго до возникновения Docker.

Вкратце, ключевые преимущества выделенного сервера такие:

  • Достаточно высокая скорость. Ресурсы не расходуются на эмуляцию различных аппаратных средств.
  • Ресурсы оборудования применяются в полном объеме, так как оно не простаивает во время высокого спроса.
  • Простое администрирование. Инфраструктура в себе содержит меньше дисков, хостов и сетей.

В свою очередь, виртуальные машины предлагают такие преимущества:

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

Однако с применением виртуальных машин сопряжены многие недостатки. К ним относится:

  • Ресурсы сервера могут применяться не в полном объеме. Допустим, если вы на сервере выделите специальное место под хранение образа виртуальной машины, данный объем памяти уже нельзя будет применять для иных целей, даже когда виртуальная машина, которая связана с диском, не применяет весь выделенный объем.
  • Посредством виртуальных машин, увы, нельзя напрямую работать с физическим оборудованием. Например, если вы пожелаете, чтобы вместо виртуальной машины все вычислительные операции делались GPU, у вас ничего не получится — как минимум, простыми способами — поскольку виртуальная машина функционирует вне связи со специальной средой сервера.
  • Виртуальные машины, как правило, работают не настолько быстро, как физические серверы, потому что их ресурсы расходуются на эмуляцию аппаратного оборудования для виртуального сервера.

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

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

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

1 800x500 Где размещать контейнеры: выделенный сервер Украина или виртуальная машина?

Как контейнеры работают на выделенном сервере

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

Контейнеры на выделенных серверах дают возможность:

  • Получить полноценный доступ к аппаратным средствам, совсем не прибегая к способам транзитной передачи. Программа работает на той же ОС, что и сервер.
  • Эффективно применять ресурсы системы. Хотя можно ограничить ресурсы, которые отведены контейнеру для вычисления, передачи и хранения информации, в основном, не требуется выделять данные ресурсы только для работы одного контейнера. То есть сервер способен распределять системные ресурсы при потребности.
  • Получить высокую производительность выделенного сервера для программ из-за отсутствия аппаратной эмуляции, которая отделяет их от хост-сервера.

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

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

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

Почему не всегда контейнеры стоит размещать на выделенном сервере. Возможно, вам интересно, а почему контейнеры не запускать непосредственно на выделенном сервере всегда? Если данный подход обеспечивает все плюсы, зачем нужен какой-то другой?

Учитывайте следующие минусы хостинга контейнера на выделенном сервере, а вовсе не на виртуальной машине:

  • Обновить полноценный физический сервер довольно трудно. В случае если вы собираетесь заменить сервер на новый, вам нужно будет воссоздавать программную среду контейнера с нуля на полностью новом сервере. В случае если бы в образ виртуальной машины входила программная среда контейнера, можно бы было просто переместить его на какой-то новый сервер.
  • Подавляющее большинство из современных облачных сервисов настаивают на применении виртуальных машин. Есть также облачный хостинг с выделенными серверами. Но в общем, работа с облаком подразумевает применение именно виртуальных машин. В случае если пожелаете воспользоваться облачной площадкой для работы контейнеров, вам придется применять виртуальные машины.
  • Современные контейнеры поддерживают не все настройки программного обеспечения и оборудования. Сегодня можно разместить практически любой вид ОС на площадке виртуализации вроде VMware или же на KVM, работающей фактически на всех серверах и операционных системах. Однако возможности Docker ограничены. Он, при размещении на физическом сервере, работает лишь на Linux, а также некоторых серверах ОС Windows. Это значит, что если ваш выделенный сервер Украина использует, к примеру, Windows Server 2012, а Docker его в данный момент не поддерживает, и вы захотите разместить на нем Docker, вам в дополнение к серверу Windows надо будет установить специальную виртуальную машину, чтобы соблюсти все необходимые требования работы Docker.
  • Нельзя запустить контейнеры Linux на сервере Windows и наоборот. Данный недостаток значит, что контейнеры ОС Linux работают исключительно на Linux-серверах. Допустим, у вас выделенный сервер на ОС Windows, и вы планируете на нем запустить контейнер Docker для того, чтобы разместить приложение, созданное для Linux. Придется установить виртуальную машину ОС Linux на хостинг Windows и применять ее в качестве специальной среды для размещения Docker.
  • На выделенном сервере невозможно вернуться к предыдущему состоянию. На подавляющем большинстве платформ виртуализации есть крайне полезная опция: можно сделать снапшот вашей виртуальной машины, а затем вернуться к тому же состоянию позже, если надо. На выделенном сервере так не получится. И в общем снапшоты, как и возврат к предыдущему состоянию для сегодняшних контейнеров — это бессмысленные понятия. Контейнеры — это что-то эфемерное. У них нет какого-то предыдущего состояния. Наиболее простой возврат к предыдущему состоянию реализовать можно лишь на виртуальной машине.

Web Hosting Server Room Design Wallpaper 800x298 Где размещать контейнеры: выделенный сервер Украина или виртуальная машина?

Вывод

Трудно решить, размещать контейнеры на виртуальной машине или на выделенном сервере. Придется сопоставить все доводы «против» и «за» для того, чтобы определить, какой же вариант больше подходит именно для вашей компании.

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


Поделитесь с друзьями



Оставить комментарий