Алексей Кобец: "Судя по всему, время использования средств виртуализации в облаках уже пришло"
Алексей Кобец,
старший вице-президент по разработке Virtuozzo
© ComNews
10.09.2018

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

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

Как показала практика, использовать такое же решение можно и в облачных средах, особенно если вам достаются мощные виртуальные машины – такие как AWS EC2 m4.xlarge Разница заключается лишь в том, что при потребности в масштабировании в обычном кластере нужно будет добавить еще узлы и еще диски, а в облаке можно просто заказать дополнительные ресурсы для той виртуальной среды, в которой работает гипервизор.

В Rebel решили уплотниться…

Rebel – это канадская компания, которая начала свой бизнес, как регистратор доменных имен еще в 2006 году. Однако, в последнее время среди клиентов появился спрос на более сложные (и соответственно дорогостоящие) сервисы. Как и многие другие сервис-провайдеры, чтобы построить свою сервисную инфраструктуру. компания Rebel арендует мощности облака Amazon. Именно на базе инстансов EC2 ресурсы предоставляются конечным пользователям, но в последние годы компании пришлось выводить на рынок более "мощные" предложения.

Первым делом в Rebel решили полностью передавать клиентам ресурсы одного из массово арендуемых инстансов – это было действительно быстро и надежно, вот только не очень выгодно. В результате или маржа оказывалась неинтересной, либо конечным пользователям было дорого арендовать такую машину. Детальный анализ показал, что клиенты Rebel большую часть времени не используют и 10% арендуемых процессорных мощностей, а также далеко не всю доступную дисковую емкость. В результате, специалисты Rebel решили развернуть Virtuozzo 7 поверх машин EC2 m4.xlarge.

Реальный эффект

Помимо того, что у компании появилась готовая контрольная панель и система менеджмента для более мелких VPS, в Rebel измерили преимущество по размещении реальных клиентских серверов в инстансах m4.xlarge. Как известно, такая машина имеет 4 vCPU и 16 Гбайт памяти. Разбивая ее между клиентами компании удалось достичь повышения плотности в 3,8 раза по сравнению со стандартными средствами виртуализации Linux. То есть на одной машине EC2 стало размещаться два сервера X-Large (4 vCPU, 16 Гбайт), 2 сервера Large (2 vCPU, 8 Гбайт), 2 сервера Medium (2 vCPU и 4 Гбайт) и 3 сервера Small (1 vCPU, 2 Гбайт). И здесь мы говорим не о каком-то абстрактном эксперименте, а о реальных бизнес-задачах конкретной компании. В результате такого уплотнения инфраструктуры Rebel получила финансовую экономию - затраты на арендуемые мощности сократились почти в 4 раза.

Архитектура решения

Один из плюсов, который в конечном счете "подкупил" Rebel, склонив их выбор в пользу Virtuozzo (ведь сначала о конкретных показателях повышении плотности были только предположения) заключался в разделении ресурсов с практически нулевой потерей производительности. Это стало возможным за счет применения системных контейнеров, которые обеспечивают виртуализацию на базе операционных систем Linux.

Учитывая, что все VPS используют ядро сервера, на котором они запущены, затраты на виртуализацию системных контейнеров оказываются гораздо ниже затрат, возникающих при использовании виртуальных машин. Помимо этого, Virtuozzo использует дедупликацию памяти и IOPS, что позволяет еще больше снизить нагрузку на сервер. Как мы уже показали выше, Rebel разделяет одну m4.xlarge на 9 машин разной мощности. Но в каждой из них используется одно и то же ядро, что при стандартной ситуации позволяет экономить до 1 Гб RAM для каждой ВМ. Точно также снижается и количество операций ввода/вывода, когда на хосте работают не виртуальные машины, а системные контейнеры.

Другой момент – это уже заложенные в гипервизор возможности живой миграции, которые позволяют незаметно для пользователя перенести его на другой инстанс EC2, если какая-то часть системы оказывается перегруженной. Вообще арендуемые мощности AWS могут быть использованы как узлы кластера, позволяющие перемещать нагрузки друг между другом, чтобы оптимально распределить производительность между пользователями, согласно их текущей активности. А опыт работы Rebel на инстансах EC2 показал, что выделение новых ресурсов через Virtuozzo 7 требует до 2 минут времени.

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

Виртуализация в облаке

Судя по всему, время использования средств виртуализации в облаках уже пришло. По мере того, как все больше компаний выбирают облачные платформы для поддержки значительной части своей инфраструктуры (а количество сбоев из-за блокировок Telegram показало, что в России – это так), применение гипервизора на предоставленных сервисах IaaS становится оправданным с экономической точки зрения.

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

Архитектура использованного в Rebel решения универсальна и никак не привязана к EC2. Единственный плюс заключается в уже готовом механизме развертывания через AWS MarketPlace. То есть подобный подход может быть реализован в любом облаке, если вы понимаете, что арендуемые ресурсы распределяются не оптимально. В этом случае можно попробовать разделить их на базе бесплатного OpenVZ или коммерческого Virtuozzo в зависимости от целей и задач, которые решает хостинг.