5 ms·
Were you able to watch Waldek's talk that this links to? It's only 20min so not that long but in it he shows doing precisely this by booting 1800 instances a se
by eyberg 5y ago
Were you able to watch Waldek's talk that this links to? It's only 20min so not that long but in it he shows doing precisely this by booting 1800 instances a second.
- gavinray 5y agoI had a read through the repo docs, and briefly skimmed the video -- maybe I'm slow, but my understanding was that Unikernels and MicroVM's are meant to be run on bare metal? IE, OSv is not something I would put on my $5 Digital Ocean droplet, or use to run a general application. As opposed to something like, a Golang/Rust binary, or a Docker Container. I was looking for something I could give to users to let them self-host this Function-as-a-Service platform. Whether that's locally on their laptop for testing, or running somewhere as a cloud service (but probably as a very cheap one). When I asked the founder of a container-based startup about whether Firecracker would be useful for a scenario like this replacing Docker, he told me: "... this confuses me a bit as they are very different things. Firecracker is a hypervisor to run MicroVM's (IE: hardware virtualization)" But again, I have no clue about this stuff. Hence why I asked --- tl;dr = "Can I put this in a container and give it to people to run?" I guess haha
- eyberg 5y agoActually it's the opposite. Most unikernels out there are meant for vms not bare metal. Bare metal in this definition would be actual real hardware - not a base linux vm. There are a handful though do go to bare metal though. What is confusing to a lot of people that haven't deployed these things yet is there is no traditional user-land they are familiar (eg: ssh in and run lots of things) with so then the question of 'orchestration' comes up. If you're deploying to the public cloud or your digital ocean instance they are typically deployed as vms and push the orchestration onto the cloud provider of choice that way you don't have to manage networking/storage/etc. It's actually very straight-forward - we can deploy them to AWS in tens of seconds for instance. Your friend is not incorrect though. If you want to own the "orchestration" layer you'll want/need to put it on bare metal. This is for performance reasons as even nested virtualization is slow and if you are going for the unikernel performance benefit it would get removed. As for throwing it in a container - technically you can but it's an extra layer that most people wouldn't do in actual practice.
- pjmlp 5y agoBasically they are quite similar to just upload an EAR into an application server, they just have more languages to play with other than just Java. Somehow it is kind of ironic to see how the industry goes in circles.
- gavinray 5y agoThis is why I make the assumption that whatever thing I'm trying to accomplish has at one point been thought of, specified and executed thoroughly, and then potentially forgotten about. I'm too young to know though. "There's nothing new under the sun."
- gavinray 5y agoAh, I think my mental picture of how exactly this works is very ill-formed then. Appreciate the thought-out response. Maybe I ought to do more reading in this area. Based on what you're saying, it sounds like there is a possibility to target them towards this usecase.
- convolvatron 5y agowhy wouldn't you take a vm image that boots-to-service and put in on your droplet? or give it to someone else to run? or build tooling around that (ala nanos) to make it easy to package applications this way. i dont understand, except from a purely market position perspective why 'hypervisor images' and 'containers' are such radically different things.
- wmf 5y agoIn theory you could use nested virtualization, e.g. https://jvns.ca/blog/2021/01/23/firecracker--start-a-vm-in-less-than-a-second/ https://jvns.ca/blog/2021/01/23/firecracker--start-a-vm-in-l... In general public clouds don't play well with unikernels because they can't/won't support microVMs and/or their control plane overhead swamps the boot time benefit. You can always build your own orchestration system on bare metal but then you have an inner platform.
- eyberg 5y agoThis isn't true. Both https://nanos.org https://nanos.org and https://ops.city https://ops.city are Go unikernels running on Google Cloud. (I'm with NanoVMs that is the maintainer of these projects.)