Most popular for a reason
August 17, 2019
Most popular for a reason
Score 9 out of 10
Overall Satisfaction with AWS Lambda
My team uses AWS Lambda as a deployment target for our serverless applications. We develop them using the Serverless framework (using NodeJS) and deploy them to our company's AWS account. As a result, we don't deal with Lambda very much directly, since it's abstracted away through Serverless. But since it's so integrated into the AWS ecosystem our company uses, it is very practical and enables us to run our applications in a stateless was and not need to worry about scaling.
- It automatically scales up your functions when demand is high.
- It allows developers to focus only on business logic,
- It is very cost-effective, since you're not paying for idle server time.
- There is a lot to configure, as is the case with most of AWS's offerings. I wish it were easier to set up API Gateway with Lambda responders.
- The default logging destination (CloudWatch) leaves much to be desired, and we opted for an external logging tool (Splunk) instead.
- Cold starts are a persistent problem which can be mitigated with a simple cron job but would ideally be handled by the platform.
- It has made our services very cheap to run.
- It has made our services more predictable and easier for our developers to manage.
- It has empowered our developers to focus on business logic.
The usability of Lambda itself is about on par with the rest of AWS's offerings—unintuitive UI, lots of configuration, etc. But when combined with higher-level abstractions and tools, it shines as a simple, default deployment destinations for our serverless applications. Since it's so well-supported by tooling, it's the easiest way to get started building applications in this way.
I have never had to interact with AWS's support directly (which is great!), but the community support for Lambda and the tools that use it is very good. Since it's so popular, there's almost always a solution out there for the problems we have encountered.
Since our company heavily relies on AWS already, my team did not consider any other serverless platforms when building our applications. Lambda was chosen by "default", but it's also such a popular platform that we felt we couldn't go wrong.
For its price, flexibility, and integration with other tools, AWS Lambda is the most popular serverless functions platform for a reason. In my opinion, it's best used as the backing behind some higher abstraction like Serverless or even Netlify Functions, but from what I've seen, it would be a great option even if used directly. In generall, serverless architecture works well for stateless applications, API aggregation, event-driven processes, and where the scale/demand is unpredictable.