Unikernels and toolchains
Unikernels are specialized virtual machine images targeting specific applications. This technology is characterized by tiny memory footprints for the VM images (i.e. hundreds of KBs or a few MBs), very fast boot times compared to those of processes (i.e. less than 1s) and throughput in the range of 10-40 Gb/s, among many other performance metrics which have been evaluated in the last years (see other interesting metrics in these articles: My VM is Lighter (and Safer) than your Container, Unikernels Everywhere: The Case for Elastic CDNs, ClickOS and the Art of Network Function Virtualization).
The UNICORE toolchain
The UNICORE toolchain. Despite their advantages, developing applications with unikernels remains a manual process today which requires significant expertise on computer systems and consequently prevents their wide adoption by the software industry.
It is time to enable application developers and dev-ops engineers to create, maintain and deploy secure and portable unikernels with flexible and robust toolchains for unikernels.
UNICORE is developing such a toolchain to release it as open-source. The UNICORE toolchain will include several tools, each supporting the various stages of the creation of unikernels: decomposition tool, dependency analysis, automatic build and verification tool. UNICORE will build the toolstack under the umbrella of the Unikraft Xen subproject under the auspices of the Linux Foundation, where NEC, the project’s technical coordinator, is a key contributor with Unikraft.
By providing an automated tool for unikernel creation, UNICORE can drastically reduce the amount of expert time needed to implement specialized images. In addition, the fact that such build process will be automated will allow UNICORE to fully automate the optimization/tweaking cycle, once again removing the time-consuming and expensive effort from an expert from the equation.
Cross-platform support. UNICORE is also developing a unified platform support for unikernels in order to build targets for traditional VMs, containers and images for Cloud management Systems (i.e. OpenStack, OpenNebula). The UNICORE platform will support hybrid deployments, which can run unikernels of various types concurrently, demonstrating also high reliability and ease of use (installation, configuration & maintenance).
Finally, UNICORE will take specialization to the extreme, by allowing users to easily choose which features from all layers of the software stack, including the operating system, they would like to have in support of their application, without having to modify current code.