. Где запускать контейнеры? “Голое железо” против виртуальных машин
Где запускать контейнеры? “Голое железо” против виртуальных машин

Где запускать контейнеры? “Голое железо” против виртуальных машин

В чем заключаются ключевые различия между запуском контейнеров в виртуализированных средах и на «голом железе» (bare metal servers, выделенные физические серверы для однотенантных сред)? Какую из сред выбрать? Основные компромиссы и моменты принятия таких решений обсуждаются на портале ComputerWeekly.

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

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

Конечно, довольно часто контейнерные кластеры и оркестровка запускаются в виртуальных серверных средах, но это не обязательно так. Они также могут работать непосредственно на «голых» серверах. Рассмотрим отличия «голого железа» от виртуальных машин (ВМ) и где лучше запускать контейнеры.

Контейнеры — это форма виртуализации, но такая, при которой приложение и все микросервисы, необходимые для его выполнения, запускаются поверх операционной системы хост-сервера, а между ними находится только механизм выполнения контейнеров. В виртуализированных серверных средах на операционной системе хоста работает гипервизор, а сверху располагаются гостевые ОС и приложения, работающие в этих средах. Большинство вопросов о том, запускать ли контейнеры на ВМ или на «голом железе», вытекают из этого основного факта.

Ключевые факторы принятия решения: производительность против удобства и, возможно, стоимость

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

Кроме того, может возникнуть вопрос стоимости. На «голых» серверах может работать облегченная ОС Linux (например, Core OS или ее потомки), что позволяет избежать значительной части затрат на лицензирование гипервизоров. Конечно, надо понимать, что они лишены расширенной функциональности, доступной в средах виртуализации.

Преимущества и недостатки виртуализации

Размещение слоя виртуализации поверх хост-ОС означает добавление слоя ПО в среду, что несет в себе как преимущества, так и недостатки.

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

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

Это наиболее четко видно на примере разницы в производительности между контейнерами, запущенными на «голом железе» и в виртуализированной среде. Бенчмаркинговые тесты, выполненные компанией Stratoscale, показали, что контейнеры на «голом железе» работают на лучше, чем на ВМ, из-за накладных расходов на производительность, связанных с виртуализацией. Конечно, поставщики средств виртуализации предпринимают усилия снизить эти накладные расходы — примером является Kubernetes-платформа Tanzu от VMware.

Между тем в средах ВМ, как правило, ресурсы — такие как хранилище, выделяемое при запуске, — остаются выделенными для них. Компания Diamanti, которая предоставляет платформу Kubernetes, предназначенную для использования на «голом железе» и в облаке, утверждает, что использование ресурсов в виртуализированных средах может составлять лишь 15% и что это позволяет сократить использование оборудования в пять раз.

Недостатки «голого железа»

Несмотря на все вышесказанное, у контейнеров на «голом железе» также есть недостатки.

Главным из них является то, что контейнерные среды зависят от ОС, поэтому, например, среда, созданная для Linux, будет работать только на Linux. Это потенциально накладывает ограничения на миграцию и может работать против вас в облаке, где предложение «голого железа» ограничено, а там, где его можно найти, оно стоит дороже. Учитывая, что одним из ключевых преимуществ контейнеров является возможность миграции рабочих нагрузок между онпремисными площадками и облаком, это не очень хорошая новость.

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

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

📎📎📎📎📎📎📎📎📎📎