What is Serverless Computing?
What is Serverless Computing?
Serverless computing is used to write and deploy the code. We don’t need to manage the underlying infrastructure. It increases developer productivity because the developer has to focus on building great applications and abstracting away the rest. Zero server management, no upfront provisioning, auto-scaling to meet traffic demands, and paying only for the resources used are just some of the benefits of serverless computing.
Serverless is a cloud-native platform for short-running, stateless computation and event-driven applications which scales up and down instantly and automatically and charges for actual usage at a millisecond granularity. For those of you who have been invested in public Cloud Computing, you are aware of two popular models, Platform As a Service and Infrastructure As a Service.
In this architecture, the applications are hosted by third-party service. Serverless architecture is the next phase in the evolution of IaaS, by completely abstracting the underlying infrastructure from developers, and essentially virtualizing runtime and operational management through a third-party provider. It permits businesses to pay a third party to manage servers, databases, application logic and other core business functions that have more commonly been run. The pay-as-you-go nature of serverless has huge benefits. Its relationship with IoT connectivity and edge computing could have massive impacts across industries.
Components of Serverless Computing
There are 3 basic components of Serverless Computing:
- API Gateway: This acts as the communication layer between the frontend and the FaaS layer. It maps REST API endpoints with the respective functions that runs the business logic. With servers out of the equation, there is no need for deploying and managing load balancers also in this model.
- Function as a Service (FaaS): This is the layer that executes specific business logic with the cloud provider providing the level of abstraction in terms of executing the business logic.
- Backend as a Service (BaaS): This is a cloud based distributed NoSQL database which essentially removes database administration overheads.
Benefits of Serverless Computing
- Fully managed service: It is a fully managed service provided by the cloud service providers and the developers don’t need to worry about the underlying infrastructure, operating system, middleware, language runtime, and its management and dependencies.
- Pay for execution time: Pay only for the duration of execution of a function and the number of functions executed. When a function has executed no charge is levied thus eliminating any idle time. This is a benefit over cloud computing where users are running virtual machines (charged an hourly basis).
- Supports event-driven approach: In this approach, the functions are triggered based on events. Different cloud Services and existing applications that support a trigger mechanism can initiate and launch a Function.
- Less-Ops: Less-Ops are operational tasks like debugging, testing, troubleshooting. Ops means a lot more than server administration including monitoring, security, deployment, support, networking.
- Built-in high availability and Provides infinite scalability: Fully depends on the user traffic, functions scale horizontally in a completely automatic and elastic fashion. This is managed by the cloud service provider.