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
| Plataforma | Estado |
|---|---|
| Servidores virtuales KVM, aarch64 | Verificado (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 virtuales | virtio (red, disco, SCSI, números aleatorios) |
| Red | IPv4; TCP como servidor (acepta conexiones, no abre conexiones salientes) |
| Servidores físicos (bare metal), VMware, Hyper-V, Xen | No admitidos (todavía) |
| Lenguaje del servicio | Estado |
|---|---|
| Rust | La opción natural: toda la base está en Rust |
| C | Solo 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, PHP | No 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.