Serverless computing provides a hassle-free way of utilizing resources without the need for infrastructure management. However, providers and users face several challenges, including infrastructure maintenance overheads for providers, and the need for flexibility, isolation, and programming freedom for users. To achieve these requirements, serverless deployments are mainly supported by sandboxed containers that are isolated in VMs to ensure strict isolation, leading to bloated stacks that incur complicated maintenance costs.
Unikernels are unfit for production (sic!) but provide an ideal solution for short-lived tasks in a busy cluster. Unikernels scale much easier than VMs (or sandboxed containers), and are inherently immutable, with easily reproducible binaries.
In this talk, we present our effort on bridging the deployment gap between containers and unikernels. We introduce urunc, a container runtime that spawns unikernels, providing a secure and efficient solution for modern serverless workloads, along with bima an accompanying tool used to “containerize” unikernels (which are currently not OCI-compatible) into OCI images. They can then be deployed using urunc in a cloud-native manner providing easy deployment and management.