Проект Cloud Hypervisor обрел дом в Linux Foundation, принеся свой модульный подход к мониторингу виртуальных машин для облачных рабочих нагрузок в нейтральный к поставщикам фонд, сообщает портал The New Stack.

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

«На одной из конференций мы собрались вместе и сказали: „Смотрите, мы делаем каждый свое, в этом нет смысла“. Но сразу стало ясно, что не будет универсального решения — то, что работает для Lambda, не работает для контейнеров. Мы должны были понять, как разделить общий код, потому что вы не хотите изобретать колесо и в то же время хотите быть гибкими, чтобы иметь возможность выбрать именно то, что вам нужно для вашей проблемы, для вашего решения. Так мы и пришли к тому, что сейчас является Cloud Hypervisor», — рассказал он.

Унаследованность и модульность

Ключевым принципом Cloud Hypervisor является его модульность. Минимальный набор компонентов и предоставление пользователям возможности самим выбирать те, которые они будут включать, не только обеспечивают лучшую производительность, но и помогают в обеспечении безопасности. Устаревшие гипервизоры, не созданные специально для облачных вычислений, объясняет ван де Вен, могут эмулировать устаревшее оборудование — даже такие вещи, как флоппи-дисководы. А Cloud Hypervisor работает на основе предположения, что по умолчанию вам не нужно устаревшее оборудование, что, по его словам, значительно упрощает ситуацию.

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

Хотя модульность уменьшает поверхность атаки, она также означает, что Cloud Hypervisor работает быстро — благодаря способности загружаться в пользовательское пространство менее чем за 100 мс при прямой загрузке ядра, и он легкий с точки зрения памяти. Часть такой производительности также можно отнести на счет языка программирования, используемого для его создания — Rust.

Cloud Hypervisor основан на менеджере виртуальных машин Rust, или rust-vmm, который представляет собой набор компонентов гипервизора с открытым исходным кодом, на котором построена микровиртуальная машина Firecracker компании Amazon. Что касается выбора языка, то, по словам ван де Вена, здесь нет конкуренции.

Rustlang

«Если вы хотите обеспечить безопасность на этом уровне сегодня, то Rust — именно тот язык, который вам нужно использовать. Мы рассматривали Go, рассматривали Cи. Go оказался слишком высокоуровневым, потому что все его элементы сборки мусора не так привлекательны для этого уровня программного стека, — сказал ван де Вен. — На этом уровне вы хотите быть немного ближе к „железу“, а Rust обладает всеми свойствами безопасности. Если вы начинаете с чистого листа, что мы и сделали, вы начинаете с Rust».

По его словам, в дальнейшем основное внимание будет уделено подготовке Cloud Hypervisor к работе в производственных средах путем усиления и добавления расширений доверенного домена (trusted domain extensions, TDX). Кроме того, он ожидает естественного развития продукта по мере появления новых модулей, например, для ускорителей ИИ или баз данных.

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