Загрузка предыдущей публикации...
Загрузка предыдущих новостей...
Облачные провайдеры ценят возможность запускать приложения в виртуальных машинах "в масштабе", хотя виртуальные машины "не отличаются быстрыми холодными стартами и небольшим размером", – отмечал блог Microsoft Open Source в ноябре прошлого года. Поэтому команда Azure Core Upstream разработала открытую библиотеку на языке Rust под названием Hyperlight, чтобы выполнять функции максимально быстро, изолируя их внутри виртуальной машины.
Но это было только начало…
Затем мы продемонстрировали, как действительно быстро запускать функции на Rust, а после этого – как безопасно запускать JavaScript с использованием языка C. В феврале 2025 года Cloud Native Computing Foundation (CNCF) проголосовала за включение Hyperlight в свою программу Sandbox для проектов на ранней стадии.
Сегодня мы объявляем о выпуске Hyperlight Wasm: виртуальной машины Hyperlight "micro-guest", которая может запускать рабочие нагрузки на основе компонентов WebAssembly, написанные на многих языках программирования.
Традиционные виртуальные машины выполняют большой объем работы, чтобы иметь возможность запускать программы. Им необходимо не только загрузить целую операционную систему, но и запустить виртуальные устройства, от которых зависит операционная система. Hyperlight работает быстро, потому что не выполняет эту работу; он предоставляет своим гостевым виртуальным машинам только линейный фрагмент памяти и процессор. Никаких виртуальных устройств. Никакой операционной системы. Но эта скорость достигается за счет снижения совместимости. Ввероятно, ваше текущее производственное приложение ожидает операционную систему Linux, работающую на аппаратной архитектуре x86-64, а не просто линейный фрагмент памяти.
Создание Hyperlight с использованием среды выполнения WebAssembly – wasmtime – позволяет любому языку программирования выполняться в защищенной микро-виртуальной машине Hyperlight, без каких-либо предварительных знаний о Hyperlight. Для авторов программ они просто компилируют для целевой платформы wasm32-wasip2. Запуск рабочих нагрузок в гостевой среде Hyperlight Wasm возможен не только для компилируемых языков, таких как C, Go и Rust, но и для интерпретируемых языков, таких как Python, JavaScript и C#. Здесь, как и в случае с контейнерами, трюк заключается в том, чтобы также включить среду выполнения языка в состав образа. Языки программирования, среды выполнения, платформы приложений и облачные провайдеры начинают предлагать широкие возможности для WebAssembly "из коробки". Если мы все сделаем правильно, вам не придется задумываться о том, работает ли ваше приложение внутри микро-виртуальной машины Hyperlight в Azure. Вы можете даже не знать, что ваша рабочая нагрузка выполняется в микро-виртуальной машине Hyperlight. И это хорошо.
В то время как традиционной виртуальной машине на основе виртуальных устройств требуется около 125 миллисекунд для загрузки, "Когда Hyperlight VMM создает новую виртуальную машину, ей нужно только создать новый фрагмент памяти и загрузить гостя виртуальной машины, который, в свою очередь, загружает рабочую нагрузку WebAssembly. Это занимает около 1-2 миллисекунд сегодня, и ведется работа над тем, чтобы сократить это число до менее чем 1 миллисекунды в будущем".
Кроме того, обеспечивается двойная безопасность благодаря программно-определяемой среде выполнения Wasmtime внутри более крупной виртуальной машины Hyperlight.
Загрузка предыдущей публикации...
Загрузка следующей публикации...
Загрузка предыдущих новостей...
Загрузка следующих новостей...