← Volver al inicio

Su servicio sin sistema operativo

Un unikernel es un único programa autónomo que se ejecuta directamente en un servidor virtual (KVM), sin Linux, sin shell y sin procesos. Adaptamos su servicio a una base así y usted lo arranca desde una sola imagen de disco. La base la desarrollamos nosotros y la probamos en nuestro propio producto, el broker MQTT urMQTT.

Ventajas

Superficie de ataque reducida

Una sola imagen enlazada estáticamente, sin sistema operativo, shell ni procesos de usuario; solo se abre lo que el servicio necesita. Los componentes en los que no se puede confiar del todo (por ejemplo una biblioteca en C) pueden ejecutarse aislados, en un espacio de direcciones propio y sin acceso al kernel.

Menos mantenimiento

No hay sistema operativo que parchear ni actualizar: una versión nueva es una imagen nueva. La imagen ocupa solo unos pocos megabytes.

Menos piezas, menos sorpresas

El comportamiento lo fija un solo programa y su configuración; no hay servicios en segundo plano, paquetes ni cosas que arranquen solas.

La configuración son datos

Los ajustes y certificados se empaquetan en una configuración validada que se comprueba en cada arranque; la imagen imprime la huella de su configuración, de modo que puede comprobar que es la que encargó.

La seguridad está integrada en la base

TLS 1.3 con autenticación mutua, protección frente a inundaciones de red, límites de recursos y un watchdog evitan que un cliente defectuoso detenga a los demás; el almacenamiento se prueba con un corte de corriente en cada escritura, con cifrado de disco opcional.

Verificable y sin dependencia

Compilaciones reproducibles, versiones firmadas, lista de componentes de software (SBOM), base de código abierto y un paquete de auditoría que también enumera las debilidades conocidas.

Apto para entornos pequeños y grandes

El mismo código funciona en servidores virtuales aarch64 y x86_64.

Qué ofrecemos

Precio de todo: bajo consulta

Evaluación de viabilidad

Revisamos su servicio (lenguaje, dependencias, necesidades de red y de disco) y le decimos qué es posible, qué hay que cambiar y cuánto trabajo supone, antes de que se comprometa con nada más.

Adaptación de su servicio al unikernel

Portamos el servicio (más fácil en Rust; bibliotecas C en un worker aislado) a nuestra base: red, TLS, almacenamiento, configuración y registro de eventos.

Un piloto en su servidor

Ponemos en marcha el servicio en su infraestructura (KVM), lo probamos con su tráfico y entregamos un informe de rendimiento.

Soporte y mantenimiento

Actualizaciones de la imagen, gestión de las vulnerabilidades notificadas y formación de su equipo.

urMQTT como producto listo

Si necesita un broker MQTT: una imagen configurada y firmada con sus certificados.

Un buen candidato y uno peor

Bueno: un servicio de un solo propósito que acepta conexiones de red: un servidor de protocolo, una pasarela (gateway), un recolector de datos, un punto final TLS, un dispositivo de borde. Peor: un programa que necesita el ecosistema Linux, un sistema de archivos, muchos procesos o un gran número de conexiones salientes. La base actual acepta conexiones (servidor TCP), no abre conexiones TCP salientes y solo admite IPv4; las ampliaciones se evalúan por proyecto.

Plataformas y lenguajes: qué admitimos hoy

Plataformas y lenguajes: qué admitimos hoy
PlataformaEstado
Servidores virtuales KVM, aarch64Verificado (Apple HVF y TCG)
Servidores virtuales KVM, x86_64 (UEFI y BIOS)Ejecutado en un VPS KVM real (AMD EPYC), además de pruebas en emulador; no probado en hardware físico
Dispositivos virtualesvirtio (red, disco, SCSI, números aleatorios)
RedIPv4; TCP como servidor (acepta conexiones, no abre conexiones salientes)
Servidores físicos (bare metal), VMware, Hyper-V, XenNo admitidos (todavía)
Lenguaje del servicio
Lenguaje del servicioEstado
RustLa opción natural: toda la base está en Rust
CSolo como programa aislado con nuestra pequeña capa libc (así funciona SQLite); no es POSIX
C++Posible como C, sin demostrar; se evalúa por proyecto
Go, Java, Python, Node.js, .NET, PHPNo admitidos: necesitan un sistema operativo. En ese caso el servicio se reescribe en Rust, o se queda en Linux con una pasarela unikernel en el borde

Lo que conviene saber de entrada

La base está en una fase temprana (anterior a la versión 1.0). Se dirige a servidores virtuales KVM; x86_64 se ha ejecutado en un VPS KVM real y en un emulador, pero no en hardware físico; el Secure Boot es parcial y todavía no se ha hecho una auditoría de seguridad independiente. Por eso ofrecemos un piloto con soporte, no un producto certificado.

Ejemplo: urMQTT

Un broker MQTT sobre esa base: TLS 1.3 con autenticación mutua, revocación de certificados sin una imagen nueva, una base de datos SQLite aislada, cifrado de disco opcional. Consulte el código fuente en GitHub o póngase en contacto con nosotros.