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

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

 

Преимущества сред

 

Выделенный сервер:

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

  • администрирование такого сервера многократно упрощено.

Виртуализация:

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

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

 

Недостатки виртуализации

 

Такие платформы не лишены ряда недостатков:

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

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

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

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

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

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

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

 

Особенности и преимущества работы контейнеров на выделенном сервере

 

Реализуя контейнеризацию на выделенном сервере, можно получить такие преимущества:

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

  • приложение для контейнеризации и сервер могут использовать одну ОС одновременно;

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

  • не нужно будет ограничивать общую производительность сервера, поскольку часть его ресурсов не будет направлена на аппаратную эмуляцию.

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

  • можно быстро переносить приложения между хост-серверами;

  • изолировать приложения;

  • ограничивать контейнеры в правах и использовании ресурсов.

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

 

Недостатки работы контейнеров на выделенном сервере

 

Далеко не всегда стоит размещать контейнеры на выделенном сервере, а не на виртуальной машине, поскольку данный способ имеет ряд недостатков:

  • нельзя обновить физический сервер;

  • почти все крупные облачные сервисы оптимизированы под работу с виртуальными машинами;

  • контейнеры ограничены в настройках оборудования и ПО;

  • отсутствует возможность запускать Windows-контейнеры на Linuх-сервере, наоборот тоже нельзя. В обоих случаях без виртуализации не обойтись;

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

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