blog.robur.coop

The Robur cooperative blog.
Back to index

Deploying MirageOS unikernels - reproducible builds, providing binary packages

2021-01-01

A MirageOS unikernel is a virtual machine that provides a single service. It is written in a statically-typed memory-managed functional language. The language choice avoids several attack vectors, and since a unikernel only contains the required functionality the attack surface is reduced drastically. The resource usage of a MirageOS unikernel is reduced by an order of magnitude compared to a Linux based solution. Most components are open sourceunder a permissive license (MIT/ISC). In this project, we propose to improve and document the deployment story of MirageOS unikernels: establishing a repository of reproducible binary images, enhancing existing MirageOS orchestration tooling, integrate into established orchestration systems, and improve the observability of MirageOS unikernels. Operators will be able to use MirageOS unikernels instead of relying on commercial cloud solutions. This way they take back control over their data and reduce the carbon footprint.

In 2021 we received funding from the European Union (under the Next Generation Internet initiative, via the NGI Pointer funding) to improve the deployment story of MirageOS unikernels.

The proposal was split into several parts: a binary repository (nowadays available as builds.robur.coop), packaging (see apt.robur.coop and pkg.robur.coop), and monitoring (mirage-monitoring).

The funding amount was 200_000€. Reynir and Hannes contributed mainly to the project, with some visualizations done by rand. The project lasted until 2022.