My experience with single-function lambdas in JS was very positive, because they're quick to run and don't consume too much memory. They're also quicker to write and to publish, IMO. Some apps are virtually free to run.
Bloated-but-low-traffic enterprise apps are also a good fit, because the low traffic offsets the memory/execution time. I think Microsoft is in a great position here, because of Azure.
Customer facing app using an MVC framework? No way. Even Heroku can be 100x to 1000x cheaper.
[1] Here's a calculator: http://serverlesscalc.com
The lines will always intersect at some point, but depending on your load the intersection point will often be too far away to care. The costs of devops and maintenance and scaling will also drive the AWS line higher and the intersection point further away.
It just feels like silly buzzword garbage that locks you in further to AWS.
- virtual machines abstracted away physical hardware administration
- containers abstracted away the operating system administration
- FaaS server-less abstracts away the container and/or container orchestration
It's similar to buildpacks on Heroku. How are they all that different from containers? Well, Heroku runs buildpacks in their own container system, so they're not much different, but Heroku can more easily control updates to packages and the base OS of their containers by not allowing you to run arbitrary container images.
In the end, I think of these as higher level abstractions, often building upon containers, but not allowing as much flexibility so the "serverless runtime" can optimize more things.
Serverless means you don't need to think about scaling and managing a cluster
Another point of contention in my view is the fact that either they'll lock it down like they do on those online "computing environments" where you can't do any low level stuff or any networking (like IDEone, etc), or it'll be too open and thus you can use it to spread malware, or run DDOSes.
I guess that it makes sense that such an offering is present in the modern ecosystem among many other offerings but other than the interest of completeness, I don't really see the value-add. But I'm just a random engineer on the internet, I probably am not representative of all potential use-cases
I used it on a project last year, with AWS Lambda, not really impressed, specially the whole workflow.
You either use a bare bones IDE, or need to integrate AWS Shell into your CLI, with basic zip as packages build by yourself, including handling third party dependencies.
No debugger integration beyond plain old console.log().