← Torna alla home

Il tuo servizio senza sistema operativo

Un unikernel è un unico programma autonomo che gira direttamente su un server virtuale (KVM), senza Linux, shell e processi. Adattiamo il tuo servizio a una base di questo tipo e tu lo avvii da una sola immagine disco. La base l'abbiamo sviluppata noi e provata sul nostro prodotto, il broker MQTT urMQTT.

Vantaggi

Superficie d'attacco ridotta

Un'unica immagine collegata staticamente, senza sistema operativo, shell né processi utente; si apre solo ciò di cui il servizio ha bisogno. I componenti di cui non ci si può fidare del tutto (ad esempio una libreria C) possono girare isolati, in uno spazio di indirizzi separato e senza accesso al kernel.

Meno manutenzione

Nessun sistema operativo da aggiornare: una nuova versione è una nuova immagine. L'immagine pesa solo pochi megabyte.

Meno parti, meno sorprese

Il comportamento è definito da un solo programma e dalla sua configurazione; non ci sono servizi in background, pacchetti o cose che partono da sole.

La configurazione è un dato

Impostazioni e certificati sono impacchettati in una configurazione validata, controllata a ogni avvio; l'immagine stampa l'impronta della propria configurazione, così puoi verificare che sia quella che hai ordinato.

La sicurezza è parte della base

TLS 1.3 con autenticazione reciproca, protezione dai flood di rete, limiti di risorse e un watchdog impediscono che un client difettoso blocchi gli altri; l'archiviazione è provata con un'interruzione di corrente a ogni scrittura, con cifratura del disco facoltativa.

Verificabile e senza vincoli

Build riproducibili, release firmate, distinta dei componenti software (SBOM), base a codice aperto e un pacchetto di audit che elenca anche le debolezze note.

Adatto a installazioni piccole e grandi

Lo stesso codice gira su server virtuali aarch64 e x86_64.

Cosa offriamo

Prezzo per tutto: su richiesta

Valutazione di fattibilità

Esaminiamo il tuo servizio (linguaggio, dipendenze, esigenze di rete e di disco) e ti diciamo cosa è possibile, cosa va modificato e quanto lavoro richiede, prima che tu ti impegni su qualsiasi altra cosa.

Adattamento del tuo servizio all'unikernel

Portiamo il servizio (più semplice in Rust; librerie C in un worker isolato) sulla nostra base: rete, TLS, archiviazione, configurazione e registrazione degli eventi.

Un progetto pilota sul tuo server

Avviamo il servizio sulla tua infrastruttura (KVM), lo proviamo con il tuo traffico e consegniamo un rapporto sulle prestazioni.

Supporto e manutenzione

Aggiornamenti dell'immagine, gestione delle vulnerabilità segnalate e formazione del tuo team.

urMQTT come prodotto pronto

Se ti serve un broker MQTT: un'immagine configurata e firmata con i tuoi certificati.

Un buon candidato e uno meno adatto

Buono: un servizio con un solo scopo che accetta connessioni di rete: un server di protocollo, un gateway, un raccoglitore di dati, un endpoint TLS, un dispositivo edge. Meno adatto: un programma che richiede l'ecosistema Linux, un filesystem, molti processi o un gran numero di connessioni in uscita. La base attuale accetta connessioni (server TCP), non apre connessioni TCP in uscita e supporta solo IPv4; le estensioni si valutano progetto per progetto.

Piattaforme e linguaggi: cosa supportiamo oggi

Piattaforme e linguaggi: cosa supportiamo oggi
PiattaformaStato
Server virtuali KVM, aarch64Verificato (Apple HVF e TCG)
Server virtuali KVM, x86_64 (UEFI e BIOS)Eseguito su un vero VPS KVM (AMD EPYC), più test in emulatore; non provato su hardware fisico
Dispositivi virtualivirtio (rete, disco, SCSI, numeri casuali)
ReteIPv4; TCP come server (accetta connessioni, non ne apre in uscita)
Server fisici (bare metal), VMware, Hyper-V, XenNon supportati (per ora)
Linguaggio del servizio
Linguaggio del servizioStato
RustLa scelta naturale: tutta la base è in Rust
CSolo come programma isolato con il nostro piccolo strato libc (così gira SQLite); non è POSIX
C++Possibile come C, non dimostrato; valutato progetto per progetto
Go, Java, Python, Node.js, .NET, PHPNon supportati: richiedono un sistema operativo. In tal caso il servizio viene riscritto in Rust, oppure resta su Linux con un gateway unikernel al margine

Cosa devi sapere subito

La base è in una fase iniziale (prima della versione 1.0). Punta ai server virtuali KVM; x86_64 è stato eseguito su un vero VPS KVM e in un emulatore, ma non su hardware fisico; il Secure Boot è parziale e non è ancora stato fatto un audit di sicurezza indipendente. Per questo offriamo un progetto pilota con supporto, non un prodotto certificato.

Esempio: urMQTT

Un broker MQTT su questa base: TLS 1.3 con autenticazione reciproca, revoca dei certificati senza una nuova immagine, un database SQLite isolato, cifratura del disco facoltativa. Guarda il codice sorgente su GitHub o contattaci.