Serverless computing comparison guide: AWS, Google, IBM and…

Serverless architecture market size is estimated to be USD 4.25 million in 2018 and is expected to reach USD 14.93 billion by 2023 at a CAGR of 28.6%. – ReportLinker

The ‘serverless’ in serverless computing is more of a misnomer because servers are indeed an integral part of this technology model. Then, the question comes – what is Serverless computing?

Nearly twenty years back, companies used to manage the entire server-side applications. This included – custom engineered programs, management of data servers, configuration of network switches and power requirements of data center racks.

Things got simplified when the concept of cloud computing came in near 2000, and Amazon created its subsidiary Amazon Web Services in August 2006, followed by the launch of Elastic Compute Cloud (EC2). Companies no longer worried about network provisioning, they could simply rent virtual machines and pay for them per usage.

But still, people thought about their systems in terms of servers which they needed to allocate, set up, deploy, monitor and manage. By 2012, people started to look for ways to manage only the operations and not the servers. Applications were to be thought as distributed logic with externally managed data stores. This described serverless computing. It was termed serverless, not because it did not include servers, but because people need not think about them anymore.

So, serverless computing is an evolution of cloud computing models from infrastructure-as-a-service (IaaS) to platform-as-a-service (PaaS) to function-as-a service (FaaS). It is an abstraction of server, infrastructure and the operating system in a way that you don’t need to manage anything, as your cloud provider does that for you.

It can be understood as a car rental service, where you just use the car to reach your destination and pay for the time you sit in the car. You are not concerned with the cost incurred in manufacturing it or managing it.

Growth of Serverless Computing

Per a report by Cloud Foundry, nearly 46% of the companies are using and evaluating serverless computing in 2018 which is a 10% increase from its last survey.

Source: Cloud Foundry Foundation Report

Serverless computing is primarily recognized for its ability to reduce complexity and help companies develop applications faster than ever before.

AWS released the first serverless platform – AWS Lambda in 2014. Other cloud providers like Google and Microsoft also launched their serverless computing services post that.

Serverless offerings like Microsoft Azure functions and AWS Lambda are seeing a strong growth quarter over quarter. No need of managing infrastructure remains the primary reason for this growth.

Source: State of the Cloud Report by Cloudability

Since all major cloud providers like AWS, Microsoft, Google and IBM have their serverless offerings in the market, the fight for dominance continues. To be able to decide which one is the leader, we will need to understand each offering and draw a detailed comparison chart.

Launch year: November 2014 (preview release), made generally available on April 2016.

What is AWS Lambda?

With AWS Lambda, you can run your code for virtually any kind of application and backend service, without the need of provisioning or managing any servers. You get billed only for the compute time. You will not be charged when your code is not running.

The stateless event-driven compute service by AWS is ideal for applications that don’t require any compute infrastructure provisioning. Thousands of events can run in parallel.

Benefits:

Run codes with complete automation. There’s no requirement to provision or manage servers.

Your applications get high scalability as AWS Lambda is capable to run codes in parallel and process each of them individually.

You are charged for every 100ms your code executes and the number of times a code is triggered. There is no charge when the code is idle.

Source: AWS

The above image depicts the flow of process when a code is run on AWS Lambda.

Popular Use Cases:

It can be used for data processing. A user can trigger Lambda directly by AWS services like S3, Kinesis, DynamoDB, and CloudWatch.

It can be used for real-time data processing immediately after an upload.

With AWS [email protected], you can run Lambda functions to modify content that AWS CloudFront delivers. This ensures that the functions are executed at locations closer to the user. These functions always run in response to the CloudFront events, without the requirement of managing servers or provisioning.

Source: AWS

This improves application performance and reduces latency.

Benefits:

Makes your web applications globally distributed and also improves their performance. Also, as the applications run close to the users, you get to enjoy full-featured and customized content with high-performance.

No need for server management – automatically scale your code up and down, without the requirement to provision, scale or manage servers.

Easily customize the content which is delivered through the Amazon CloudFront. Users can also customize their compute resources and execution time.

Source: AWS

The above image depicts the flow of process in AWS [email protected] when a code is run.

Popular use cases:

Use Lambda function to add HTTP on origin responses without the need to modify application code at the origin.

What is Azure Functions?

Azure Functions is the serverless compute offering by Microsoft that enables a user to run code on-demand. The user does not need to explicitly provision or manage infrastructure. With this, the developers can easily run small pieces of code i.e. functions in the cloud. Developers simply need to write the code, without worrying about the underlying infrastructure.

Benefits:

Simply build apps you need with complete scalability and programming language of your choice, without worrying about infrastructure or servers.

Use innovative programming model for communicating with other services, orchestrating complex workflows or to build HTTP-based API.

What is Azure Event Grid?

Azure Event Grid serverless offering by Microsoft lets you build web applications with event-based architectures. The users simply need to select the Azure resources they wish to subscribe to, and then choose the WebHook endpoint or event handler they want to send the event to.

3. Google Serverless Offerings– Cloud Functions and App Engine

What is Google Cloud Functions?

Cloud Functions by Google is a serverless execution environment that can be used to build and connect cloud services. The code is executed in a fully managed environment, without the need of infrastructure or server management.

You can simply write functions that are connected to events associated with your cloud infrastructure or services. The function will be triggered when an event which is being watched is fired.

Source: Microsoft

The above image depicts the flow of process in Cloud Functions when a function is triggered.

Benefits:

It is the simplest way to run code in the cloud with automatic scaling, fault tolerance and high availability.

You can simply connect and extend your cloud services with the help of Google Cloud Functions.

The entire infrastructure and software are fully managed by Google.

Popular Use Cases:

It can be used to create serverless application backends by simply triggering the code from Google Cloud Platform or calling it directly from any mobile, web or backend application.

What is Google App Engine?

Google App Engine is Google’s fully managed serverless application platform offering. With it, you can build and deploy your chosen applications on a fully managed platform. Applications can be scaled per requirement, without having to manage or worry about the underlying infrastructure.

It supports various popular languages like Java, Python, PHP, C#, .Net, Go, Ruby or custom languages. As there are zero deployment needs, developers can start quickly with app building. They can further use tools like Cloud SDK, IntelliJ IDEA, Cloud Source Repositories, PowerShell and Visual Studio to manage resources from the command line or run API backends.

Benefits:

Zero deployment and configuration needs ensure that the developer can solely focus on building great applications.

App Engine helps the developers to stay productive and agile through various developer tools and support for development languages.

Developers can focus on adding code without worrying about the underlying infrastructure.

Popular Use Cases:

For building modern web applications for quickly reaching out to the customers and the end users.

Source: Google

For building scalable mobile backends

Source: Google

Pros:

No need to buy or manage any server or server space.

It is free up to a certain level of consumed resources.

Cons:

Developers have no control over the environment which sometimes raises the issue of vendor lock-in.

The IBM Cloud Functions is based on Apache OpenWhisk that provides an ecosystem, wherein developers can write and share code across environments. Developers get to execute their code on demand in a highly scalable environment, without any vendor lock-in issues or server management needs.

IBM Cloud Functions as a function-as-a-service (FaaS) supports many application development languages.

Benefits:

Offers an open-ended ecosystem where anyone can contribute their code as the building blocks to the growing repository.

Police say two 19-year-old men, (L) Owen Shearman and Christopher Fetterman, broke into Windber High School, stole various equipment and sprayed a fire extinguisher through the building because, “There was nothing to do in this […]