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
| Plattform | Stand |
|---|---|
| Virtuelle KVM-Server, aarch64 | Geprü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äte | virtio (Netzwerk, Platte, SCSI, Zufallszahlen) |
| Netzwerk | IPv4; TCP als Server (nimmt Verbindungen an, öffnet keine ausgehenden) |
| Physische Server (bare metal), VMware, Hyper-V, Xen | Nicht unterstützt (noch nicht) |
| Sprache des Dienstes | Stand |
|---|---|
| Rust | Die natürliche Wahl: die ganze Grundlage ist in Rust |
| C | Nur 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, PHP | Nicht 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.