If you’re looking into serverless computing, you need to compare the major competitors. In this serverless computing comparison guide, we’ll take a look at AWS Lambda, Microsoft Azure Functions, and Google Cloud Functions to determine the advantages and disadvantages of each product and find the best option for you and your company.
What is serverless computing?
If you don’t know much about serverless computing yet, it’s time to learn. Of course, this type of computing still uses servers. However, the difference is that the clients and developers don’t have to focus on operational details, infrastructure issues, or other server-related problems. Instead, they can simply focus on the code and desired outcome.
AWS led the pack in the serverless shift, releasing Lambda in 2014. Shortly following that was Microsoft Azure Functions, and then in a distant third place came Google Cloud Functions.
While serverless computing isn’t a brand-new phenomenon, particularly in the quick-paced technology sector, it has only been around for a few years. The adaptation rate is slower than many other new technologies: Only about 30 percent of respondents to a recent DevOps Pulse survey have actually begun using serverless computing.
However, this number is ever-increasing as more developers and companies see the benefits of serverless computing and not having to think about managing the actual servers. DevOps teams can focus all of their effort on creating and improving code rather than deploying, provisioning, managing, and scaling the servers.
If you’re afraid that serverless computing can’t handle the intricacies of your solution, you likely have nothing to worry about, with large corporations such as Netflix, Dropbox, and more utilizing them.
Serverless computing comparison guide
Lambda offers integration with their popular S3 and Kinesis offerings as well, so you can trigger log analysis, image processing, and backup, and more, through these services. Additionally, “The DynamoDB integration adds another layer of triggers for operations performed outside the real-time echo system.”
One of the best aspects of AWS Lambda is that it can act as the full backend service of many different types of applications, including web, mobile, and IoT apps. It functions by receiving the requests from the client through the Amazon gateway. Amazon then converts the requests to API calls that later become predefined triggers that call certain functions.
One of the reasons that more developers and companies are switching to serverless computing, beyond the simplicity and ease, is the cost savings. Like many AWS services, costs are determined based on execution time. Your first 1 million requests are free, and every 1 million requests after this cost $0.02 including requests and compute charges. More info on their pricing is located here.
While this seems like nothing, request numbers can rise well above your expected amount if execution time exceeds your goals, greatly increasing the cost. This is why it’s very important to invest in log and metric tools for any serverless architecture. With this, you can have both simplicity and cost savings.
A couple years after Lambda was created, Microsoft released Azure Functions. It was released almost two years ago, in March 2016, but Microsoft is working to catch up to AWS Lambda. However, it doesn’t yet offer the full range that Lambda does.
Yet, with Azure Functions’ integrations and functionality, it’s still a worthy competitor. Azure Functions gives developers many language possibilities, saying that you can "write functions using C#, F#, Node.js, Java, PHP, batch, bash, or any executable."
Increasing the convenience, Azure does offer out-of-the-box integrations with GitHub, Bitbucket, and VS Team Services, so you have an easy setup and deployment of code. Microsoft has also added their Logic Apps that are meant to help less technical users define and “manage data processing tasks and to set workflow paths.”
Your code can be triggered several ways in Azure Functions, including timer-based events for schedule tasks or a configuration through OneDrive or SharePoint that triggers operations in Functions. In fact, “Common triggers for real-time processing of data or files add the ability to operate a serverless bot that uses Cortana as the information provider.”
They offer a similar pricing based on the number of triggers and execution time, with the first 1 million requests free and the following 1 million executions are $0.02. More info about their pricing can be found here.
As explained previously, monitoring is extremely important for serverless computing. Because of this, Microsoft purchased Cloudyn as a cloud management and cost optimization software producer to help businesses fully monitor their resources efficiently.
Google Cloud Functions
Google Cloud Functions is still lagging behind Lambda and Azure Functions. While their Alpha was released in February of 2016, the Beta release wasn’t until March 2017, and since then, Google hasn’t added many additional features.
Currently, it only supports a NodeJS runtime environment and only triggers events on Google’s internal event bus, Cloud Pub/Subtopics. Google puts a lot more effort into their Firebase service, which triggers mobile events; HTTP triggers are also supported.
According to Google, you can use your preferred programming language on the Cloud Platform, including Go, Java, .NET, Node.js, PHP, Python, and Ruby.
One of Google’s main failings is that it doesn't offer many integrations. Additionally, while Google does offer Stackdriver for monitoring, it isn’t a fully functional metrics tool.
Offering the least amount of triggers, runtime environments, and integration, it also charges the most. It also offers 1 million free requests, but it charges $0.04 for 1 million invocations and an extra $0.04 per 100,000 milliseconds, although it's pricing varies. More info can be found here.
Unfortunately, Google Cloud Functions still isn’t a strong option.
Which to choose?
Well, in our serverless computing comparison guide, we’ve established that Google Cloud Functions is currently out of the running. However, if you want to increase simplicity while decreasing costs, both Azure Functions and Lambda are good choices.
If you want to see estimated costs, check out the Serverless Cost Calculator. The importance of choosing between Azure Functions and AWS Lambda really comes down to how many other services are available in the same ecosystem.
AWS offers the widest range of products and services, meaning that the majority of customers lean toward using Lambda. However, Azure is a very close second, so if you use more Azure products and services, this should be your choice. Yet, as this is still a relatively new technology, each still has its problems and bugs.
The bottom line is that if you predominantly use AWS services, choose Lambda, whereas if you mostly utilize Azure, select Azure Functions to see the benefits of serverless computing.