UniK (pronounced like “unique”, or spelt phonetically as “you-neek”) is a project born out of the EMC-Pivotal Dojo in Cambridge, and from a team led by Idit Levine (@IditLevine).
Unikernels are in essence a use-case specific kernel compiled for a singular task. They are as thin, as light as you can get in computing (at least before you get right into microcode :-) A Unikernel is a lightweight bootable image – not a binary.
As you can imagine, one challenge is that it’s non-trivial to get app code running that way.
The goal of UniK is simple, but really cool (and potentially quite disruptive): to make it easier to get app code running in Unikernels, and also to make Unikernels integrated into the ecosystem of tools that people use (Cloud Foundry, Kubernetes, Docker and more). There is ARM support in UniK today – so anyone with a Rasberry Pi who wants play can go to town!
Like all open-source projects, too much text/explanation is a hint of baloney, so here’s the code: https://github.com/emc-advanced-dev/unik, and here’s some “getting started” docs: https://github.com/emc-advanced-dev/unik/blob/master/docs/getting_started.md
You can also read the thoughts of the team directly here.
I was going to work up a diagram of “WTH is a Unikernel” – and as I did some digging, I found this great picture (link to blog here – thanks Amir Chaudhry and Richard Mortier!
That said – there are three things a little “wrong” with the diagram above:
- the “arrows” imply direction/progress – i.e. that one thing leads to another. I don’t think that’s right. I think we will have shared kernels, duplicated kernels, and unikernels for the foreseeable future
- there is an implication that there is always a Hypervisor, which I don’t think will always be the case.
- there is an implication that what they will always be used for is for running containers (hey, the blog post they wrote above was in support of DockerCon, so I get it). I think some workloads will live in kernel mode abstractions, some in container abstractions, and some on NO abstractions.
So, another variation that will be popular and should be added to the taxonomy would instead look like this:
Really thin hardware, and a really REALLY thin Unikernel for a specific function. What the heck would you use this for? IoT use cases for sure – but I would wager there will be others.
Dear readers – please avoid the temptation (universal human constant) to jump to conclusions of “good/bad”, “this will kill ____” or “be killed by ______”.
Humans always want to “reduce” things in their mind. “compare/contrast” with things we understand (kernel mode virtualization, containerization, etc) is all good – but jumping to the “winner/loser” step is way, way premature (in the same way that people that talk about “container = good/VM = bad” are just being silly.
Pull the code! Contribute! Use it in all sorts of funky ways.
One little sidebar - I spent time at the Cambridge Dojo (“the place of the way”) yesterday (en route to Marlborough for customers and meetings with VCE Engineering) – and man, so cool.
There we are working on RackHD integration with BOSH (for “CF on hardware”), for ScaleIO and ECS automation into the CF framework and much more.
There are also product teams and customers doing pair-programming fast and furious on all sorts of stuff. It is a peek into a new world, and a new EMC. It’s modeled on the Pivotal way – a cult to be sure, but the best kind of cult :-)
As we work on the next-generation of the converged platform management/orchestration tools (evolution of VCE Vision, VxRack Manager, continued joint development around SDDC Manager – and broadly improving Vblock/Vxblock automation – an area for improvement) – along with making things like the Enterprise Hybrid Cloud and Native Hybrid Cloud awesome - these places (and others), these people (and many more!), and the Pivotal Labs way will be a big part of it….
Food, coffee and energy galore…
… Paired programming going on – and the photo doesn’t do it justice – intense, and so awesome to have teams working on totally different things working so closely together
And here you have some of the UniK team – Idit on the right, Scott Weiss in the middle, and a big-mouthed idiot on the left :-)
This is one of the MANY faces of innovation in EMC – in the at-scale business teams (Core Technology Division, Emerging Technology Division, Converged Platform Division), but also the branches of EMC{code} and others.
Innovation is by definition something kind of chaotic. That’s A-OK. The piece of the puzzle I aim to help with is to “direct” – not the innovation (can’t be directed), but to pull/push our opinionated direction at the macro level in a direction (EHC, NHC, Convergence at the infrastructure layer)… but that depends on awesome happening all over the place. And I see a lot of awesome, a lot of chaos :-)
I think there’s a great opportunity for us to pull together our EMC{code} teams with this additional source of great innovation within EMC (pull the UniK code, or the RackHD CPI and contribute). I’m pushing the VCE team to contribute a ton to RackHD and CoprHD as we work on our innovation in the packaged stacks….
Comments
You can follow this conversation by subscribing to the comment feed for this post.