Is Serverless *Really* For Everyone?

A snake for the 'scaling' problems Serverless is supposed to resolve

So, the backlash has come. A few years ago, when you said the word ‘monolith,’ the next most likely phrase was ‘migrating to microservices.’ Now some teams are talking about how moving away from [microservices to a more monlithic approach to a codebase has some advantages:

Scaling up the Prime Video audio/video monitoring service and reducing costs by 90%

After this Prime video story was shared by Kelsey Hightower, product manager Max Andrews had some choice words about the usability of serverless functions.

twitter conversation

What starts as a very broad statements that Serverless isn’t really good for large data apps, becomes quite specific: the issue is cold starts with large data load times. Both of these problems seem controllable: cold starts can be handled with provisioned concurrency, and a data-intensive app doesn’t necessarily mean loading a bunch of data at Lambda start time.

Hightower makes a great rebuttal: Serverless is more than FaaS

Cloud Run and similar serverless compute platforms, not necessarily FaaS, aim to challenge this assumption.  Even monolithic applications can benefit from a serverless platform.

The clean scaling of Serverless doesn’t have to imply that you’re using serverless as your main compute platform, or that your serverless workload needs to scale to zero.

The very smart Marco Rogers makes a great point that while scaling was a superpower of serverless at the beginning, that may no longer be a huge differentiatior:

I don't think scaling rps is the same problem it was. Even monoliths can do it. The challenges in modern products are a bit different. How do you see the benefits of serverless outside of scaling requests?

This forces us to confront the question: what is Serverless truly good for? An ability to scale up and down is hugely important but it’s not everything. While Amazon Prime may be celebrating their moving away from serverless, that smooth scaling sure would have helped Netflix recently.

Screenshot 2023-05-14 at 9.09.28 AM.png

However serverless is more than just scaling! (As pointed out by Kelsey Hightower).

The core concept of Serverless, that all your code runs in a single codified environment, is an incredible strength and has the potential to improve how your code runs. But that’s not everyone’s experience, and that standardization isn’t forward as one of Serverless’s key benefits.

So is serverless for everyone? Yes, in some application. Will all compute run serverlessly in 2025? No. But all teams will have a use for the technology. Further, Serverless is much more than AWS Lambda. Both Cloud Run and Vercel are showing real potential as new, very popular platforms for running code.

Serverless is a powerful technology that can provide a lot of benefits, but it may not be the best choice for every application. As the backlash against serverless grows, it's important to remember that there are use cases where it's the perfect fit. The key is to carefully evaluate your specific needs and requirements before making a decision.

The elephant in the room: Dev and testing

In my own experience with serverless, the real problem was actually the 'development loop' or the time from writing code to trying it out. Waiting those crucial five minutes for a function to update killed developer velocity. While Signadot isn't a tool aimed at serverless developers, we have built something that massively increases dev velocity by letting you share a single cluster for testing. Try it out today!

Join our 1000+ subscribers for the latest updates from Signadot