Serverless has been getting more popular nowadays as cloud technology continues to become more and more widespread.The purpose of this blog is to provide a high level overview of the Serverless Computing without going into much technical details.
Serverless Definition: Serverless is a cloud architectural model where the cloud provider dynamically manages the allocation , provisioning and maintenance of servers.Pricing is based on the actual amount of resources consumed by an application, rather than on pre-purchased units of capacity. The availability of a Serverless system is not charged, it is available all time at zero cost and the user only pays when it actually uses the system.
Serverless allows applications to be developed without concerns of scaling or maintaining servers.
Please refer below diagram. Functionality like Authentication Service,DB,File Storage and Reporting are getting handled by Serverless platform.
Source : https://www.msystechnologies.com/
Before we discuss more on Serverless , we need to understand couple of concepts like Multi-Tier Architecture and Functions as a Service. This will help us to understand benefit of Serverless.
Multi-tier architecture is a client–server architecture in which presentation, application processing and data management functions are physically separated. The most common use of multitier architecture is the three-tier architecture. Three-tier system consists of a database tier , an application tier (business logic) and a client tier (interface functionality).Let's consider a example of simple web application like online book store. Simple architecture diagram looks like below:
So if we think of basic functionalities of this website, authentication, page navigation, searching and transactions, these are the main functions. Now these all four functionalities can be replaced by server-less architecture. Please refer below diagram for very simple Serverless architecture for such web application.
Simple Serverless Architecture Diagram of Web Application.
Function as a Service: Function as a Service is an implementation of Serverless architectures. This is where developer can provide code and execute it without need for infrastructure creation or configuration. Developer can simply upload modular chunks of functionality into cloud and that can be executed independently.
Key properties of FaaS:
Event-triggered: We don't need to run our applications and wait for a response.Application only exists when it is triggered and the trigger is an event, we can define.
Containers: Once triggered, a generic container runs the code.
Ephemeral : Ephemeral means 'lasting only for a short period of time'.FaaS does not linger unused and once the work is completed, containers are gone.
Dynamic: multiple containers can be initialized and many functions to be run (in parallel, if necessary) as needed to continually to serve increase traffics.
Most types of cloud services have a serverless version available nowadays and It is possible to build an entire application in the cloud depending solely on serverless platforms
Benefit of Serverless:
No server management and maintenance. Reduced operation cost and efforts as well.Developers/DevOps team have no infrastructure responsibility.
Cost effective pricing model. The user only pays when it actually uses the system. If the code is never executed, we don't need to pay anything.
Most serverless platforms can scale up and down to accommodate the number of concurrent requests.
Improvement of process agility by deploying smaller units which result faster delivery of features to the market.
Drawbacks of Serverless:
Easy too become Vendor locked. Vendor lock-in requires more trust for cloud provider.
No ability for infrastructure upgrade or optimization.
Multi-tenancy concerns like data security and resource segmentation.
Lack of operational tools.
Cost is unpredictable as number of executions is not fixed.
API Gateways is another important concept related to Serverless. An API gateway is an
tool that sits between a client and a collection of back-end services and acts as a reverse proxy to accept all application programming interface (API) calls, aggregate the various services required to fulfill them, and return the appropriate result.
Popular Platforms of Serverless Technologies:
In conclusion, Serverless platforms are useful for performing tasks which require high through-put and individual requests can be completed within short span of time.But the serverless solution can be complicated depending on the use case. Hope, this blog will help readers to understand basic Serverless concept.
Happy Reading and please provide your feedback in comment section :). Thank you.