← Nazaj na začetno stran

Vaša storitev brez operacijskega sistema

Unikernel je en samostojen program, ki teče neposredno na virtualnem strežniku (KVM), brez Linuxa, lupine in procesov. Vašo storitev prilagodimo taki osnovi, vi pa jo zaženete z ene slike diska. Osnovo smo razvili sami in jo preizkusili na lastnem izdelku, MQTT brokerju urMQTT.

Prednosti

Majhna površina za napad

Ena statično povezana slika brez operacijskega sistema, lupine in uporabniških procesov; odpre se le tisto, kar storitev potrebuje. Komponente, ki jim ni mogoče povsem zaupati (npr. knjižnica v C), lahko tečejo izolirano, v ločenem naslovnem prostoru brez dostopa do jedra.

Manj vzdrževanja

Ni operacijskega sistema, ki bi ga bilo treba krpati in nadgrajevati: nova različica je nova slika. Slika je velika le nekaj megabajtov.

Manj delov, manj presenečenj

Obnašanje določa en program in njegova konfiguracija; ni storitev v ozadju, paketov ali stvari, ki se zaženejo same.

Konfiguracija je podatek

Nastavitve in certifikati se zapakirajo v preverjeno konfiguracijo, ki se preveri ob vsakem zagonu; slika izpiše prstni odtis svoje konfiguracije, tako da lahko preverite, da je tista, ki ste jo naročili.

Varnost je vgrajena v osnovo

TLS 1.3 z vzajemno overitvijo, zaščita pred preplavljanjem omrežja, omejitve virov in nadzorna ura preprečujejo, da bi en slab odjemalec ustavil druge; shramba je preizkušena z izpadom elektrike ob vsakem zapisu, po želji s šifriranjem diska.

Preverljivo in brez vezanosti

Ponovljive gradnje, podpisane izdaje, seznam programskih komponent (SBOM), osnova z odprto kodo in revizijski paket, ki navaja tudi znane slabosti.

Primerno za majhna in velika okolja

Ista koda teče na virtualnih strežnikih aarch64 in x86_64.

Kaj ponujamo

Cena za vse: na zahtevo

Ocena izvedljivosti

Pregledamo vašo storitev (jezik, odvisnosti, omrežne in diskovne potrebe) in povemo, kaj je mogoče, kaj je treba spremeniti in koliko dela je to, preden se zavežete h karkoli drugemu.

Prilagoditev storitve unikernelu

Storitev (najlažje v Rustu; knjižnice v C v izoliranem delavcu) prenesemo na našo osnovo: omrežje, TLS, shramba, konfiguracija in beleženje dogodkov.

Pilot na vašem strežniku

Storitev zaženemo na vaši infrastrukturi (KVM), jo preizkusimo z vašim prometom in predamo poročilo o zmogljivosti.

Podpora in vzdrževanje

Nadgradnje slike, obravnava prijavljenih ranljivosti in usposabljanje vaše ekipe.

urMQTT kot končni izdelek

Če potrebujete MQTT broker: konfigurirana, podpisana slika z vašimi certifikati.

Dober kandidat in slabši kandidat

Dober: storitev z enim namenom, ki sprejema omrežne povezave: protokolni strežnik, prehod (gateway), zbiralnik podatkov, končna točka TLS, robna naprava. Slabši: program, ki potrebuje ekosistem Linux, datotečni sistem, veliko procesov ali veliko odhodnih povezav. Današnja osnova sprejema povezave (strežnik TCP), ne odpira odhodnih povezav TCP in podpira samo IPv4; razširitve ocenimo po projektu.

Platforme in jeziki: kaj podpiramo danes

Platforme in jeziki: kaj podpiramo danes
PlatformaStanje
Virtualni strežniki KVM, aarch64Preverjeno (Apple HVF in TCG)
Virtualni strežniki KVM, x86_64 (UEFI in BIOS)Zagnano na pravem KVM VPS (AMD EPYC), poleg tega testi v emulatorju; na fizični strojni opremi ni bilo preizkušeno
Virtualne napravevirtio (omrežje, disk, SCSI, naključna števila)
OmrežjeIPv4; TCP kot strežnik (sprejema povezave, ne odpira odhodnih)
Fizični strežniki (bare metal), VMware, Hyper-V, XenNi podprto (še)
Jezik storitve
Jezik storitveStanje
RustNaravna izbira: vsa osnova je v Rustu
CSamo kot izoliran program z našo majhno plastjo libc (tako teče SQLite); ni POSIX
C++Mogoče kot C, ni dokazano; ocenimo po projektu
Go, Java, Python, Node.js, .NET, PHPNi podprto: potrebujejo operacijski sistem. Storitev se takrat prepiše v Rust ali ostane na Linuxu z unikernel prehodom na robu

Kaj je treba vedeti takoj

Osnova je v zgodnji fazi (različica pred 1.0). Cilja na virtualne strežnike KVM; x86_64 je tekel na pravem KVM VPS in v emulatorju, ne pa na fizični strojni opremi; varni zagon (Secure Boot) je delen, neodvisna varnostna revizija pa še ni bila opravljena. Zato ponujamo pilot s podporo, ne certificiranega izdelka.

Primer: urMQTT

MQTT broker na tej osnovi: TLS 1.3 z vzajemno overitvijo, preklic certifikatov brez nove slike, izolirana podatkovna baza SQLite, šifriranje diska po želji. Oglejte si izvorno kodo na GitHubu ali nas kontaktirajte.