Choosing the right cloud provider — a Serverless Cloud Atlas

Ben Ellerby
Serverless Transformation
4 min readSep 6, 2019
Title image “Cloud Atlas. Serverless”. Showing the outline of a paper map.

When it comes to architectures, a serverless one has the tightest coupling to the underlying cloud provider. Moving away from containerisation comes at the cost of portability and leveraging so-called “cloud-native” services (e.g. AWS SQS) builds further into vendor lock-in.

This is not to say serverless architectures are bad! As you can tell from the URL of this page, I’m a big advocate of them due to their scalability, reduced ops, reduced cost, reduced energy consumption and the way in which they allow developers to focus on writing code that is of business value by using services where possible. (Yes, we get it, you like Serverless!)

Caution must be taken in choosing the right cloud provider for your use case. For instance, Google Cloud Platform (GCP) has some machine learning capabilities that are first in class while AWS has application infrastructure services that are not present elsewhere. And of course, multi-cloud hybrids are a growing trend.

How to compare

For some companies, the decision will in some part be based on existing service agreements and internal politics (nobody got fired for choosing ‘Microsoft’), whereas for newer startups the decision will be more objective around feature sets.

In this article, we will make an objective comparison based on a matrix of different characteristics and capabilities.

Which clouds to include?

Using the Cloud Native Computing Foundation Survey from August 2018, it's clear from the question “Which hosted serverless platforms does your organization use?” who the current market leaders are:

  • AWS
  • GCP
  • Azure
Source: CNCF 2018 Survey

Note, this comparison is not taking into account self-managed serverless solutions such as Kubeless, OpenWhisk or OpenFaaS.

Comparison Matrix

The comparison of cloud providers should not rely only on their FaaS offering. Good serverless architectures also make extensive use of the cloud provider’s supporting services (e.g. SQS, Cognito, Step Functions in AWS). Yet, of course the quality of the FaaS is a core aspect and can imply the serverless readiness of other services.

Scale

  • 1: Poor
  • 2: OK
  • 3: Good
  • 4: Great
+------------------------+------+------+-------+
| | AWS | GCP | Azure |
+------------------------+------+------+-------+
| FaaS Since | 2015 | 2018 | 2016 |
| Cold Start Time | 4 | 2 | 1 |
| Latency | 4 | 3 | 1 |
| Availability | 4 | 4 | 3 |
| Runtime range | 4 | 3 | 2 |
| Frameworks | 4 | 2 | 2 |
| Community | 4 | 3 | 2 |
| Permissions Support | 3 | 2 | 3 |
| Function Trigger Range | 4 | 3 | 3 |
| Logging | 3 | 4 | 3 |
| Max # Functions | 4 | 3 | 4 |
| Developer Experience | 2 | 2 | 2 |
+------------------------+------+------+-------

Please suggest improvements by raising an Issue or PR: https://github.com/BenEllerby/serverless-provider-comparison/blob/master/README.md

The background reasoning on each of the above scores will be explained in a future series of articles keep things concise.

And the ‘winner’ is?

It’s clear that AWS is coming out on top by the above comparison, followed closely by GCP and then Azure.

This is not surprising, they were ahead of both GCP and Azure in releasing their FaaS solution, Lambda. Therefore they have had both more time to develop it further and captured a big share of the developer community, meaning tools and services support AWS first (e.g. logging providers Thundra and Lumigo — which actually solve the lower score on AWS logging caused by the clunky UI of CloudWatch). On top of this, AWS is also leading the way in event-driven services, which are a key component to moving to a 100% serverless stack.

In Conclusion

Any of the top 3 players are obviously going to provide good functionality for most uses cases and the future is likely multi-cloud, using the best provider for each service.

For now though, AWS has a big head-start, a larger community and the best in class serverless experience. AWS is my current recommendation to any company I help building with serverless and is our standard choice at Theodo.

Please suggest improvements by raising an Issue or PR: https://github.com/BenEllerby/serverless-provider-comparison/blob/master/README.md

--

--