10 ms·
Zerg demo – Xen instance spawned for each web request
- mattbeck 14y agoBorked.
- steeve 14y agoYou know, the idea sure is impressive, but getting over capacity errors sure doesn't show it well :)
- thu 14y agoOn the contrary I like it. They have finite resources and it answers immediately with the correct response.
- St-Clock 14y agoThis. With typical web applications, your request would wait until something times out and cascades back to the client (webserver, app server, db, etc.). This can mean waiting for 30 seconds or more depending on your configuration. It's not an easy problem to solve elegantly too.
- pixelbath 14y agoIt actually is quite easy if you set a finite limit on connections and show an appropriate message to those connections you're actively refusing. If you're allowing as many connections as your server/network/database can allow, it might take a bit longer to determine a failure status.
- icoder 14y agoI'm seeing 1.5 to 1.6 secs. Is that due to my crappy internet connection or is that simply what it is? Because 1.5 secs per request, and more for somewhat more complex operations, seems long to me. As instance startup time it is impressive though! But they are designed to die after each request, right? Or is that just this example?
- viktorsovietov 14y agoRight, it's just example, right, it dies after each request - you can check the code on github. Also, you can review the detailed structure of time spending on the second half of zerg's page.
- thu 14y agoIt is just an example to show how quickly they can provision a new vm+server. They are not advocating for it to be a good way to serve requests.
- viktorsovietov 14y agolibvirt is the limit in this case...
- nkozyra 14y agoI got 3 seconds. But that isn't 3 seconds to serve the page. That's 3 seconds to basically build and boot the "server" on-demand, start all necessary daemons and serve the page. Now think about what happened when you needed to add a Web server 10 years ago.
- deleted 14y ago[deleted]
- borplk 14y agoCan someone shine some light on why and how this is useful? What are some examples?
- viktorsovietov 14y agoScalable MapReduce, for example, super scalable web servers tolerant for any possible spikes of load, including abuse-resistant hostings, personal virtual appliances... there are many possible usecases, indeed
- nkozyra 14y agoIf you've ever had to scale capacity on AWS (or any other on-demand cloud service, really) you'd know. On the page they say 300 seconds to bring up a Linux instance, but really that can even take longer from time to time. When you need to scale in a hurry (or in this case semi-automatically), the ability to launch persistent or temporary VM instances in a much shorter timeframe is critical. Granted (and as they note here) this is sort of demo-only, and probably not particularly useful out of the box. But as a demonstration of how fast things could work it's perfect. It doesn't hurt that it's functional.
- otoburb 14y agoThe folks at ZeroVM have a list of motivations[1] for this type of execution and hosting model. The only problem is that it's hard to tell how active the project is from their main page alone. EDIT: Their github commit is fairly active for a solo developer[2]. [1] http://zerovm.org/motivation/ http://zerovm.org/motivation/ [2] https://github.com/zerovm/zerovm/commits/master https://github.com/zerovm/zerovm/commits/master
- camuel 14y agowe are heads down coding and haven't got time yet to update ZeroVM website. If you want to contribute contact us now please, if you to use ZeroVM hypervisor stay tuned...
- thepumpkin1979 14y agoIt keeps saying "Over capacity", I want to know what this is about though.
- ghayes 14y agoAbout being able to quickly scale to capacity. :)
- viktorsovietov 14y agoSorry, gents, we don't have real datacenter there, just a single host, and libvirt sets its own limitations.
- jonny_eh 14y agoSo what's being shown off here? Clearly it's impressive that a web server VM is loaded so quickly, but what's the key? Is it a carefully configured Xen VM? Or is it the use of Erlang?
- asabil 14y agoThis is an OS-less web server VM, basically an modified Erlang VM to run directly on "almost" bare-metal
- viktorsovietov 14y agoActually, we didn't modify Ericsson's Erlang VM, we have written our own.
- thepumpkin1979 14y agoImpressive, is that what Zerg is about? where can I find more information about this?
- Zolomon 14y agohttp://en.wikipedia.org/wiki/Zergling#Zerg http://en.wikipedia.org/wiki/Zergling#Zerg or http://knowyourmeme.com/memes/zerg-rush http://knowyourmeme.com/memes/zerg-rush
- viktorsovietov 14y agoZerg is just a demo that shows how elastic and scalable could be OSless VMs even over current cloud infrastructure
- thu 14y agoThe demo about the vm+server startup time is interesting, but I am glad to know about the way they use Nginx to proxy the request twice to do the provisioning of the vm+server. Edit: I wonder if the numbers would be similar if the example was done with HaLVM (https://github.com/GaloisInc/HaLVM https://github.com/GaloisInc/HaLVM).
- piranha 14y agoApplication which handles original request (called 'spawner') asks Xen to start a new server, and when Xen reports back, returns 'X-Accel-Redirect' to nginx, which then nginx serves.
- pyvpx 14y agoone thing I haven't been able to wrap my head around is why "on xen"? couldn't this be done "on qemu" as well, or even 'more betterly'?
- viktorsovietov 14y agoCurrent implementation runs in Xen PV domain and uses Xen's hypercalls. There are no strong dependencies, though, Ling easily can be ported for other hypervisors. Xen is the priority, since it's the plaform for all major public clouds.
- gosukiwi 14y agozerg rush is imba (get the joke? ha... sorry)
- jeremyjh 14y agoThis is really neat stuff. I do not understand though why LING is not open-source already. If you are sincere in your claims for intentions of making it so, why would you wait until it is "mature" before doing so? Wouldn't it mature a lot faster if more people picked it up and tried to use it, submitted defects and even patches?
- viktorsovietov 14y agoI'm afraid, only few people are familiar with internals of Erlang VM, especially, if that VM is totally different from BEAM. Thus, there's no reason to opensource it, at least yet. Though, build.erlangonxen.org is open, contains the most recent stable version, and free to use.
- 7952 14y agoIf you run Perl in CGI it creates a new VM for every single request. How is this different?
- lucaspiller 14y agoSee http://erlangonxen.org/ http://erlangonxen.org/. This means VM in terms of an AWS instance :)
- csense 14y agoCGI creates a new OS process for every request. Zerg creates a new Xen VM for every request. These are very different things.
- deleted 14y ago[deleted]
- Groxx 14y agoFor people who are interested but unable to get a connection, here's a saved page: http://f.cl.ly/items/07293W450C3F0r472u1O/Zerg%20demo%20-%20spawned%20for%20each%20web%20request.html http://f.cl.ly/items/07293W450C3F0r472u1O/Zerg%20demo%20-%20... I tweaked the background image URLs so they'd be absolute instead of relative, but otherwise it's unmodified.
- viktorsovietov 14y agoThanks. We used libvirt for this demo, unfortunately it sets its own limits.