Hyperlight, un proyecto open source de Microsoft que se integra en apps que ejecutan código aislado o no confiable
Microsoft dio a conocer hace poco el lanzamiento de un nuevo proyecto de código abierto, el cual tiene como nombre «Hyperlight«. Este es un hipervisor diseñado específicamente para integrarse en aplicaciones que requieren la ejecución de código aislado, ya sea por motivos de seguridad o para manejar fragmentos no confiables.
Hyperlight se posiciona como una biblioteca compartida, que permite ejecutar funciones dentro de micro-VMs, minimizando la latencia y facilitando la comunicación eficiente con las funciones alojadas.
Sobre Hyperlight
En comparación con las máquinas virtuales tradicionales, Hyperlight se destaca por su bajo impacto en rendimiento, ya que en comparación con el arranque de una máquina virtual estándar que requiere al menos 120 milisegundos, Hyperlight permite crear micro-VMs en apenas 1 a 2 milisegundos, posibilitando el aislamiento a nivel funcional.
Además, se menciona que aunque los entornos como Wasmtime para WebAssembly ofrecen tiempos aún más bajos, de 0,03 milisegundos, Hyperlight busca ofrecer un equilibrio ideal entre aislamiento y funcionalidad para aplicaciones complejas.
A diferencia de las configuraciones tradicionales, las micro-VMs en Hyperlight no utilizan un kernel ni un sistema operativo completo. En su lugar, la máquina virtual se reduce a un programa autónomo que incluye el código de la función, un núcleo mínimo especializado y el tiempo de ejecución necesario, ejecutándose en una región de memoria única con una CPU virtual asignada, sin particionar procesos ni mapear dispositivos.
Hyperlight permite estas personalizaciones en una amplia gama de escenarios: para la integración de funciones de puerta de enlace de Internet de las cosas (IoT), el uso en automatización industrial, servicios en la nube de alto rendimiento, etc.
El flujo de desarrollo con Hyperlight implica vincular el código de la aplicación principal con la biblioteca Hyperlight Host, responsable de gestionar las micro-VMs. Por su parte, el código aislado que se ejecuta dentro de estas micro-VMs utiliza la biblioteca Hyperlight Guest, que ofrece las APIs necesarias para interactuar con el exterior y permite ejecutar el código de forma completamente independiente del sistema operativo anfitrión. Con esta arquitectura, Hyperlight busca redefinir la ejecución aislada de funciones, ofreciendo un enfoque eficiente y seguro para aplicaciones modernas.
Una característica destacada de Hyperlight es su capacidad de establecer una interacción bidireccional entre la aplicación anfitriona y las funciones aisladas, ya que no solo permite que las aplicaciones llamen a funciones alojadas en entornos aislados, sino que también posibilita que estas funciones accedan a ciertos elementos del host. Sin embargo, este acceso está estrictamente controlado para garantizar la seguridad ya que por defecto, las funciones aisladas solo pueden comunicarse con el anfitrión mediante una API mínima que facilita el intercambio de mensajes. Esta limitación asegura un entorno controlado y reduce los riesgos de seguridad asociados con el aislamiento funcional.
Por la parte de sus planes a largo plazo, Microsoft menciona que busca convertir Hyperlight en un proyecto colaborativo más amplio bajo la gestión de la Cloud Native Computing Foundation (CNCF). Este movimiento tiene como objetivo promover un desarrollo neutral y abierto, desligado de la influencia exclusiva de fabricantes específicos. La CNCF, que opera bajo la Fundación Linux, ya es responsable de proyectos influyentes como Kubernetes, Containerd, Istio y gRPC, lo que nos da una idea de la gran capacidad con la que cuenta para gestionar iniciativas tecnológicas clave en el ecosistema de la computación en la nube. Este paso promete ampliar el alcance de Hyperlight y consolidarlo como una herramienta esencial en el ámbito de las aplicaciones nativas de la nube.
En cuanto al soporte actual de plataforma, es importante mencionar que soporta múltiples entornos para garantizar su versatilidad. En Linux, es compatible con los hipervisores KVM y mshv (Microsoft Hypervisor en Azure Linux), mientras que en Windows utiliza WHP (Windows Hypervisor Platform) y WSL2 con KVM (por ahora, macOS queda fuera).
Finalmente, si estás interesado en conocer más al respecto, debes saber que el proyecto está desarrollado en Rust, y está disponible bajo la licencia Apache 2.0. Puedes consultar los detalles en el siguiente enlace.