3 ms·
It really depends on your usecase here. If the many application processes rely on the same OS libraries, versioned language runtimes (e.g. same python version)
by nderjung 5y ago
It really depends on your usecase here. If the many application processes rely on the same OS libraries, versioned language runtimes (e.g. same python version), kernel version, etc. AND you trust the OS then it may make sense. However, unikernels offer the lightweightness of a container process with the security of a VM. In addition to this, memory ballooning[0][1] and other resource-elastic features are available to VMs too: allowng you to under-provision them and then later increase resources when load demands it.
Unikraft unikernels can also be managed using the same orchestration tools as containers, check out the talk at CNCF[2].
[0]: https://github.com/unikraft/unikraft/pull/219 https://github.com/unikraft/unikraft/pull/219
[1]: https://pmhahn.github.io/virtio-balloon/ https://pmhahn.github.io/virtio-balloon/
[2]: https://www.youtube.com/watch?v=cV-xawN9_cg https://www.youtube.com/watch?v=cV-xawN9_cg
- mwcampbell 5y ago> memory ballooning[0][1] and other resource-elastic features are available to VMs too If I'm using a public cloud platform's hypervisor, those features may benefit the cloud provider, but not me. Or are you targeting users running a hypervisor on bare metal?
- nderjung 5y agoI think it can benefit both parties -- underprovisioning for a smaller bill and then increasing when demands need it so as to prevent degregation in QoS. That said, if load increases exponentially high it can induce high costs. Some cloud providers do not offer memory (or just any resource) ballooning, like AWS, so there you will experience the problem you have discussed about over-provisioning. However, we aim to alleviate some of these problems with the uniqueness of Unikernels with our soon-to-be-released Cloud Platform at https://unikraft.io https://unikraft.io. Features like memory ballooning (with hard upper limits) and other features like deep in-kernel monitoring to understand application performance.