Az Ön szolgáltatása operációs rendszer nélkül
Az unikernel egyetlen önálló program, amely közvetlenül egy virtuális szerveren (KVM) fut, Linux, shell és folyamatok nélkül. Szolgáltatását ilyen alapra igazítjuk, Ön pedig egyetlen lemezképről indítja. Az alapot mi fejlesztettük, és saját termékünkön, az urMQTT MQTT-brókeren próbáltuk ki.
Előnyök
Kis támadási felület
Egyetlen statikusan szerkesztett lemezkép operációs rendszer, shell és felhasználói folyamatok nélkül; csak az nyílik meg, amire a szolgáltatásnak szüksége van. Az olyan összetevők, amelyekben nem lehet teljesen megbízni (például egy C-könyvtár), elszigetelten, külön címtérben futhatnak, a kernelhez való hozzáférés nélkül.
Kevesebb karbantartás
Nincs javítandó és frissítendő operációs rendszer: az új verzió új lemezkép. A lemezkép mindössze néhány megabájt.
Kevesebb alkatrész, kevesebb meglepetés
A működést egyetlen program és annak konfigurációja határozza meg; nincsenek háttérszolgáltatások, csomagok, sem magától induló dolgok.
A konfiguráció adat
A beállítások és a tanúsítványok ellenőrzött konfigurációba csomagolódnak, amelyet minden indításkor ellenőriz a rendszer; a lemezkép kiírja a konfigurációja ujjlenyomatát, így ellenőrizhető, hogy az-e, amelyiket megrendelte.
A biztonság az alap része
A TLS 1.3 kölcsönös hitelesítéssel, a hálózati elárasztás elleni védelem, az erőforrás-korlátok és egy watchdog megakadályozza, hogy egy hibás kliens megállítsa a többit; a tárolást minden írásnál áramkimaradással tesztelik, opcionális lemeztitkosítással.
Ellenőrizhető és kötöttségek nélküli
Reprodukálható buildek, aláírt kiadások, szoftver-alkatrészjegyzék (SBOM), nyílt forráskódú alap és egy auditcsomag, amely az ismert gyengeségeket is felsorolja.
Kis és nagy környezetekhez is
Ugyanaz a kód fut aarch64 és x86_64 virtuális szervereken.
Amit kínálunk
Az ár mindenre: kérésre
Megvalósíthatósági felmérés
Átnézzük a szolgáltatását (nyelv, függőségek, hálózati és lemezigények), és megmondjuk, mi lehetséges, mit kell átalakítani és mekkora munka ez, mielőtt bármi másra elköteleződne.
Szolgáltatásának igazítása az unikernelhez
Átültetjük a szolgáltatást (Rustban a legegyszerűbb; a C-könyvtárak elszigetelt workerben) az alapunkra: hálózat, TLS, tárolás, konfiguráció és naplózás.
Pilot az Ön szerverén
Elindítjuk a szolgáltatást az Ön infrastruktúráján (KVM), kipróbáljuk az Ön forgalmával, és átadunk egy teljesítményjelentést.
Támogatás és karbantartás
A lemezkép frissítései, a bejelentett sebezhetőségek kezelése és a csapata képzése.
Az urMQTT kész termékként
Ha MQTT-brókerre van szüksége: konfigurált, aláírt lemezkép az Ön tanúsítványaival.
Jó jelölt és kevésbé jó jelölt
Jó: egycélú szolgáltatás, amely hálózati kapcsolatokat fogad: protokollszerver, átjáró (gateway), adatgyűjtő, TLS-végpont, peremeszköz. Kevésbé jó: olyan program, amelynek Linux-ökoszisztéma, fájlrendszer, sok folyamat vagy nagyszámú kimenő kapcsolat kell. A mai alap fogad kapcsolatokat (TCP-szerver), nem nyit kimenő TCP-kapcsolatot, és csak IPv4-et támogat; a bővítéseket projektenként értékeljük.
Platformok és nyelvek: amit ma támogatunk
| Platform | Állapot |
|---|---|
| KVM virtuális szerverek, aarch64 | Ellenőrizve (Apple HVF és TCG) |
| KVM virtuális szerverek, x86_64 (UEFI és BIOS) | Futott valódi KVM VPS-en (AMD EPYC), emellett emulátoros tesztek; fizikai hardveren nem próbálták |
| Virtuális eszközök | virtio (hálózat, lemez, SCSI, véletlenszámok) |
| Hálózat | IPv4; TCP szerverként (fogad kapcsolatokat, kimenőt nem nyit) |
| Fizikai szerverek (bare metal), VMware, Hyper-V, Xen | Nem támogatott (még) |
| A szolgáltatás nyelve | Állapot |
|---|---|
| Rust | A természetes választás: az egész alap Rustban készült |
| C | Csak elszigetelt programként, a mi kis libc-rétegünkkel (így fut az SQLite); nem POSIX |
| C++ | Lehetséges, mint a C, nem bizonyított; projektenként értékeljük |
| Go, Java, Python, Node.js, .NET, PHP | Nem támogatott: operációs rendszert igényelnek. Ilyenkor a szolgáltatást Rustban újraírják, vagy Linuxon marad, a peremén unikernel-átjáróval |
Amit érdemes előre tudni
Az alap korai fázisban van (az 1.0 előtti verzió). A KVM virtuális szervereket célozza; az x86_64 futott valódi KVM VPS-en és emulátorban, de fizikai hardveren nem; a Secure Boot részleges, független biztonsági auditot pedig még nem végeztek. Ezért pilotot kínálunk támogatással, nem tanúsított terméket.
Példa: urMQTT
Egy MQTT-bróker erre az alapra építve: TLS 1.3 kölcsönös hitelesítéssel, tanúsítvány-visszavonás új lemezkép nélkül, elszigetelt SQLite adatbázis, opcionális lemeztitkosítás. Nézze meg a forráskódot a GitHubon, vagy keressen minket.