An Introduction to Serverless

A few years ago, if you wanted to build your own web application, you would need expertise in both front end and backend technology and based on the challenges of scalability and deployment. The clear boundary between development and operations meant managing the day to day jobs of installing hardware, securing access, managing data centers and more in-house.

With the introduction of the “cloud”, i.e. Infrastructure as a Service (IaaS), a different set of challenges arose. Now, operations meant securing the servers, updating the OS and patches and installing packages. Further abstraction was brought into the picture with Platform as a Service (PaaS). Now, the cloud provider handles all the infrastructure level operations mentioned above for the specific platform. Developers simply need to choose the required platform i.e. “API endpoint” or “Web Application” and deploys code directly

The main challenge in this approach becomes scaling, both horizontally and vertically, i.e. increasing number of server nodes and the capacity of each individual node. This complexity is further removed in Serverless Architecture.

Image credits: Microsoft Docs — https://docs.microsoft.com/en-us/dotnet/standard/serverless-architecture/

Serverless architecture completely abstracts the infrastructure component of an application. The two key questions for building the Serverless code are:

· What triggers the code?

· What does the code do?

Thus, the developer simply focuses on the HTTP trigger, which delivers the standard cross-platform payload considerably simplifying the development process. A major advantage to this approach is that it becomes easier to focus on the user experience and create products faster without worrying about the back-end. The term ‘Serverless’ is confusing since it implies that a server doesn’t exist while in reality the server does exist, the backend processes are running and they continue to be the crucial backbone of the application which is outsourced and managed by vendors.

Serverless enables you to scale each endpoint independently and pay for usage, so no costs are incurred when the APIs aren’t being called. Thus, you only pay to host the endpoints which are being accessed making it a very cost-efficient model.

The Serverless architecture model makes it easier than ever to create an application from scratch to deployment, to build complex solutions on the front end, such as Progressive Web Apps and Single Page Applications which pack a strong punch on the browser side with great user interfaces.