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
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).
- D4.7 First version of the application packages – published January 2016.
- D6.1 First report on the Architecture and Implementation Evaluation – published July 2016. Section 2.5 includes an evaluation of the application package management in MIKELANGELO from architectural, performance and implementation points of view. Section 4.3.1 also include an evaluation from application developer/integrator perspective.
- 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