6 ms·
More like CGI scripts with a loadbalancer that promises to run your application on a host with enough memory within at most 600ms. That solves an actual problem
by emj 9y ago
More like CGI scripts with a loadbalancer that promises to run your application on a host with enough memory within at most 600ms. That solves an actual problem with CGI scripts, but I really would love to see more tiers with lower latency brackets, sub 10 milisecond should be doable for certain lambdas and costs.
- wahnfrieden 9y agoThe other key component of serverless is the pricing scheme: pay for what you use; don’t pay for provisioned capacity. This has a huge impact on how you design systems as you no longer have to consider throughput (besides account limitations that you can raise without cost), only latency. You can even treat lambda like an async queue which will never accumulate a backlog. Interestingly lambda seems to make async IO technologies like nodejs less compelling, because throughput capacity isn’t really relevant anymore.
- k__ 9y agoWhat are good alternatives to nodejs that are better suited for this kind of architecture?
- wahnfrieden 9y agoIt’s more that you’re dealing with a different set of constraints on which to evaluate technologies. There’s not an overall better suited technology than nodejs - still good reasons to use it on Lambda. To make the most of Lambda though you’ll want something that affords small code size (as there’s a 50MB limit), and has fast single execution latency.
- bpicolo 9y agoWhich will never accumulate a backlog because it is happy to kill your task. ;)
- wahnfrieden 9y agoStill need to use a dead letter queue, yes :)
- rdsubhas 9y ago> The other key component of serverless is the pricing scheme: pay for what you use; don’t pay for provisioned capacity. There is another way of looking at it: Pay for a percentage of the traffic, irrespective of how fast your application runs or what your budget is. If you reach your monthly budget because of one hacker news trending article, yeah, then no more traffic for you. It can be insane. If I have autoscaling with an upper bound, I can stay within a fixed budget per month. If I reach my budget, yeah no more new servers, but whatever running keeps running. My business doesn't disappear, I get business continuity. Paying based on % of traffic sounds insane. How will I plan for business continuity if my monthly budget is reached with this kind of model? (without any "minimum xx requests" kind of crap free tier, business continuity means fixed upper bound AND continuing service, not OR)
- icebraining 9y agoI don't know if platforms already support it, but there's no reason why you can't have a throttle (calls/minute).
- alpha_squared 9y agoI can't speak for all serverless platforms, but AWS API Gateway does support throttling and burst throttling[0]. [0] http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-request-throttling.html http://docs.aws.amazon.com/apigateway/latest/developerguide/...
- wahnfrieden 9y agoYou’re looking for throttling which you can do with Lambda/API Gateway. If you don’t have spikiness in your traffic and provisioning for peak capacity is affordable and simple, then serverless is a bit less compelling.
- Cthulhu_ 9y agosub 10 ms would only work if they had an instance running and warm, ready to take requests - if they still have to look up your function, provision a machine, interpret it etc it's easy to go past that. 600ms is still respectable if it's from a "cold start". But if you've got time critical applications maybe serverless is not for you.
- naasking 9y agoI don't see why this is necessarily the case. You can boot lightweight VMs with a unikernel in under 10ms [1]. [1] http://cnp.neclab.eu/projects/lightvm/lightvm.pdf http://cnp.neclab.eu/projects/lightvm/lightvm.pdf
- emj 9y agoI know it's an edge case that doesn't fit Amazon Lambdas atm. I do it by hand ATM, so I know it can be done, but sure I run it on too many preowned servers to handle peaks. Controlling serverless resources in a more fine grained way is a way to use your servers more effectively.