Serverless Computing - Trust me there is a server


The reason for me writing this post is, many people still doesn't have much clarity on the serverless computing platform. They go by the misleading name (serverless) and assume that there is no role played by a server in a serverless computing. Okay! Let's start with an assumption for now... I guess you would change your opinion at the end of this post.

Cloud computing has evolved significantly over the past to leverage its potential to an unimaginable heights. Almost all enterprises are reaping the benefits of cloud computing by deploying their applications on the cloud platform.


One of the recent advancements in the filed of cloud computing era is serverless computing.
"What do you mean? How can there be an computing platform without a server?..." I can hear your questions. All those fuzziness will be clear soon.

Going Beyond PaaS

It is always good to explain a concept by giving a brief overview on its background. Cloud computing composes are three significant layers:

IaaS - Infrastructure as a Service
PaaS - Platform as a Service
SaaS - Software as a Service

Serverless computing or FaaS completely overcomes the various shortcomings of PaaS. PaaS has operational concerns of auto scaling and the tight coupling between development and operations. The developers need to worry about the scaling of the applications and depend on various PaaS parameters to develop a highly scalable application.

By now, I guess you could have got some info on why there is a need to move on from PaaS.

Serverless Architecture

"Oh no! This is a vague theory..." I can see your reaction. Don't worry, I wrote it in such a way that it would be an interesting read for you...

Serverless computing is a cloud based architecture where program execution is completely managed by cloud providers, in contrary to the traditional practice of developing applications and deploying them on servers. Despite the name, it does not mean executing code without servers. The term “serverless computing” is used because the business or person who owns an application does not have to rent, acquire or provision servers or virtual machines for the back-end code to run on. Serverless architectures remove the need for the conventional ‘always on’ server system sitting behind an application.

Function as a Service (FaaS) provides a way to achieve serverless computing via serverless architecture. Software developers can leverage this to deploy an individual ‘function’, action or a piece of business logic. These services are expected to start within milliseconds, process individual requests and then the process ends. The primary principles of FaaS are as below:

· Complete abstraction of servers away from the software developers.

· Costs are based on consumption and executions, not server instances.

· Services shall be event-driven and elastic scalability.



The services run in stateless containers that are event triggered, ephemeral (shall only last for one execution) and completely managed by the third party. FaaS is a recent development in cloud computing provided by AWS Lambda, Google Cloud Functions, Microsoft Azure Functions and IBM’s OpenWhisk.

The increasing demands for mobile applications forces us to change the application architecture in such a way that it can be best suited for dynamically scalable and faster accessibility. Serverless computing promises to change application paradigms more than what cloud computing has done and holds out the possibility of moving to a post-virtual machine, post container world.



Reasons for moving towards Serverless Platforms

Function as a Service provides many benefits which attracts the enterprises to adapt their applications to serverless platforms. The advantages of using the FaaS architecture are as follows:

1. Faster application development:
With serverless computing, development teams no longer have the headache of worrying on what platform their applications are going to be deployed and run. They also need not worry about the scalability of the application being developed. In this manner, the development stage is completely decoupled from the deployment stage.


2. Easy operational management:
Operational management plays a vital role for every enterprise to retain trust with their clients. None of the enterprise would like to let their customers down by degraded performance. FaaS makes sure that all deployed services are running with elastic scalability and serve the requests from the client without any latency.

3. Decreased operational costs:
One of the major reasons why every enterprise wants to switch to FaaS platform is because of the drastic reduction in their operation costs. Enterprises no longer need to maintain a always-running server to serve the request of their clients and pay for those server maintenance. In serverless computing, costs are only based on the amount of resource utilization by the deployed services.

I guess by now you would agree with me that there is a server in the serverless computing.




Use the comments section to let me know your views on this post.


-
@ TECHOSlovia