4 ms·
A somewhat related question: are the major cloud providers showing any interest in unikernels?
by MaxBarraclough 6y ago
A somewhat related question: are the major cloud providers showing any interest in unikernels?
- nderjung 6y agoI believe there is growing interest in providing leaner, "trimmed" runtimes for services deployed to the cloud. Today, this is seen largely by specializing the Linux kernel for, for example, container services[0] or in general[1], as much as that is possible (the paper above covers this problem in greater detail). But, Unikernels in themselves are not yet widely adopted. This is the space Unikraft is aiming to enter, providing the ultimate level of specialization for a target application. It's clear that bigger players, such as Red Hat[2] are interested in the topic of unikernels, and that cloud providers are preparing for this future too [3]. [0]: https://github.com/linuxkit/linuxkit https://github.com/linuxkit/linuxkit [1]: https://github.com/hckuo/Lupine-Linux https://github.com/hckuo/Lupine-Linux [2]: https://dl.acm.org/doi/10.1145/3317550.3321445 https://dl.acm.org/doi/10.1145/3317550.3321445 [3]: https://firecracker-microvm.github.io https://firecracker-microvm.github.io
- rwmj 6y agoIndeed, Red Hat is sponsoring students at Boston University to investigate turning Linux itself into a unikernel, with myself, Larry Woodman and Ulrich Drepper mentoring them (see link [2] in posting above). You can already run some smaller programs this way, either in qemu or on baremetal.
- zeckalpha 6y agohttps://firecracker-microvm.github.io/ https://firecracker-microvm.github.io/
- nderjung 6y agoNote that this is a VMM and not a unikernel project. We can create bindings with this VMM for faster boot times and access to fast IO paths.
- joseluisq 6y agoIf unikernel offers excellent performance, faster boot times, throughput and memory consumption. I'm curious what are the benefits of VMM (Firecracker) in contrast to unikernel? Are not those two comparable?
- ShroudedNight 6y agoThey're improving different aspects that contribute to VM overhead: > ...and boot in around 1ms on top of the VMM time (total boot time 3ms-40ms). Firecracker is trying to minimize "VMM time", while the unikernel is minimizing guest overhead.
- felipehuici 6y agoYou can think of the VMM as the toolstack that executes the moment you send a command to start a VM up. Once it's done it hands over execution to the actual VM (i.e., the OS within the VM). Thus the total boot time is the sum of the VMM plus the actual VM boot time. In the past, both of these took a long time. With the advent of unikernels, which can boot in as little as a few milliseconds, the focus has also been on reducing VMM time.
- twic 6y agoWhat would that look like? AFAIK, today, you can already build your unikernel app into an AMI and run it on EC2. No? Is there a service which would be more useful for unikernels than this? One thing would be for there to be an official AWS unikernel SDK - basically, a rump operating system that has everything you need to run nicely on EC2, and nothing else.
- pjmlp 6y agoFor example app services for language runtimes like Java and .NET.
- rjsw 6y agoAre there TCP/IP network stacks available for Java or .NET ?
- skuenzer 6y agoWith Unikraft as being a librarized unikernel system you can actually choose if the OS layer should provide you a network stack (likely written in C/C++) for your runtime or if you prefer doing it in a higher-level language. Similar to this the MirageOS folks developed a network stack in OCaml.
- pjmlp 6y agoSure, there are even bare metal deployments available for embedded development. PTC and Aicas on Java's case for example, or nanoFramework for .NET.
- skuenzer 6y agoThis is true, there are a number of embedded frameworks that you could use as well and even run it as virtual machine too. In contrast to this we want to make it as seamless as possible by still providing you the Linux-OS-like layers if you need them. The goal is that a previously developed app for Linux should be seamless to port. The OS interfaces in the higher-level language should be the same as you have it on Linux, so no code changes.
- TechBro8615 6y agoThey're always showing interest in lighter weight sandboxing mechanisms. For example, AWS has FireCracker which they use on Serverless, CloudFlare can run WASM workloads in V8, etc. In general, the clouds want the unit of deployable compute to be as small as possible, because it means they can make more money packing more customers into the same machines.