MIKELANGELO uses OSv as its guest operating system. OSv, developed and supported by ScyllaDB, a partner in MIKELANGELO project, has been designed specifically for the cloud – it is a lightweight POSIX-compliant operating system suitable for running existing Linux applications, with direct support for some of the commonly used runtime environments such as JVM an node.js. OSv is one of the most feature-complete unikernels.

OSv comes with the virtual machine building tool, called Capstan. Capstan builds virtual machine images from several of the pre-built base images of fixed size and consisting of various components (for example, the command line interface, cloud-init, java, etc). This means Capstan’s approach, its level of granularity and flexibility, can be improved with an aim to provide flexible composition of virtual appliances, in other words, a better application delivery system.

With this aim, we introduced and developed the MIKELANGELO Package Manager (MPM). MIKELANGELO seeks to support flexible composition of virtual appliances (self-contained virtual machines with all required apps) by enabling a concept of an application package: arbitrary directory structure with a simple package manifest description. The execution of these appliances is very similar to starting a process or Docker container but with a notable difference: applications are running in a secure virtual machine.

MPM furthermore plans to support OpenStack as one of its runtime environments. Deployment of applications, provisioning of VMs, allocation of external volumes and configuration of network will be transparent for the user.

MPM has been designed with flexibility and application manageability and delivery in mind:

  • support for composable application packages
  • dynamic composition of virtual machine images from packages, including support for differential updates of VMs (adding only modified files to the VM)
  • local execution of OSv-based applications using QEMU
  • integration with OpenStack: deploy images to OpenStack Glance and run them directly using OpenStack Nova
  • remote registry of commonly used application packages

MIKELANGELO has greatly improved the original Capstan tool, developed by Cloudius Systems. To give you a glimpse of its capabilities the following video shows a step-by-step guide to using the Capstan tool to compose minimalistic unikernels for a simple Node.js microservice application. It demonstrates the transition from running the application in our local environment into the fully virtualised environment.

Out of the box, these unikernels are also suitable for orchestration engines such as OpenStack Heat or even Kubertnetes (via Virtlet). The next video shows how the same microservices can be deployed and easily managed through the familiar Kubernetes CLI and UI.

 

Achievements and Results

Besides features described above, MPM has already been used in two of the MIKELANGELO use cases:

  • OpenFOAM Cloud: project showing use of MPM (capstan) for on-the-fly composition of virtual machine images based on users’ requirements. It uses pre-built application packages for OpenFOAM for the Aerodynamics use case.
  • Hadoop HDFS: one of the core experiments for the big data use case. MPM provides the base HDFS package and is used to compose customised VMs (for example, configuration of the central namenode).

 

MIKELANGELO Resources

Reports

Software releases

  • MIKELANGELO Capstan – complete source code
  • Package registry – S3-hosted registry of available application packages. This can be used to pull packages needed for composition of target virtual machines

Other Resources