← Zurück zur Startseite

Ihr Dienst ohne Betriebssystem

Ein Unikernel ist ein einziges eigenständiges Programm, das direkt auf einem virtuellen Server (KVM) läuft, ohne Linux, Shell und Prozesse. Wir passen Ihren Dienst an eine solche Grundlage an, und Sie starten ihn von einem einzigen Disk-Image. Die Grundlage haben wir selbst entwickelt und an unserem eigenen Produkt erprobt, dem MQTT-Broker urMQTT.

Vorteile

Kleine Angriffsfläche

Ein statisch gelinktes Image ohne Betriebssystem, Shell und Benutzerprozesse; geöffnet wird nur, was der Dienst braucht. Komponenten, denen Sie nicht voll vertrauen können (z. B. eine C-Bibliothek), können isoliert laufen, in einem eigenen Adressraum ohne Zugriff auf den Kernel.

Weniger Wartung

Kein Betriebssystem, das gepatcht und aktualisiert werden muss: Eine neue Version ist ein neues Image. Das Image ist nur wenige Megabyte groß.

Weniger Teile, weniger Überraschungen

Das Verhalten wird von einem Programm und seiner Konfiguration bestimmt; es gibt keine Hintergrunddienste, Pakete oder Dinge, die von selbst starten.

Konfiguration ist Daten

Einstellungen und Zertifikate werden zu einer geprüften Konfiguration gepackt, die bei jedem Start kontrolliert wird; das Image gibt einen Fingerabdruck seiner Konfiguration aus, sodass Sie prüfen können, ob es das bestellte ist.

Sicherheit ist Teil der Grundlage

TLS 1.3 mit gegenseitiger Authentifizierung, Schutz vor Netzwerkfluten, Ressourcenlimits und ein Watchdog verhindern, dass ein fehlerhafter Client die übrigen lahmlegt; der Speicher wird bei jedem Schreibvorgang mit einem Stromausfall getestet, optional mit Plattenverschlüsselung.

Überprüfbar und ohne Bindung

Reproduzierbare Builds, signierte Releases, eine Software-Stückliste (SBOM), eine quelloffene Grundlage und ein Audit-Paket, das auch die bekannten Schwächen nennt.

Für kleine und große Umgebungen

Derselbe Code läuft auf virtuellen aarch64- und x86_64-Servern.

Was wir anbieten

Preis für alles: auf Anfrage

Machbarkeitsprüfung

Wir prüfen Ihren Dienst (Sprache, Abhängigkeiten, Netzwerk- und Plattenbedarf) und sagen Ihnen, was möglich ist, was geändert werden muss und wie aufwendig das ist, bevor Sie sich auf irgendetwas anderes festlegen.

Anpassung Ihres Dienstes an den Unikernel

Wir portieren den Dienst (am einfachsten in Rust; C-Bibliotheken in einem isolierten Worker) auf unsere Grundlage: Netzwerk, TLS, Speicher, Konfiguration und Protokollierung.

Pilot auf Ihrem Server

Wir betreiben den Dienst auf Ihrer Infrastruktur (KVM), testen ihn mit Ihrem Datenverkehr und übergeben einen Leistungsbericht.

Support und Wartung

Image-Upgrades, Bearbeitung gemeldeter Schwachstellen und Schulung Ihres Teams.

urMQTT als fertiges Produkt

Wenn Sie einen MQTT-Broker brauchen: ein konfiguriertes, signiertes Image mit Ihren Zertifikaten.

Ein guter Kandidat und ein schwacher

Gut: ein Dienst mit einem einzigen Zweck, der Netzwerkverbindungen annimmt: ein Protokollserver, ein Gateway, ein Datensammler, ein TLS-Endpunkt, ein Edge-Gerät. Schwächer: ein Programm, das das Linux-Ökosystem, ein Dateisystem, viele Prozesse oder sehr viele ausgehende Verbindungen braucht. Die heutige Grundlage nimmt Verbindungen an (TCP-Server), öffnet keine ausgehenden TCP-Verbindungen und unterstützt nur IPv4; Erweiterungen bewerten wir pro Projekt.

Plattformen und Sprachen: was wir heute unterstützen

Plattformen und Sprachen: was wir heute unterstützen
PlattformStand
Virtuelle KVM-Server, aarch64Geprüft (Apple HVF und TCG)
Virtuelle KVM-Server, x86_64 (UEFI und BIOS)Auf einem echten KVM-VPS (AMD EPYC) gelaufen, dazu Tests im Emulator; auf physischer Hardware nicht erprobt
Virtuelle Gerätevirtio (Netzwerk, Platte, SCSI, Zufallszahlen)
NetzwerkIPv4; TCP als Server (nimmt Verbindungen an, öffnet keine ausgehenden)
Physische Server (bare metal), VMware, Hyper-V, XenNicht unterstützt (noch nicht)
Sprache des Dienstes
Sprache des DienstesStand
RustDie natürliche Wahl: die ganze Grundlage ist in Rust
CNur als isoliertes Programm mit unserer kleinen libc-Schicht (so läuft SQLite); nicht POSIX
C++Möglich wie C, unbewiesen; wird pro Projekt bewertet
Go, Java, Python, Node.js, .NET, PHPNicht unterstützt: Sie brauchen ein Betriebssystem. Dann wird der Dienst in Rust neu geschrieben oder bleibt auf Linux, mit einem Unikernel-Gateway am Rand

Was Sie vorab wissen sollten

Die Grundlage befindet sich in einer frühen Phase (vor Version 1.0). Sie zielt auf virtuelle KVM-Server; x86_64 ist auf einem echten KVM-VPS und in einem Emulator gelaufen, nicht aber auf physischer Hardware; Secure Boot ist nur teilweise umgesetzt, und eine unabhängige Sicherheitsprüfung wurde noch nicht durchgeführt. Deshalb bieten wir einen Pilot mit Support an, kein zertifiziertes Produkt.

Beispiel: urMQTT

Ein MQTT-Broker auf dieser Grundlage: TLS 1.3 mit gegenseitiger Authentifizierung, Zertifikatssperrung ohne neues Image, eine isolierte SQLite-Datenbank, optionale Plattenverschlüsselung. Sehen Sie sich den Quellcode auf GitHub an oder melden Sie sich bei uns.