Remix.run Logo
Hands-On Introduction to Unikernels(labs.iximiuz.com)
65 points by valyala 6 days ago | 18 comments
bregma 13 minutes ago | parent | next [-]

So, if I understand correctly, a "unikernel" is what we used to call an "executive" except it is intended to be run as a guest on a virtual machine provided by a full-fledged traditional kernel/userspace OS instead of on bare metal.

The article does reintroduce some concepts that were commonplace when I was first learning computers and it gives them some new names. I like that good ideas can still be useful after years of not being the latest fad, and it's great that someone can get new credit for an old idea with just a little bit of marketing spin.

hun3 12 minutes ago | parent | prev | next [-]

Hypervisor as a microkernel

rantingdemon 2 hours ago | parent | prev | next [-]

I would like to follow the tutorial but it mentions a playground.

Am I missing something as I cannot find a link or instructions for the playground.

chloeburbank an hour ago | parent [-]

once you login with github there's a start button on top left for that

deivid 4 hours ago | parent | prev | next [-]

This is really well written, thanks for sharing.

I didn't understand the point of using Unikraft though, if you can boot linux in much less than 150ms, with a far less exotic environment

iberator 2 hours ago | parent | next [-]

Which architecture can boot it in 150ms ?!

hun3 14 minutes ago | parent | next [-]

Stripping away unused drivers (.config) and other "bloats" can get you surprisingly far.

jumploops an hour ago | parent | prev | next [-]

Boot is a misleading term, but you can resume snapshotted VMs in single digit ms

(and without unikernels, though they certainly help)

binsquare 2 hours ago | parent | prev [-]

Microvm's

pjmlp 3 hours ago | parent | prev [-]

Security, it isn't only memory footprint.

tuananh 2 hours ago | parent | prev | next [-]

the missing piece of unikernel is debuggability & observability

- it need to be easy to replicate on dev machine & easy to debug - it needs to integrate well with current obs stack. easy to debug in production.

without clear debuggability & observability, i would never put it into production

imiric an hour ago | parent [-]

This is a common myth. Debugging unikernels is indeed possible[1][2]. It may not be the type of debugging you're already used to, but then again, unikernels are very different from containers and VMs, so some adjustment is expected.

As for observability, why is that the concern of unikernels? That's something your application should do. You're free to hook it up to any observability stack you want.

[1]: https://nanovms.com/dev/tutorials/debugging-nanos-unikernels...

[2]: https://unikraft.org/docs/internals/debugging

traxler 4 hours ago | parent | prev | next [-]

I've found the idea of unikernels interesting for several years now, is there a tl;dr on why they don't seem to have taken off, like at all? Or is it all happening behind some doors I don't have access to?

gucci-on-fleek 3 hours ago | parent | next [-]

I think that part of it is that relatively few people use bare-metal servers these days, and nested virtualisation isn't universally supported. I also found this technical critique [0] compelling, but I have no idea if any of it is accurate or not.

[0]: https://www.tritondatacenter.com/blog/unikernels-are-unfit-f...

traxler 3 hours ago | parent | next [-]

When I first heard about unikernels my hope/thought was that people would go back to using more bare-metal servers for unikernels.

tuananh an hour ago | parent | prev [-]

there is a workaround for nested virt requirements.

you can use PVM patch and para-virtualization. I've seen several startup using that approach to be able to create VM on small/cheap EC2 instances.

pjmlp 3 hours ago | parent | prev [-]

They kind of did, that is basically how serverless works.

Managed runtimes on top of hypervisors.

chloeburbank 2 hours ago | parent | prev [-]

cool stuff