Skip to content

How to Evaluate Functions as a Service (FaaS) Providers

Published: at 01:14 PM

There’s a glut of FaaS providers on the market right now. Cloud providers, database vendors, notification services, your plumber (probably): everyone’s doing it. And they’re constantly telling you how great it is.

Needless to say, it’s getting increasingly difficult to untangle this writhing pile of hype beasts. How do you choose between them? On what dimensions should you assess them?

Note: I’m going to try really hard not to talk about specific providers here even though we all know the main players are: AWS Lambda, Azure Functions, Google Cloud Functions and IBM Cloud Functions.

Event Sources (Triggers), Inputs & Outputs

HTTP triggered functions are the bare minimum.

In the ideal FaaS provider, the FaaS offering is maximally integrated with the provider’s other (non FaaS) offerings. It sits, spider-like at the center of a web whose tendrils attach to the providers identity, messaging, storage, analytics and monitoring services (and more). Even better if the FaaS provider allows integration with external alternatives to these offerings.

Maximally Integrated

What does “maximally integrated” mean? It means that if an application developer wishes, items like those on the list below are not only possible but trivial.

This dimension is crucially important because we don’t pick FaaS providers in isolation. The fast time to market and low overhead benefits of FaaS are only realizable when these integrations exist.

Overall Serverless Capability

I’ve written about what it really means to be serverless. Given those defining characteristics, I present to you this hot take prediction:

In five years, most cloud services on most cloud providers will offer a serverless tier.

Messaging services, databases, analytics services, monitoring, identity; all serverless. And not just “managed” either, but fully serverless per the definition in the linked post above.

Why is this important? Because serverless compute is only the beginning. It doesn’t make sense to only scale compute down to zero (to get those sweet savings) when you have to keep your high capacity messaging service , database, monitoring and analytics services running all the time.

The further along your FaaS provider is along this journey: making adjacent services (that should integrate with the FaaS service anyway) also serverless, the better it is for you. You can realize the cost benefits of serverless across most if not all components of your architecture.

Pricing Model

Free executions are table stakes.

This dimension is fairly overrated by many. The truth is most FaaS providers have similar pricing models ((per execution cost + per duration cost) – free executions). In most cases, you’ll save so much on costs compared to non-serverless compute that small differences in cost between the providers shouldn’t faze you.

If you’re past the comparison to non-serverless stage, and need to take advantage of cost savings between providers, the first step is to understand the nature of your workload. Is it made up of tens or hundreds of millions of very short executions? Or fewer, longer executions? Understanding your workload helps you pick which component of the pricing formula to bias for (e.g. execution count vs time)/

Performance

There’s a lot of great content out there about the performance of the different FaaS providers (check out Mikhail’s series on serverless performance). You should have a general idea (from blogs, benchmarks and tests you run yourself) of the basics of FaaS performance, stuff like:

Some other overlooked questions to ask about FaaS performance are:

Language Support & Tooling

You’ll of course want to make sure the provider supports the language(s) you’re interested in and any quirks that language brings to FaaS (e.g. how does being single-threaded affect throughput). Some other important questions to ask:

X Factor

In many ways, FaaS providers aren’t that different. At any one time though, some providers will offer unique FaaS capabilities that the others don’t have yet. These x-factors can be a huge weight on the scales when choosing a provider. Some examples are:

Summary

It’s not easy to evaluate the FaaS providers. The constant jostling for FaaS dollars means the trend is always towards feature parity. But as we’ve seen there are obvious and non obvious dimensions to assess them on.

So go on. Pick one.


Previous Post
Serverless Compute Is Just The Beginning
Next Post
Defining Serverless