Sign up for a live Kubernetes or DevSecOps demo

Click here
Back to blog results

September 26, 2019 By Sumo Logic

Serverless Computing for Dummies: AWS vs. Azure vs. GCP

Serverless computing is the latest, greatest thing in the technology world. Although the serverless concept has been around in one form or another for more than a decade, the introduction of serverless platforms from major cloud providers—starting with AWS Lambda in 2014—has brought serverless mainstream for the first time.

The fact that so many serverless solutions are now available—including those from AWS, Azure and Google Cloud Platform—is great if you like choice. However, it can also be hard to keep track of how many serverless computing services are now out there, and to decide which one is best for you.

Toward that end, this article identifies the major serverless computing platforms available today, with a focus on those from AWS, Azure and GCP.

What Is Serverless Computing?

Serverless is a way to deploy applications by running functions on-demand. The major advantage of serverless is that it allows an application, or part of an application, to be executed whenever it is needed, but without requiring an execution environment to be running constantly.

In this way, serverless execution models can help to save money. Rather than maintaining a server 24/7 (but only using it part of the time), organizations can deploy code in a serverless environment and pay only for the resources that they actually consume.

Serverless Computing on AWS

Although statistics on serverless computing market share are elusive, AWS Lambda is probably the most popular serverless computing platform at the moment.

Lambda was the first serverless framework to become available from a major public cloud, and it helped to popularize serverless architectures.

Lambda supports the execution of functions written in Node.js, Python, Java, C#, and Go. Lambda functions run on shared servers, but each execution environment is isolated; in this respect, Lambda offers similar privacy and security to standard EC2 virtual servers.

Functions that are executed on Lambda must be stateless, which places some limitations on the types of workloads that can be run on AWS’s serverless platform. However, Lambda code can access persistent storage services on other parts of the AWS platform, such as S3. For non-permanent storage, Lambda provides 500 megabytes of scratch space in a /tmp directory.

Should you use AWS Lambda? If you already use other AWS services, Lambda can be a good option. It also helps that Lambda is the most popular serverless solution at the moment, which means it is easy to find documentation and third-party integrations for it. On the other hand, the list of languages supported by Lambda is a little shorter than that of some other serverless services.

Serverless Computing on Azure: Functions

The Microsoft cloud’s answer to AWS Lambda is Azure Cloud Functions, which became generally available in late 2016.

In general, Azure’s serverless platform offers similar functionality to Lambda. However, key differences include:

  • Support for a broader range of languages, if you include those that are available with limited support. C#, Javascript and F# are currently fully supported on Azure Functions, while Java, Python, PHP, TypeScript, Batch, Bash and PowerShell are available in experimental or preview modes. This makes Azure’s list of supported languages for serverless longer overall than that of AWS Lambda, although the list of available languages is shorter.
  • The ability to create and execute stateful serverless functions using the Durable Functions feature on Azure. (Durable Functions is currently available with preview support.)

Like Lambda, Azure Functions is a mature, widely used serverless platform. If you prefer the Microsoft cloud over AWS, there is no reason not to use Azure Functions, as long as it offers support for the languages you need.

Google’s Cloud Functions Serverless Platform

In a certain respect, Google was ahead of the crowd when it comes to the serverless revolution. Although Cloud Functions, Google’s main serverless platform, debuted only in February 2016, Google App Engine offered metered billing for certain applications starting in 2008. App Engine’s functionality in this respect was much more limited than that of modern serverless platforms, but it was nonetheless a precedent to services like Lambda.

Google Cloud Functions’s biggest differentiator from Lambda and Azure Functions is that JavaScript is the only supported language on Google’s serverless platform. That said, it is possible to execute other languages, such as Python, using third-party wrappers.

Google Functions is currently more basic in other respects, too. It doesn’t support environment variables, and access controls cannot be configured at a granular level.

In general, Google Functions is a less mature serverless framework than the serverless platforms from AWS and Azure. However, it is sufficient for certain workloads, and it is likely that Google Functions will continue to expand its feature set and supported languages going forward.

Other Serverless Computing Options

The serverless platforms available from AWS, Azure and Google Cloud Platform are by no means the only ones out there. Another option is Fn, which supports serverless computing both in the cloud and on-premise. For its part, IBM offers OpenWhisk. And it’s a safe bet that other vendors will be rolling out additional serverless solutions as the serverless computing market grows ever larger.

Lambda

Azure Functions

Google Cloud Functions

Directly supported languages

Large selection

Largest selection

Minimum selection

Stateful function support

No (but can access other AWS storage services)

Yes (via Durable Functions)

No

IAM configuration

Granular

Granular

Basic

Maturity

Generally available

Generally available

Beta

Complete visibility for DevSecOps

Reduce downtime and move from reactive to proactive monitoring.

Sumo Logic

More posts by Sumo Logic.

People who read this also enjoyed