Why go Serverless?

October 2021


Serverless doesn’t mean that ­the code is somehow executed somewhere magically. You still need a Server as runtime environment and necessary computing resources to execute your code. And when there is a Server, you are also responsible for server management and administration including the Configuration, Access Control, Version Upgrades, Tuning, Autoscaling, Load Balancing, Monitoring and Logging, Resource Utilization, etc.

With Serverless, all these complexities behind the code execution model is completely abstracted by the cloud provider thus eliminating all the administrative and operational overheads that your code needs. Therefore, as an application developer you just focus on implementing the functionality.

Some of primary benefits of Serverless are,

  • Simplified Programming Model - Function as a Service (FaaS)

Even the smallest computing unit has to be exposed as a Service, so that it be consumed by internal/external applications (most probably through an API). FaaS is an approach to convert/create such smallest computing unit as a function and deploy it as a service. For e.g., a Search functionality which is running as Backend-as-a-Service (BaaS) can be converted to FaaS (through API) that responds to user queries.

  • Auto Provisioning and Management

Your FaaS still needs computing power which is supplied by the Server. You go Serverless only when you don’t need to manage the infrastructural needs of your application. All behind the scenes of Provisioning and Managing is automated and handled by the providers.

  • Business Agility

Imposes strong Agile Development culture, that results in efficient delivery pipeline. With no Infrastructure and server management, it helps in faster delivery of an idea/product once conceptualized. Many startups are going the Serverless way for its Agility in terms of delivery, Time to Market, and Cost Effective.

  • Compliments Microservices

While the microservice architecture provides better agility in building the functionality as an independent services, Serverless on the other hand helps you to break down them into fine-grained services (some refer it as nano-service). For e.g., a microservice that provides CRUD functionality of a particular business process, wherein Serverless will help you to break down CRUD into individual functions and run them independently. And these individual functions can be called as FaaS.

And with microservice, you still have overheads of server provisioning, monitoring and other administrative tasks to keep your services up and running.

In short, FaaS = Microservice – Server Management

  • Auto Scaling and Load Balancing

As the servers are managed by the cloud providers, they provide an inherent auto-scaling and load balancing out of the box without the need for configuring clusters, load balancers, http plugins, etc.

  • Multi-tenancy and Polyglot friendly

One server instance can run multiple FaaS developed using various languages and frameworks thus making it multi-tenant and polyglot friendly.

  • Less Ops

No infra ops but application related ops is essential such as health-check, errors, latency, execution, etc.

  • Cost Effective

In the traditional PaaS model, the offerings are designed for 24/7 leading to inefficient usage of computing power, and thereby you end up paying even for the idle time. With Serverless model whose computing power disappears right after the usage, you can overcome one such pain point by keeping the computing resources to minimal usage thus leading to cost cutting.

And, when you don’t manage servers anymore then you are eliminating the provisioning, monitoring and other operational complexities thereby reducing operational expenses.


Click here to read my blog on the drawbacks of Serverless architecture