« Stuff The Internet Says On Scalability For January 22nd, 2016 | Main | Building An Infinitely Scaleable Online Recording Campaign For David Guetta »

Why does Unikernel Systems Joining Docker Make A Lot of Sense?

Unikernel Systems Joins Docker. Now this is an interesting match. The themes are security and low overhead, though they do seem to solve the same sort of problem.

So, what's going on?

In FLOSS WEEKLY 302 Open Mirage, starting at about 10 minutes in, there are a series of possible clues. Dr. Anil Madhavapeddy, former CTO of Unikernel Systems, explains their motivation behind the creation of unikernels. And it's a huge and exciting vision.

What they are trying to build is a system to manage personal data. Let's say you don't want to store your private data in the cloud because, well, it's private. We now have lots of really small devices that are more than powerful enough to handle such a task. What you need is a system that can manage the data while bringing it under your personal physical control, in your house or office, for example. The average user doesn't know how to run a full blown computer system, it needs to just run itself. 

The goal is to deploy these environments, trillions of them, everywhere, and have them just work. 

IMHO this whole lovely vision requires a lot of infrastructure to manage correctly, the very same kind of infrastructure that's being built around Docker. So maybe that's where the marriage makes sense?

They also need a story for composing services together because most code is not able to run in a unikernel. Docker helps with that.

The lightweight cooperative threading model used in the Mirage OS encourages the use of billions of threads. A unikernal can boot in less than 10msecs. So it takes no time at all for Xen to spin up a new kernel in response to traffic. They call this microelasticity and they use it to compose self-scaling services. A service will sit around using a few bytes of RAM. Then if the service gets slammed the system will almost instantly scale out to thousands of virtual machines in response to the load. And within seconds of the load ramping down all those VMs will die out. They want to pack a million virtual machines on one Xen host. Such a system would be billed in milliseconds, which needless to say does not exist today.

Docker seems like a natural to create the distributed hosting instrastructure for this expansive vision.

Pushing unikernels more into the mainstream is also a clear benefit of working with Docker.

On a side note, Anil is incredibly enthusiastic. If you don't want to immediately start learning OCaml after listening to Anil talk you may not be a programmer.  

This all just IMHO of course, I have no special insight at all, but I'm excited to see where it's all going. 

Related Articles


Reader Comments (1)

I like the micro-elasticity of unikernels, but I don't see the difference with hosting the data myself while not having the skills to do so and having it hosted in some cloud. The party providing support to my home xen-server/raspberrypi/whatever will still have access to my VM and if they don't they can trick me in giving them access if I don't have the skills.

For me the biggest advantage of microkernels is being able to strip an application platform to its bare minimum, thereby reducing its attack surface and avoiding wasting cycles.

January 22, 2016 | Unregistered CommenterHans

PostPost a New Comment

Enter your information below to add a new comment.
Author Email (optional):
Author URL (optional):
Some HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>