Hands-On Introduction to Unikernels
68 points
5 days ago
| 7 comments
| labs.iximiuz.com
| HN
bregma
33 minutes ago
[-]
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.

reply
hun3
32 minutes ago
[-]
Hypervisor as a microkernel
reply
deivid
4 hours ago
[-]
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

reply
iberator
2 hours ago
[-]
Which architecture can boot it in 150ms ?!
reply
hun3
33 minutes ago
[-]
Stripping away unused drivers (.config) and other "bloats" can get you surprisingly far.
reply
jumploops
1 hour ago
[-]
Boot is a misleading term, but you can resume snapshotted VMs in single digit ms

(and without unikernels, though they certainly help)

reply
binsquare
2 hours ago
[-]
Microvm's
reply
pjmlp
3 hours ago
[-]
Security, it isn't only memory footprint.
reply
rantingdemon
1 hour ago
[-]
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.

reply
chloeburbank
1 hour ago
[-]
once you login with github there's a start button on top left for that
reply
tuananh
1 hour ago
[-]
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

reply
imiric
1 hour ago
[-]
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

reply
traxler
4 hours ago
[-]
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?
reply
gucci-on-fleek
3 hours ago
[-]
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...

reply
traxler
3 hours ago
[-]
When I first heard about unikernels my hope/thought was that people would go back to using more bare-metal servers for unikernels.
reply
tuananh
1 hour ago
[-]
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.

reply
pjmlp
3 hours ago
[-]
They kind of did, that is basically how serverless works.

Managed runtimes on top of hypervisors.

reply
chloeburbank
1 hour ago
[-]
cool stuff
reply