‘Serverless’, is a term that has been buzzing in technology forums off late. Though this is not an entirely new concept, it became the talk of the tech when Azure Functions, AWS Lambda and Google Cloud Functions entered with their own serverless solutions.
Serverless computing alternatively called as Functions-as-a-Service(FaaS) enables developers to focus on developing event based application on a function by function basis while it takes complete care of the code: running, deploying and scaling. The term ‘serverless’ should not be taken literally to mean that no servers are involved. The idea it denotes is that with serverless computing developers need not have to fret over conventional infrastructure issues and operational elements such as server maintenance, scaling and provisioning. According to a recent study conducted, there is a stable rise in the usage of serverless products. Though its adoption is not as fast as Docker, the graph of its general usage is rising upwards.
Serverless is an attractive option as it is a viable solution to all the hurdles presented by conventional servers. The never- ending cycle of problems resulting from running a server such as constant updates for fixing bugs and security holes, time consuming configuration and incompatible updates is one among the many reasons that drove major chunk of cloud companies to adopting serverless architecture.
There are a number of serverless frameworks in the market and in this blog, we will do a closed comparison of the three major players in this market: AWS Lambda, Google Cloud & Microsoft Azure. They are being utilized in the backend services of major organizations like Dropbox and Netflix.
What You Should Know About Serverless: AWS, Google Cloud & Azure
‘AWS’ is often thought of as synonymous with the concept of ‘serverless’. This is mainly due to the fact that its launch of Lambda in 2014 is what triggered the ‘serverless revolution’. It was much later in 2014 that Google entered this market with Cloud Functions, closely followed by Microsoft’s Azure Functions.
Lambda is a window to most of amazon’s cloud services. Its integration with Kinesis and S3 Kinesis aids video transcoding & backup and log analysis, which is set off through any tasks in these AWS services. Its integration with DynamoDB supports an additional coat of triggers for actions completed in the external real- time echo system, thus enabling the user to use Lambda for performing data filtering, validation, sorting or any other transformation for data altering and uploading the transformed data to another data store. AWS Lambda can also behave as the complete backend service of a mobile, IoT application or web.
When it comes to price, the user has to only pay for they compute time that they consume. One of the main drawbacks of this is that it becomes an issue for applications created with a serverless architecture in terms of retaining the form of a function. Since the user pays just for the function execution time, the platform has a natural tendency to shut down the functions quickly after they complete their tasks. This poses a problem to developers because functions will not be able to make use of another functions’ knowledge without the help of a third party tool to gather and control it. Amazon recent release, AWS Step functions , comes as a solution to this. It enables the log of the state of every function which means that it can be employed for analysis of root- cause or by other alternate functions.
Microsoft platform was already a host to various serverless services much before the official release of Azure Functions. Its features like platforms as a service(Paas) handled various functions for the user and also permitted them to scale as needed. Developers were given the option of size and pay depending on what processing was required than by the physical resources used. With Azure Functions, Microsoft intended to close the functionality with AWS. However the scope of AWS is much narrower than AWS on the overall functionality; this is because Microsoft lacks Amazons large cloud portfolio.
Microsoft Azure’s cloud function usage is calculated like Amazon: the total bill is made of the execution time and trigger numbers. Like Amazon’s pricing structure, in Azure too the first 1 million requests are free , after which it costs $0.02 for each 100000 execution and additional 40.02 for 100000 GB/s. In 2017 Microsoft acquired a cost enhancing and cloud management software Called Cloudyn. In october of the same year, it launched Azure Cost management which enables the users to track their cloud usage and cost for Azure services as well as other cloud providers like Google and AWS. This assists the user in making better decisions on cloud efficiency and utilization.
Google does not have integration with storage and other important cloud services enables business based triggers. However, the most important problem with Google is that it currently limits projects to having limit of twenty triggers. When it comes to cost, Google is the most expensive. Its prices are double that of AWS and Microsoft after one million requests, that is $0.04 for 100000 invocations and 40.04 for 100000 milliseconds.
By far, AWS Lambda is the most preferred serverless framework. This can be because of its large product portfolio. What should be remembered when it comes to serverless is the availability and consumption of other facilities within the cloud provider ecosystem; it is impossible for Google and Microsoft to rival AWS in this regard. However, users should also remember that all these three are currently in a stage of evolving.