Update -
As others have said and I’ve found - it appears work on various competing unikernels ended, at least publicly, about 2 years ago.
Some of the reasons appear due to the amount of time and work to create a unikernel based on individual applications, lack of commonly accepted approach to building them, and business acquisitions likes Docker buying Unikernel Systems who were ‘trying to bring unikernels to the masses’ - Docker Acquires Unikernel Systems As It Looks Beyond Containers.
However, it appears unikernels are going to make a comeback via the announcement last December:
Xen Project Introduces the Unikraft Unikernel Project
More info from the team here: Unikraft
Summaries and presentation:
Unikraft project promises to simplify unikernel creation
Unikraft will provide two basic components:
Library pools for creating unikernels. These include libraries specific to computer architectures such as x86_64 and Arm32, libraries that target platforms such as Xen and KVM, and a library of operating system elements such as device drivers, file systems, network stacks, and runtimes.
A build tool for compiling the application and selected libraries to build a binary for a specific platform and hardware architecture.
Unleashing the Power of Unikernels with Unikraft
All of this interests me because of examples like the following using Rumprun:
PDF: Erlang on Rumprun Unikernel - An Erlang/Elixir platform enabling the microservices architecture.
YouTube: Erlang on Rumprun Unikernel aiding the Microservices Architecture by Neeraj Sharma
What does it look like?
●
Erlang/OTP BEAM VM builds to 6.3MB (stipped)
●
Custom Cowboy Websocket demo builds to ~8MB
○
Boots in KVM under 2 seconds
●
Hello Phoenix Elixir builds to ~19MB
○
Boots in KVM under 3 seconds
●
The euc2016-cool-demo builds to ~12MB
That’s awesomely fast!
Sadly Rumprun’s repo appears to have died about 3 years ago.
But I’m hoping Unikraft will perfect unikernels and this will save me and others from having to use Docker containers or alternative containers (I should update my thread’s title).
I’m going to keep researching this topic and updating it from time to time here - and would appreciate anyone adding to this and if possible presenting real world working examples we can use for our Elixir/Phoenix dev and deployment.
I would love for us to be able to read an update from someone like Neeraj Sharma ‘the author of porting Erlang to Rumprun unikernel’ - Erlang on Rumprun Unikernel aiding the Microservices Architecture and find out where he believes unikernels are going, his view of Unikraft, and how Elixir/OTP/Phoenix can run on unikernels.
Anyone keen to invite him and others knowledgeable on this subject to this forum?