Re:Zerg: Boot a VM instance per request, all in under 250 ms
by jxf on Thursday December 28, 2017 @06:20AM
(#16021465)
It's similar in intention, but "serverless is just `cgi-bin`" misses a lot of nuance. Zerg and cgi-bin are solving different problems and with different implementations. It's extremely difficult, if not impossible in some environments, to get the same kind of isolation with cgi-bin that you do out of a VM.
Re:Zerg: Boot a VM instance per request, all in under 250 ms
by catern on Thursday December 28, 2017 @09:25AM
(#16022121)
You gain on isolation with Zerg (and other "VM per request" things) but you lose on everything else compared to CGI with processes.
But you can reach comparable levels of isolation with processes: just use Linux namespaces.
Re:Zerg: Boot a VM instance per request, all in under 250 ms
by htgb on Thursday December 28, 2017 @06:19AM
(#16021461)
Is it? I'm under the impression that cgi-bin is a way to serve requests from the local computer, while Zerg is a way to spawn _other_ server instances to handle the request (and in Erlang, specifically).
Re:Zerg: Boot a VM instance per request, all in under 250 ms
by pjc50 on Thursday December 28, 2017 @06:55AM
(#16021566)
Yes, but you could let a load balancer handle that for you, and you might not need as many computers to handle the requests if it didn't take 250ms to start.
Re:Zerg: Boot a VM instance per request, all in under 250 ms
by sitkack on Thursday December 28, 2017 @07:43AM
(#16021714)
Booting a VM should be "as complex" as fork. And the memory image of the booted OS should be identical on each load before the end user specific data is loaded.
"Prefork" these VMs by spraying that image over physical memory in advance, jump to them on a request. memcopy a new VM over them on exit.
VM spawn rate should be the memcopy rate, if the MMU is powerful enough, should only be the amount of memory mutated during a request.
Isn't this just cgi-bin, right down to the long startup time and lack of persistence?