It could be tough to make the right choice with so many serverless offerings available in the market. Making an apple to apple comparison is challenging because each serverless platform has its own operational characteristics like the way serverless functions are invoked and are billed. In this article Amazon Web Services, Google Cloud, and Microsoft Azure, the three major cloud service providers will be discussed. A winner will be determined as a result of the comparison of each one against the others based on four criteria: cost, ease of integration, the number of services as event source and destination, and industry adoption metrics.
Looking at the Panorama
Based on the criteria mentioned above, there are not more than a handful of serverless providers in the market. We will be discussing the most popular three of them.
The first and oldest one is AWS Lambda. It was released in 2014 taking the advantage of being the first revolutionary offering for cloud users. AWS Lambda integrates with many AWS services in a wide spectrum of capabilities. S3 executions based on file upload characteristics can be integrated into Lambda service as well as simple HTTP-driven events. A lot of companies prefer to use AWS serverless services to keep all of their infrastructures in one place, as Amazon Web Services controls roughly approximately 40 percent of the cloud market.
We are going to examine Google Cloud Functions next. Google Cloud Functions runs on the Google Cloud Platform (GCP) which was released to general availability in 2018, after a long time being in beta. Similar to AWS, some integrations are available for Google Cloud Functions for triggering purposes, from simple HTTP calls to complex jobs driven by Cloud Scheduler and Cloud Tasks.
Microsoft Azure Functions is the final serverless service that we are going to look at. It got on the stage in 2017, one year earlier than Google Cloud Functions. Microsoft Azure Functions was in a beta period for a long time. It is obvious that Microsoft enhanced the integrations between Azure Functions and the rest of the Microsoft Azure platform during that beta period. Microsoft offers extensive notes and documentation, and depending on the version you are running, will allow multiple different services as triggers, input sources, or output sources.
Microsoft and Google comparison
We are getting started by comparing Microsoft Azure Functions against Google Cloud Functions. Both of the cloud vendors offer scalability within the functions that scale up to meet the capacity needs of your serverless applications. We need to take a look at a few specifics like function execution times, ease of setup/integration, and pricing.
For most public cloud services, the infrastructure-based execution times are comparable. For example, the cold start times are similar in Microsoft Azure Functions and Google Cloud Functions, with similar amounts of overhead, and the gap has only grown smaller since 2017. Google Cloud Functions had an advantage over Microsoft Azure Functions was in ease of setup. While Microsoft Azure Functions features great flexibility in configuring new items, Google’s UI showcases its origins as a web-first company, with intuitive user interface flows and easily understood options.
Similar billing is applied by Microsoft and Google on the resources used from the pricing point of view. Both of the cloud vendors have a generous free tier that can easily fill the needs of individual developers. Both Microsoft and Google bill around $0.000016 per GB-sec and GHz-sec with usage-based billing. So ultimately the choice of platform is going to be driven by the degree to which you consume related services. Each of the cloud vendors offers a similar number of service integrations, so unless you are planning to implement a multi-cloud approach, it depends on the option that exists on your current infrastructure provider’s platform to make the right choice.
Microsoft and AWS comparison
In this section, we compare Microsoft Azure Functions against AWS Lambda. Similar to AWS Lambda, Microsoft Azure Functions offers a number of different run-times and machine configurations that determine the final resources dedicated to your application. On an operational basis, it is difficult to distinguish the two services with similar cost structures (both services target $0.000016-$0.000017 per GB-second), In the user interface, Microsoft has a bit of an edge as well, as their flexible configuration file format gives you more control over the containers running your functions than you would have received on a similar Lambda function in AWS.
However, AWS Lambda has a number of benefits that Microsoft Azure simply can’t match. The benefit of the platform’s age is evident in the comparable maturity of the toolchain while function execution times and cold-start delays are roughly equivalent. Tools like provisioned concurrency and AWS SAM provide a layer of configuration and complexity management that greatly eases the challenge of working with a serverless application, at no additional cost. Leading to more efficient organization, the progress AWS has made in this realm has mostly closed the gap while Microsoft has arguably done a better job of presenting its functions as part of a larger application.
Google and AWS comparison
The comparisons come to an end in this article with the Google Cloud Functions and AWS Lambda comparison. As mentioned above, there is not much of a huge difference between these three cloud providers. They are almost equal to each other in execution environments, tertiary-service integrations, and even cost levels. That being said, the true differentiators are hidden in the secondary characteristics. Some can say that Google’s configuration flow is more user-friendly than AWS, but this user-friendly approach points the way to its users how to use the platform in the best way.
The approach of Google Cloud Functions guides you to spend most of your time in the UIs, while AWS Lambda leverages automation with tools like CloudFormation that give your developers the option to take an infrastructure-as-code approach, clearly improving ownership and maintainability of your application architecture.
The third-party support is the final differentiator in this comparison. Just because of the size of the ecosystem that AWS has, the variety of third-party tools available is simply greater in the AWS ecosystem than it is for Google Cloud. Your dashboards and monitoring efforts will be limited to the tools available in your provider’s stack without adequate third-party tooling, some of which can be complex to decipher. Third parties like Thundra (working only on AWS for now) add an additional layer on top of these provider-specific interfaces, filling holes in the information flow that would otherwise require custom pipelines to fix.
AWS is recommended
Almost all of the examined serverless cloud providers are providing similar capabilities with limited feature differentiation. One of the most important factors for the users is the cost and when we compare these vendors from the cost perspective, there is not much of a vast difference. Also the execution statistics are close to each other among the three serverless function providers. Thus, for most serverless applications, choosing the “right” provider may simply be a question of how deeply you are already tied into an infrastructure services platform. If your applications are running on Google Cloud already, then it would make sense to look to Google Cloud Functions as a potential first option when building your serverless functionality.
Third-degree characteristics of the cloud vendors come into play while deciding for a serverless function provider for those applications which you have the flexibility to choose the “right” platform. We recommend AWS Lambda as your serverless function provider in such cases. The maturity of AWS Lambda and the ecosystem that surrounds AWS gives a noticeable advantage for the business owners and software developers. The third-party ecosystem differentiates tremendously when compared to Microsoft and Google in terms of usability.
You can enhance the observability, debugging, and troubleshooting capabilities of your applications by leveraging the third-party ecosystem if you use AWS. Thundra is one of the tools that give a comprehensive view of your cloud applications, providing insights beyond the native dashboards that can be critical when monitoring your application’s behavior. Coupled with a significant market share and the ease of integration with services like Route 53, API Gateway and S3, AWS is a clear winner in the third-party ecosystem department and it can help take your application to the next level.