Аренда VPS сервера: контейнеры и виртуализация

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

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

vps foreks 800x533 Аренда VPS сервера: контейнеры и виртуализация

Аренда VPS сервера: что нужно знать

Введение

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

В связи с этим, когда наша фирма лишь начинала работать над продуктом, который сегодня называется Virtuozzo, мы выбрали направление, которое сейчас называют «Контейнерами ОС» или «Легкими виртуальными машинами».

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

Речь, безусловно, шла не совсем об обычном дистрибутиве ОС Linux, а о специальной модифицированной версии, которая способна изолировать пользователей между собой, при этом предоставляя им доступ, допустим, лишь к отдельным частям дерева процессов или к отдельным сетевым адаптерам. Все это было невероятно востребовано, поскольку такая система работала значительно быстрее, нежели полная виртуализация.

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

Прогресс неизбежен

С тех давних пор, как Virtuozzo была представлена в 1999 году, прошло очень много времени, за которое все технологии виртуализации – как полной, так и контейнерной – претерпели огромные изменения, и наметились ключевые вектора поиска «Святого Грааля» — идеального по своим параметрам решения для сегодняшних cloud-native задач.

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

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

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

Зачем эмулировать очень простые инструкции? К примеру, арифметика, либо перемещение байтов могут выполняться непосредственно процессором. То же касается и функции ret (возврат результата выполнения определенной процедуры).

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

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

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

hosting 1 Аренда VPS сервера: контейнеры и виртуализация

Паравиртуализация

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

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

Проксирование

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

Первыми о таком решении заявили в фирме Apporeto. Разработчики предложили такую идею: они проанализировали БД уязвимостей и сделали вывод, что уязвимости в сетевом стеке и файловых системах находят всего один-два раза в год. Однако в интерфейсной части это происходит гораздо чаще.

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

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

hosting 2 800x533 Аренда VPS сервера: контейнеры и виртуализация

С прицелом на программы

Тем не менее, лидерство Docker определило еще один интересный тренд. Многие хотят запускать готовые микросервисы – отдельные программы. Затевать же для этого полноценную виртуальную машину не имеет никакого смысла.

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

В другом случае приходится чем-нибудь жертвовать, а это – совсем не интересно.

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

Они в себя включают модифицированные системные библиотеки, которые сразу знают, что функционируют в гипервизоре. Гостевая операционная система для гипервизора представляет собой один процесс. Так какая тогда разница? Почему не запустить в виде данного одного процесса нашу программу?

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

Перспективы

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

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

Таким образом, уже вскоре полноценная виртуальная экосистема должна поддерживать будет и «легкие виртуальные машины», и готовые гостевые виртуальные машины, и готовые программы в виде Docker или Unikernel-контейнеров.


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



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