Unikernels are bespoke, single-address space, lightweight Virtual Machines which do one thing and one thing only: fully facilitate the runtime of one application. Unikernels represent a compile-time specialization strategy and leverage the joining of user and kernel space via a library Operating System in order to achieve this, offering as a result incredible runtime performance whilst increasing application security via isolated hardware virtualization. As Unikraft, an open-source unikernel SDK and library Opeating System toolkit, has grown over the last few years, the number of available off-the-shelf applications, interpreted languages, libraries, target hypervisors and architectures has grown significantly. In order to ensure consistency between builds, prevent bugs and performance regression, and to allow for new features, a massive effort has been undertaken to facilitate massive build permutations of specialized unikernels which target and include variations of this growing ecosystem based on new commits and Github Pull Requests. In this talk, we discuss the journey of this undertaking, highlight and demo several CI/CD solutions in this space with Concourse, and how we are continuing to expand the ecosystem to automatically and intelligently build unique additional performance-oriented permutations from configurations available in the underlying libOS.
Speakers: Alexander Jung