We use Lambdas as the primary deployment mechanism for our APIs. It provides flexible ways to deploy without worrying too much about infrastructure, server resilience, or load.
Pros
It scales automatically with demand.
It reduces operational overhead significantly.
It integrates seamlessly with other AWS services.
It provides easy ways to deploy and get to prod.
Cons
Cold starts are still a pain sometimes.
Deployment can feel clunky. The zipped files can still become really bulky and fail.
Local debugging isn't always straightforward; it's challenging to set up on my machine for dummy Lambda instances.
Likelihood to Recommend
Lambda excels at event-driven, short-lived tasks, such as processing files or building simple APIs. However, it's less ideal for long-running, computationally intensive, or applications that rely on carrying the state between jobs. Cold starts and constant load can easily balloon the costs.
We use AWS Lambda as a microservice platform where we off-load a large number of our common services to the serverless cloud. We have had workloads that have run for years on the platform without issues, and it has allowed us to focus on other areas of developing versus just maintaining code and servers.
Pros
Reliable for low workloads.
It's an easy entry point for development.
Quick speed to market.
Cons
It would be good to have more distribution about upgrades or changes to the platform.
A little more documentation on the nuances of the offered supported languages.
A little more portability of some of the code once you've developed it from other cloud platforms.
Likelihood to Recommend
AWS Lambda is great for atomic micro services and being leveraged as a conduit for other Amazon services. It's great for a quick way to innovate other resources that you already have on the platform. It marries well with the ecosystem and allows for easy deployments and updates to the program based on the tools.
VU
Verified User
Manager in Information Technology (10,001+ employees)
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.
Pros
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.
Cons
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.
Likelihood to Recommend
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.
VU
Verified User
Contributor in Information Technology (10,001+ employees)
We use AWS Lambda to efficiently auto scale our NodeJS-based infrastructure without the overhead of needing to manage virtual machines or worry about capacity planning. Additionally, we don’t need to manage security patches for the OS because there is no OS to worry about!
Pros
Auto-scaling.
Scale to zero.
Quick function startup.
Cons
Less vendor lock-in.
Better integration with community tools like OpenFaaS.
Improved cold start times.
Likelihood to Recommend
AWS Lambda is great for distributed systems in which scaling of independent components is critical and you don’t want to manage the overhead of needing to maintain a fleet of virtual machines.