Time provisioning Evaluation of KVM, Docker and Unikernels in a Cloud Platform
📜 Abstract
Unikernels are a promising alternative for application deployment in cloud platforms. They comprise a very small footprint, providing better deployment agility and portability among virtualization platforms. Similar to Linux containers, they are a lightweight alternative for deploying distributed applications based on microservices. However, the comparison of unikernels with other virtualization options regarding the concurrent provisioning of instances, as in the case of microservices-based applications, is still lacking. This paper provides an evaluation of KVM (Virtual Machines), Docker (Containers), and OSv (Unikernel), when provisioning multiple instances concurrently in an OpenStack cloud platform. We confirmed that OSv outperforms the other options and also identified opportunities for optimization.
✨ Summary
Summary
The paper evaluates concurrent instance provisioning for Linux/KVM virtual machines, Docker containers, and OSv unikernels in an OpenStack Kilo deployment. Using Rally and OSProfiler, the authors measure three parts of the provisioning workflow: instance or operating-system startup, image creation, and OpenStack overhead. The experiment uses a two-node environment and provisions 10, 20, and 30 instances concurrently. The tested images are 1.2 GB for Linux/KVM, 342 MB for Docker, and 88 MB for OSv.
OSv and Docker exhibit sub-second startup behavior, while Linux/KVM startup time increases substantially as concurrency grows. OSv and Linux/KVM have comparable image-preparation behavior because both use QCOW2 images, although the much smaller OSv image reduces the image-copy cost. Docker experiences degradation during concurrent image import because image decompression and metadata processing are serialized by the Docker API. OpenStack service communication and coordination also form a major component of total provisioning time, particularly as concurrency increases.
For the tested workload, the reported total times are approximately 13 seconds for OSv/KVM and Linux/KVM and 22 seconds for Docker at 10 concurrent instances; at 30 instances, OSv/KVM takes approximately 22 seconds, Linux/KVM approximately 22 seconds, and Docker approximately 38 seconds. The authors conclude that OSv provides the best provisioning performance under the experiment’s uncached, repeated-image conditions. They identify cached Docker layers, incremental deployment, full-stack applications, and OpenStack workflow optimization as important subjects for further study.
Subsequent research
The clearest documented academic continuation located in the search was An Unikernels Provisioning Architecture for OpenStack (2018), authored by Luis Augusto Dias Knob, Bruno Gomes Xavier, and Tiago Ferreto. That work develops an optimized OpenStack provisioning architecture for OSv, moving image reconstruction toward the compute node, supporting concurrent compilation, and addressing the image-transfer and reconstruction bottlenecks identified in the earlier evaluation. (repositorio.pucrs.br)
The search found evidence of continued citation in later unikernel and cloud-virtualization literature, but no verifiable industry deployment or product adoption explicitly attributable to this paper. The paper’s publication venue, date, bibliographic metadata, and author ordering were cross-checked against the PUCRS repository and conference records. (repositorio.pucrs.br)