2 min read

Stop talking about how serverless can scale

Stop talking about how serverless can scale

It feels like way too many blogs about serverless can't end without mentioning its ability to scale. By any measure I'm a serverless zealot, but even I don't think this is something that should be focused on. While its ability to scale is definitely true, in almost all cases it shouldn't be the reason why you choose serverless.

It's gotten to the point where I specifically avoid mentioning scale when I'm working with new teams and customers unless they bring it up, because it just doesn't matter for most applications.

Is scale really an issue with your internal-facing application, at a business that's got less than 1,000 staff? Even 10,000. You don't need serverless to serve that up.

For the vast vast majority of applications out there, scale is the least of your problems. And if my some miraculous chance it becomes your biggest problem, great! You've found product/market fit, you have customers, it's happy days! But spending time up-front architecting for that scenario as a priority is wrong.

Just look at any of the largest websites and applications you care to name. Do they look like they did in the early days of their development? Extremely unlikely. Did they preemptively architect-away their scale problems? Probably not. Was it a bad thing that stopped them from being successful? I'm sure it caused them pain, but also sure they dealt with it!

The idea that you would be able to accurately predict what the problems of your application at scale is about as true as your ability to predict the future in any area.

Even if you somehow did predict the exact way that your application will have issues at scale, all that means is that the bottleneck would move to some other component; after all, a chain is only as strong as its weakest link.

I'm not disputing the fact that serverless solutions have great ability to scale. It's true, they do. For completeness, I'd want to point out that sometimes that's a bad thing, because scale doesn't come without cost. A poorly architected solution on serverless will totally scale up to a ridiculous amount of activity (intentional or otherwise), but that still doesn't make it good.

What happens if you get DDoS'd? Do you really want to service all that garbage traffic as fast as possible? Probably not. I sure don't want to pay for it!

The reason you should be choosing serverless is because it represents the commoditisation of compute. It is currently the most accessible and flexible way to avoid doing the "undifferentiated heavy lifting" of running applications on servers.

If that's not your deciding reason for going serverless, then I think you need to reconsider your reasons, or your choice of solution.

Photo by i yunmai on Unsplash