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.