Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by sturadnidge on Sunday January 21, 2018 @10:37PM
(#16201708)
I always liked the way Bryan Cantrill defined it in one of his wonderful talks, which was basically that the difference between 'hard' real-time systems (eg missile guidance) and 'soft' real-time systems (eg whatsapp) boils down to the consequences of being late.
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by jacques_chester on Sunday January 21, 2018 @07:18PM
(#16200923)
Traditionally, "realtime" means you can tell, in terms of actual wall clock time, how long different operations will take. Tends to show up in embedded systems because they tend to control devices in which fixed deadlines matter.
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by anfilt on Sunday January 21, 2018 @06:26PM
(#16200724)
If we want to talk about the minutia. None of these are "real time". Heck even the universe puts a limit on how quickly events can happen. We can look at the light from galaxies so far away that we see the galaxy billions of years into it's past. So nothing can be instantaneous.
However, I would say real time generally means acceptable latency or acceptable time reach to consistency. Although, I generally think of real time more along the lines of embedded systems.
Moreover, the word server-less really irks me. It's not server-less. You just don't have to manage the server or really interact with the server software that much. It's still a server.
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by SteveNuts on Sunday January 21, 2018 @11:11PM
(#16201866)
Yeah that's a terrible term to describe what's going on, "bare metal" usually means running directly on an OS that's installed directly to hardware (not going through a hypervisor).
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by yaronhaviv on Monday January 22, 2018 @06:23AM
(#16203533)
nuclio is using a real-time arch (no context switch, zero copy, no Ser/Des, parallelism, .. ) Go function serves 400K events/sec/proc, Py does 70K events/sec/proc, this is faster than running your own function with standard HTTP serving on a bare-metal server.
for comparison most serverless frameworks do 1-5k events/sec and up to 100x higher latency.
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by rburhum on Monday January 22, 2018 @05:26PM
(#16208599)
My point is that - as described - it is a dumb comparison.
> open source serverless platform which is faster than bare-metal code
does't make sense. It eventually has to run on top of bare metal (via hypervisor or directly), so claiming that something that eventually runs on top of bare metal is "faster than bare metal" doesn't make sense at all.
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by weego on Monday January 22, 2018 @02:56AM
(#16202662)
So you take pretty much the single benefit of serverless ie low cost of ownership at low volume and then ditch that and have to run your own cluster? I guess if it was a zero redevelopment migration path from lambda it makes sense.
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by keyle on Sunday January 21, 2018 @06:27PM
(#16200729)
I had to look up "Serverless", especially after it says "here is how to start our docker app".
I might be old by now, but serverless feels like renting a sublet place per hour. I guess it was only going to happen, after we went from 1 server to many instances to unmanageable mess: "aaeaeh let it be someone else's mess! Take my money!"
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by jacques_chester on Sunday January 21, 2018 @07:24PM
(#16200941)
Some poking around suggests that currently they scale to a single copy, so for sporadic workloads latency will be good (relative to normal latency for warm code).
Based on the roadmap in the repo[0] (under "In Design").
Disclosure: I also work on a FaaS project, Project Riff.
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by yaronhaviv on Monday January 22, 2018 @06:18AM
(#16203511)
nuclio auto-scale today (use k8s HPA), the roadmap item is to scale-down to zero (today holds one instance when idle and will soon be able to shut it down when idle).
nuclio latency is as low as 30 microsec in Py & Go vs 10s of milisec in Lambda
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by jacques_chester on Monday January 22, 2018 @07:35AM
(#16203886)
Warm vs cold start is not a very meaningful comparison, though. Lambda typically scales from zero. Any warm system is going to greatly outperform a cold one. Java on Lambda can vary from nanoseconds to seconds, depending on whether you hit a warm copy or a cold start.
Disclosure: I work on a different FaaS, Project Riff.
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by yaronhaviv on Monday January 22, 2018 @03:20PM
(#16207550)
I benchmarked all the frameworks in cold & warm, Warm is also very slow, no concurrency etc'. how many events/sec can u do with a warm Riff instance e.g. in Go & Py? whats the latency?
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by jacques_chester on Monday January 22, 2018 @06:51PM
(#16209360)
Let me put it another way: are you saying you have no cold-start penalty?
Edit: and to answer your question -- no, I have not personally benchmarked it. Can you point me to your suite? I've been thinking it would be useful to work on a benchmark that different implementations can share to catch regressions (and earn bragging rights, of course).
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by yaronhaviv on Tuesday January 23, 2018 @09:59AM
(#16214035)
Great idea, we suggested to create an open benchmark at CNCF, a bunch of members opposed, we can come with a joint proposal.
You can use our test tool https://github.com/v3io/http_blaster, it can generate a workload of > 600K http req/sec with one client and is programable.
Re:Nuclio: Serverless for Real-Time and Data-Driven Applicat...
by jacques_chester on Tuesday January 23, 2018 @07:08PM
(#16219148)
Do you have a link to the benchmarking discussion? I'd be interested to see what the objections were.
I raised the topic today in a team meeting and I'll probably get to tinker over the next few weeks. I'm interested in exploring a few different axes of stress. RPS is one, but also things like "how does it behave with ten thousand functions installed?", "how does it behave with traffic yo-yoing?" etc.
* Embedded systems: nanoseconds to milliseconds (depends on the system, but at the very least needs to be predictable within some bounds);
* Application software (including web): tens to hundreds of milliseconds;
* TV broadcasting: seconds to minutes;
I'd love to hear more examples from different industries!
Somehow it morphed into a shorthand for "fast".
Generally precludes GC(yes there are edge cases where you can shoehorn GC in, I don't care about them since malloc is usually out of bounds as well).
However, I would say real time generally means acceptable latency or acceptable time reach to consistency. Although, I generally think of real time more along the lines of embedded systems.
Moreover, the word server-less really irks me. It's not server-less. You just don't have to manage the server or really interact with the server software that much. It's still a server.
WTF? Can somebody explain to me what they are trying to convey here?
for comparison most serverless frameworks do 1-5k events/sec and up to 100x higher latency.
disclosure: i work on nuclio
> open source serverless platform which is faster than bare-metal code
does't make sense. It eventually has to run on top of bare metal (via hypervisor or directly), so claiming that something that eventually runs on top of bare metal is "faster than bare metal" doesn't make sense at all.
Needs more buzzwords, for sure. Developers need to spend more time understanding "real-time" as well.
I might be old by now, but serverless feels like renting a sublet place per hour. I guess it was only going to happen, after we went from 1 server to many instances to unmanageable mess: "aaeaeh let it be someone else's mess! Take my money!"
Is there management for handling things with a slow startup time?
I've got a few things that have startup times in the region of 30s+ but then each thing to process takes very little time.
I found this, which I think is relevant: https://github.com/nuclio/nuclio/blob/master/hack/examples/p...
Are there some pitfalls about this to be wary about / known bad edge cases?
Based on the roadmap in the repo[0] (under "In Design").
Disclosure: I also work on a FaaS project, Project Riff.
[0] https://github.com/nuclio/nuclio/blob/master/ROADMAP.md
nuclio latency is as low as 30 microsec in Py & Go vs 10s of milisec in Lambda
Disclosure: I work on a different FaaS, Project Riff.
Edit: and to answer your question -- no, I have not personally benchmarked it. Can you point me to your suite? I've been thinking it would be useful to work on a benchmark that different implementations can share to catch regressions (and earn bragging rights, of course).
I raised the topic today in a team meeting and I'll probably get to tinker over the next few weeks. I'm interested in exploring a few different axes of stress. RPS is one, but also things like "how does it behave with ten thousand functions installed?", "how does it behave with traffic yo-yoing?" etc.