4 ms·
"Serverless" such as AWS lambda removes the ability to take advantage of so many Computer Science principles that are integral to writing a fast backend. From o
by caleblloyd 10y ago
"Serverless" such as AWS lambda removes the ability to take advantage of so many Computer Science principles that are integral to writing a fast backend. From one request to the next there is no CPU cache optimization, in-memory caching, and no IPC to other useful programs.
Serverless has it's niche for some tasks such as responding to events, but to do any heavy lifting I'd take a handful of beefy VMs over unlimited lamda functions any day.
- deleted 10y ago[deleted]
- paulftw 10y agoThis is based on the assumption that server without those optimizations is not fast enough. That used to be definitely true in the nineties, but hardware is getting faster while human reaction time stays relatively flat. Hardware is also getting cheaper, so throwing a beefier server is a much easier and better solution than investing months of error prone and non-scalable human labor. Everyone is ditching those beautiful and smart CS principles on FE by switching to hybrid apps, walking entire DOM on every update, etc. There's no reason same wouldn't happen on backend. In fact it already has - interpreted languages, GC, micro services. For better or worse progress in software always meant worse efficiency, because hardware was always forgiving that.
- GrumpyYoungMan 10y ago>hardware is getting faster Considering that the end of Moore's Law is more or less here already, as pointed out in many HN articles, that's really no longer something we can take for granted.
- paulftw 10y agoMoore law != progress
- caleblloyd 10y agoIt matters a lot! 1. Response time. A dedicated machine that stores state in-memory from request to request can respond orders of magnitude quicker than one that does not. 2. Resource Efficiency. 1-2 machines running optimized code will cost less than the 10-20 machines (or 100-200 machines) the cloud provider will have to allocate behind the scenes to run less efficient code.
- Jtsummers 10y agoI only dabble in server stuffs, but I have to ask: Why is that a problem? You can design a system and implement it with AWS Lambda (or similar) and a few other things like their (or another) database, message queue, and data storage. Then, when you find that you've got processes that are bottlenecked by this, move them into dedicated servers or containers with faster routines. Just like we already do when pairing (possibly) slower but higher-level languages with C libraries.
- karma_vaccum123 10y agoPaaS vendors will optimize the hell out of their higher-value services, with dedicated and possibly customized hardware and networking.