I don’t drink tea regularly. Once or twice a year, I do fancy a cup of green/black tea. Given my consumption pattern, it would be ridiculous if I own a tea garden and a processing unit solely for domestic use. It would be a waste of land, water, manpower, and many more resources for a minuscule demand. Buying tea leaves from the market is a more viable plan.
Why am I speaking about tea gardens in a tech blog?
If you have an idea for a web-based startup, you don’t have to break your head about setting up a physical server, what configurations to use, or how to maintain them. With the advent of serverless computing, the entire responsibility of the server part of your business will be taken by third-party vendors. As with the tea gardens, you don’t have to have a big server farm when you are unsure about the computing power required and the number of users you will be serving over time.
Serverless? Does that mean servers are obsolete now?
Serverless does not mean that a server is absent. It means that the physical server hardware is located elsewhere, hosted by a third-party vendor and you access the services remotely. This third party that hosts the server is called a cloud vendor or cloud service provider.
Conveniently, you only have to pay for the resources like space, computing power, that you consume for running your applications. The resources offered by the vendor are completely scalable. That is, there is no concept of pre-allotted space in the server. You can use as much or as little computing space and power as your business applications demand.
What applications run on serverless architecture?
Any application that runs on a traditional on-site origin server can run on serverless architecture too. It is most suitable for beta or prototype applications where time to market is crucial. And also when the usage and user volume of the application is unpredictable. FaaS and BaaS are popular services that are hosted on serverless platforms.
A note on BaaS
Serverless architecture can be a good platform for hosting backend applications. Backend as a service (BaaS) is a third-party vendor service that allows the developers to concentrate on the front end while backend operations like database management, user authentication are handled by the vendor. Sometimes the same vendor provides both serverless computing and BaaS facilities.
A note on FaaS
Function as a service (FaaS) is also a cloud service. It runs on serverless architecture and can be considered as a subset of serverless computing. FaaS lets developers write code that executes as a response to events (like clicking something on a webpage). The physical server hardware, the operating system running on that virtual machine, and management of the web server are all maintained by the vendor allowing the developers to fully concentrate on developing their applications
Why opt for Serverless Computing?
As we have already established, in the serverless computing model, you pay as you go. In the conventional on-site server model, there are fixed cost overheads for unutilized and underutilized resources too. It is avoided in the serverless computing model resulting in notable cost savings.
Another advantage of a serverless computing model is the ease of scalability. If you want to scale up your code for an increased number of users, you do not have to worry about changing the server architecture. The cloud vendor who hosts your server applications will do it for you by altering the relevant configuration in the server.
As with scaling up, scaling down is also handled with ease by the vendor.
Accelerated time-to-market is another desirable advantage of adapting the serverless computing model. This is because deployments are quicker owing to the provision of FaaS by vendors.
Reduced latency is another benefit of using serverless architecture for your applications. This is because the vendor has servers distributed across the globe. So, the data and instructions have to travel a lesser distance to reach the server when compared to a traditional single server.
Serverless computing is friendlier to the environment as compared to traditional server-based architecture. This is because, in the traditional model, the server needs to keep running whether or not it is in use by the applications. But in the serverless model, the remote servers are shared with many more customers. Hence, they are always in use and there is no idle run time. Here is more on Sustainability from an IT standpoint.
Disadvantages of the Serverless Computing architecture
Serverless computing does not come without its fair share of disadvantages, data security being the biggest point of concern.
There is a risk of a data breach since the serverless vendor hosts many customers on the same physical server. This occurs if the vendor has made an error in the client configuration.
Also, since many applications run on a single machine, there could be issues with performance and response times.
Another drawback is what is called the ‘cold start’. If a certain application is dormant for a long duration due to lack of user demand, it will take some time to get launched when a user requests it.
Difficulty to port applications between two different vendors can also be another disadvantage of adapting the serverless computing model. This is because the features offered and workflow adapted by the vendors could be different.
The disadvantages of serverless computing can be avoided by choosing the right vendor who provides a favorable server platform. In the digital age, everything is offered as a service (XaaS). And hence, by honing the benefit of BaaS, FaaS, and serverless computing methods, startups, and new businesses can invest more budget in their business plan, as serverless computing does not cost a fortune.