Serverless architecture: What, why and how?
Serverless computing, or simply serverless, isn't new to the world of cloud-based application deployment, but it has reached a peak in its evolution.
In this post, we'll dig into concept basics to help you decide if serverless technology is right for you.
The current state of serverless architecture
In a recent report, Flexera found that the serverless architecture penetration level has increased to 75 percent. As the battle for clients heats up, more providers are developing their own platforms.
The new serverless camp is dominated by the "Big Three" — Amazon (the domain's trailblazer with its AWS S3 in 2006), Microsoft, and Google.
According to the Digital Ocean survey, AWS Lambda was chosen by 58 percent of respondents. Google Cloud ranks second with 23 percent, followed by Microsoft Azure.
The roster of serverless architecture providers is also expanding through Alibaba, IBM, and Oracle. Likewise, pen-source projects such as Apache OpenWhisk and Kubeless are bringing serverless technologies on-premises.
Serverless architecture: The technical perspective
What is serverless computing?
The notion of serverless doesn't mean no servers. On the contrary, servers are still used, but developers leave the infrastructure headaches to the cloud provider. The serverless model is auto-scaling, which empowers users to utilize applications despite increasing workload.
How does serverless work?
In a traditional layered architecture, components are organized horizontally. Each layer performs a particular task (for example, presentation or business logic) and forms an abstraction around the work that should be done to fulfill specific requests.
Serverless computing is considered a new generation of Platform-as-a-Service (PaaS) and is sometimes called Function-as-a-Service (FaaS). While PaaS abstracts the infrastructure and the operating system from you, FaaS decomposes the applications into sets of functions that are triggered by events or HTTP API requests.
The traditional service delivery model can fit the serverless stack.
Serverless computing architecture includes the following three core elements:
1. API Gateway — The API Gateway is the bridge between the frontend and the serverless functions (FaaS) layer. It maps the incoming HTTP requests parameters to the inputs for the FaaS function. Then, the API gateway transforms the response received from the function, converts it into an HTTP response and returns this response back to the caller of the API gateway.
2. Function-as-a-Service (FaaS) — The FaaS layer runs user code (or specific business logic) in the form of functions, nailing operational concerns such as resource auto-scaling, traffic routing, and log aggregation.
3. Backend-as-a-Service (BaaS) — This is a cloud-based distributed database that helps eliminate administrative overheads. The BaaS feature embraces cloud storage, push notifications, server code, and more.
Serverless srchitecture: Business perspective
Companies are beginning to see serverless computing as a new way of solving business problems. Here's why.
Will you go serverless?
Serverless is a relatively new technology with certain challenges, including lack of control, vendor lock-in, cold start issues, multi tenancy problems, and others. However, we will definitely see more developer momentum in this area in the near future. This view is backed by multiple predictions that the serverless market will grow from a $1.88 billion market in 2016 to $7.72 billion by 2021 (411%, by the way.)
Serverless computing is often used for real-time streaming data processing and developing image-rich applications, virtual assistants, chatbots, and websites. Its alliance with edge computing and IoT connectivity could also have a huge impact across industries.
Not all applications and services can be delivered within a serverless model. But at Vention, we help serverless really take hold. We ensure that the optimum architecture is in place and nail the whole development process to make your solution stand out, but fit in. Just tell us about your project!