По сравнению с запуском традиционных виртуальных машин Hyperlight позволяет добиться низких задержек и минимальных накладных расходов. В Hyperlight задержки при создании виртуальных машин составляют 1-2 миллисекунды, что позволяет применять изоляцию на уровне запуска функций. Для сравнения запуск обычной виртуальной машины осуществляется не менее чем за 120 миллисекунд, а запуск изолированного sandbox-окружения для выполнения WebAssembly-кода при помощи Wasmtime runtime занимает 0.03 миллисекунды.
Для изоляции на платформе Linux поддерживается использование гипервизоров KVM и mshv (Microsoft Hypervisor в Azure Linux), а на платформе Windows — WHP (Windows Hypervisor Platform) и WSL2 (Windows Subsystem for Linux 2) c KVM. Платформа macOS пока не поддерживается. Отдельное ядро и операционная система в виртуальной машине не используются. Начинка для виртуальной машины формируется в форме самодостаточной загружаемой программы, включающей код запускаемой функции в обвязке из runtime и специализированного минимального ядра. В виртуальной машине используется единый линейный фрагмент памяти и назначается виртуальный CPU, без маппинга устройств и без разделения на процессы.
Процесс разработки основан на связывании основного кода приложения с библиотекой Hyperlight Host, координирующей запуск виртуальных машин, а кода запускаемых изолированном режиме функций (гостевых функций) с библиотекой Hyperlight Guest, предоставляющей API для взаимодействия с внешней частью приложения и возможности для обособленного выполнения кода без окружения операционной системы.
Предоставляемая прослойка для взаимодействия между хост-приложением и изолированными функциями позволяет не только вызывать изолированные функции из хост-приложений, но и наоборот, обращаться к функциям хост-приложений из изолированных функций. Список внешних функций, допустимых для вызова из изолированных функций, жёстко регламентируется. По умолчанию доступ из изолированных функций ограничен минимальным API, позволяющим передавать сообщения хост-приложению.
В будущем Microsoft планирует передать проект некоммерческой организации Cloud Native Computing Foundation (CNCF) для совместного развития на нейтральной площадке, не зависящей от отдельных производителей. Организация CNCF работает под крылом Linux Foundation и курирует разработку таких проектов, как Kubernetes, etcd, Cilium, Containerd, cri-o, Flux, Helm, Istio и gRPC.
Источник: http://www.opennet.ru/opennews/art.shtml?num=62226