Команда Microsoft Azure Core Upstream каже, що її Hyperlight забезпечує більш ніж на 100% меншу затримку холодного запуску для безсерверних додатків, водночас користуючись перевагами безпеки ізольованого програмного середовища WebAssembly (Wasm). Проект Hyperlight тепер має відкритий код і планує передати проект CNCF. Він спирається на невеликі вбудовані функції з використанням захисту на основі гіпервізора для кожного виклику функції в масштабі. Кожен функціональний запит також має власний гіпервізор для захисту.
Ріта Чжан, головний інженер Microsoft Azure, сказала під час основної доповіді на KubeCon+CloudNativeCon у листопаді: «Віртуальні машини вже давно є наріжним каменем рідної хмарної інфраструктури, яким довіряють надійно розділяти хостове та гостьове середовища». «Однак для сценаріїв, керованих подіями, таких як безсерверні обчислення, традиційні віртуальні машини просто надто повільні, щоб розвиватися», — сказав Чжан. «Отже, як ми можемо зменшити цю затримку, водночас безпечно запускаючи наші програми?»
Що таке Hyperlight?
Hyperlight — це бібліотека Rust, створена для того, щоб дозволити розробникам використовувати віртуальні машини на основі ядра або Hyper-V — рідний гіпервізор Microsoft — для запуску ненадійного коду в microVM без завантаження повної операційної системи. Ці microVM можна створити за мікросекунди, сказав Чжан.
Під час демонстрації Чжан показав, як програма здійснює послідовні виклики з віртуальної машини на хост, а потім повертає значення з хоста назад на гостьову систему. Hyperlight створює нову microVM для кожного виклику, у середньому лише 900 мікросекунд на запит, показав Чжан. «Це мікросекунди — менше однієї мілісекунди», — сказав Чжан.
Великі ідеї
Ідея існує вже деякий час: використання модулів Wasm, які слугуватимуть полегшеною безпекою в ізольованому програмному середовищі. Мікро-Віртуальні машини, що називаються різними речами залежно від постачальника хмари, дозволять локальним або хмарним джерелам розподіляти через хмару величезні обсяги трафіку даних, що надходить із локальних систем. Google Cloud має запропонувати подібні пропозиції, оскільки стандарт буде розроблений у 2025 році.
«Тепер ми можемо обробляти мережевий трафік, який надходить у систему, використовуючи ці полегшені пісочниці», — сказав Марк Руссінович, технічний директор і технічний співробітник Microsoft Azure, виступаючи на конференції користувачів Microsoft Ignite. «Це відкриває неймовірні можливості для ефективної мережевої обробки в реальному часі».
Adobe і Google є одними з технологічних лідерів, які розробляють стандарт WebAssembly. Крім того, компанії, які використовують його для потокового відео, включають Netflix, Amazon Prime, Disney та інші.
Корпорація Майкрософт, як правило, не дуже багатослівно розповідає про більшу частину своєї попередньої роботи над WebAssembly (Microsoft не змогла прокоментувати попередню статтю на запит), але було підтверджено, що компанія вже почала використовувати WebAssembly переважно для підтримки своїх операцій, продовжуючи активно сприяти розвитку Wasm для спільноти. У випадку Microsoft, її робота з WebAssembly сягає років тому. Microsoft Flight Simulator уже кілька років використовує WebAssembly для захисту модів, наприклад, коли було показано, що він покращує безпеку та портативність для доповнень, що розповсюджуються як модулі WebAssembly. Excel Online використовує WebAssembly для обчислення лямбда-функцій.
Зараз більша частина роботи Microsoft полягає в інвестиціях у майбутню модель компонентів і WASI. Наприклад, Microsoft розширює попередній перегляд Azure Kubernetes Service WASI NodePool і надає своїм службам додатковий захист гіпервізора для кожного запиту поверх пісочниці Wasm за допомогою проекту Hyperlight. Окрім периферійних браузерів, Microsoft інвестує головним чином у серверний Wasm та екосистему компонентів Wasm, що оточує Bytecode Alliance, а також в інфраструктуру та мовні інструменти для забезпечення продуктивного використання та WASI, звичайно. Microsoft також розробляє проект Containerd Runwasi, який є частиною проекту SpinKube.
«Hyperlight був тією частиною, якої нам не вистачало, щоб по-справжньому виокремити дрібнозернисті, легкі фрагменти коду. Ви можете подумати: «Чи не для цього потрібні контейнери?» Але насправді контейнери займають значну площу», — написали в блозі Йош Вуйтс із Microsoft, старший захисник розробників, і Ральф Сквілейс, головний менеджер із продуктів Microsoft Azure Core Upstream. «Для таких сценаріїв, як визначені користувачем функції в службі зберігання або обробка мережевого трафіку на межі, коли він надходить у вашу систему, вам потрібно щось набагато легше. Він також має бути ворожим і безпечним для багатьох користувачів, тобто клієнти можуть розміщуватися пліч-о-пліч у цих середовищах без шкоди для безпеки. Це спонукало нас створити те, що ми називаємо мікропісочницями або мікровіртуальними машинами».
«Ага» момент настав, коли колега з Azure «одного разу підійшов до мене і сказав: «Привіт, я можу використати API Hyper-V, щоб створити віртуальну машину без коду, за винятком крихітної частини, яку я в неї завантажую. Він може запускатися за мікросекунди і так само швидко вимикатися», – написав Сквілейс. «Так само у нас був Hyperlight, ізольована від гіпервізора мікро віртуальна машина».
Microsoft представила безпеку на основі віртуальної машини Hyperlight і, як згадувалося вище, має відкритий код. Тепер він працює не лише з Hyper-V, а й з KVM. Крім того, Microsoft робить внесок у Hyperlight для CNCF, «прагнучи підняти всі човни та надати технологію мікровіртуальних машин для всіх», — написали Вайтс і Сквілейс. «Hyperlight — це наш спосіб забезпечити цю можливість через безпечну пісочницю».
YOUTUBE.COM/THENEWSTACK
Технологія розвивається швидко, не пропустіть жодної серії. Підпишіться на наш канал YouTube, щоб транслювати всі наші подкасти, інтерв’ю, демонстрації тощо.
ПІДПИСАТИСЯ