← Natrag na početnu

Vaš servis bez operacijskog sustava

Unikernel je jedan samostalan program koji se pokreće izravno na virtualnom poslužitelju (KVM), bez Linuxa, ljuske i procesa. Prilagodimo vaš servis tako da radi na takvoj osnovi, a vi ga pokrećete s jednom slikom diska. Osnovu smo sami razvili i provjerili na vlastitom proizvodu, MQTT brokeru urMQTT.

Prednosti

Mala površina napada

Jedna statički povezana slika bez operacijskog sustava, ljuske i korisničkih procesa; otvara se samo ono što servis treba. Komponente koje nisu pouzdane (npr. biblioteka u C-u) mogu raditi izolirano, u zasebnom adresnom prostoru bez pristupa jezgri.

Manje održavanja

Nema operacijskog sustava koji treba krpati i nadograđivati: nova verzija je nova slika. Slika je velika samo nekoliko megabajta.

Manje komponenti, manje iznenađenja

Ponašanje je određeno jednim programom i njegovom konfiguracijom; nema pozadinskih servisa, paketa ni usluga koje se pokreću same.

Konfiguracija je podatak

Postavke i certifikati pakiraju se u provjerenu konfiguraciju koja se provjerava pri svakom pokretanju; slika ispisuje otisak konfiguracije, pa se može provjeriti da je to ona koju ste naručili.

Sigurnost je ugrađena u osnovu

TLS 1.3 s uzajamnom autentikacijom, zaštita od preplavljivanja mreže, ograničenja resursa i čuvar vremena sprječavaju da jedan loš klijent zaustavi ostale; pohrana je provjerena prekidom napajanja na svakom zapisu, s mogućnošću šifriranja diska.

Provjerljivo i bez vezanosti

Ponovljive gradnje, potpisana izdanja, popis sastavnica (SBOM), otvoreni izvorni kod osnove i revizijski paket koji navodi i poznate nedostatke.

Pogodno za mala i velika okruženja

Isti kod radi na aarch64 i x86_64 virtualnim poslužiteljima.

Što nudimo

Cijena za sve: na upit

Procjena izvedivosti

Pregledamo vaš servis (jezik, ovisnosti, mrežne i diskovne potrebe) i kažemo što je moguće, što treba prepraviti i koliko je to posla, prije nego što ugovorite bilo što drugo.

Prilagodba servisa unikernelu

Servis (najlakše u Rustu; C biblioteke u izoliranom radniku) prilagodimo našoj osnovi: mreža, TLS, pohrana, konfiguracija i evidencija događaja.

Pilot na vašem poslužitelju

Pokrenemo servis na vašoj infrastrukturi (KVM), isprobamo s vašim prometom i predamo izvještaj o performansama.

Podrška i održavanje

Nadogradnje slike, obrada prijavljenih ranjivosti i obuka vašeg tima.

urMQTT kao gotov proizvod

Ako vam treba MQTT broker: konfigurirana, potpisana slika s vašim certifikatima.

Što je dobar kandidat, a što nije

Dobar kandidat: servis s jednom namjenom koji prima mrežne veze: protokolski poslužitelj, pristupnik (gateway), prikupljač podataka, TLS završna točka, rubni uređaj. Slabiji kandidat: program koji treba Linux ekosustav, datotečni sustav, mnogo procesa ili velik broj odlaznih veza. Današnja osnova prihvaća veze (TCP poslužitelj), ne otvara odlazne TCP veze i podržava samo IPv4; proširenja procjenjujemo po projektu.

Platforme i jezici: što danas podržavamo

Platforme i jezici: što danas podržavamo
PlatformaStanje
KVM virtualni poslužitelji, aarch64Provjereno (Apple HVF i TCG)
KVM virtualni poslužitelji, x86_64 (UEFI i BIOS)Pokrenuto na pravom KVM VPS-u (AMD EPYC), uz testove u emulatoru; na fizičkom hardveru nije probano
Virtualni uređajivirtio (mreža, disk, SCSI, slučajni brojevi)
MrežaIPv4; TCP kao poslužitelj (prima veze, ne otvara odlazne)
Fizički poslužitelji (bare metal), VMware, Hyper-V, XenNe podržavamo (još)
Jezik servisa
Jezik servisaStanje
RustPrirodan izbor: cijela osnova je u Rustu
CSamo kao izolirani program uz naš mali libc sloj (tako radi SQLite); nije POSIX
C++Moguće kao C, bez dokaza; procjenjuje se po projektu
Go, Java, Python, Node.js, .NET, PHPNe podržavamo: traže operacijski sustav. Servis se u tom slučaju prepisuje u Rustu, ili ostaje na Linuxu uz unikernel-pristupnik na rubu

Što treba znati odmah

Osnova je u ranoj fazi (verzija prije 1.0). Cilja virtualne poslužitelje pod KVM-om; x86_64 je pokrenut na pravom KVM VPS-u i u emulatoru, ali ne na fizičkom hardveru; sigurno pokretanje (Secure Boot) je djelomično, a neovisna sigurnosna revizija još nije napravljena. Zato ponudu dajemo kao pilot uz podršku, a ne kao certificirano rješenje.

Primjer: urMQTT

MQTT broker na toj osnovi: TLS 1.3 s uzajamnom autentikacijom, opoziv certifikata bez nove slike, izolirana SQLite baza, šifriranje diska po želji. Pogledajte izvorni kod na GitHubu ili nam se javite.