‘Serverless’ — Is this Computing World Reliable?

Shashwat Agrawal
tech@iiit-gwalior
Published in
6 min readJul 22, 2021

--

A server is a PC program or gadget that offers assistance to another PC program and its client, otherwise called the customer. What if, you get to know that the world is going ‘serverless’ and moving towards a typically reliable computing sphere. Sounds fascinating, isn’t it? That’s what the undermentioned quote conveys.

“If future generations are to remember us more with gratitude than sorrow, we must achieve more than just the miracles of technology. We must also leave them a glimpse of the world as it was created, not just as it looked when we got through with it.”
- Lyndon B. Johnson, Former President of the United States of America

Serverless Computing

A Quick Headstart!

At some point in time, we all must have surely heard about services like Google Cloud, Amazon Web Services (AWS) Lambda, Microsoft Azure, etc. Some of us may have even heard many people associating these aforementioned services with the word ‘serverless’. Everyone in the tech world is now discussing the ‘serverless’ world.

But you may have been wondering about this computing world — what exactly is ‘serverless’? Why is it named so? Can our web app be deployed without an actual server or don’t I need a server to do that?

A few days ago, when I had the same doubts, I dug to reach out for some clarity. And what I found, and firmly proclaim, is that ‘Serverless’ is actually a misnomer for describing the serverless computing world. Instead, the most suitable title will be… you know what? Let that be for now.

Before proceeding further, let me put a simple question before you. Imagine you need to make a delicious curry and you require spices for that. Now, will you spend your time growing the spices, crushing & grinding them, and then mixing them in the proper amounts to bring out the taste in them? Most of us would rather simply go to the market to buy the desired condiments that will suit the curry.

Serverless Computing is exactly the same idea, but here instead of spices, we refer to the amount of CPUs & memory units to run your written code. It gradually simplifies your back-end workload by simplifying the infrastructure and eliminating the need of constructing, maintaining & scaling servers. The best & the biggest perk of serverless computing is your only job is to write the code and leave the rest of the deployment work for someone else. The cloud handles everything behind the scenes, so perfectly that you can’t even imagine.

Sounds interesting? Well, that was too basic. We now will quickly jump to explore more about this recent and ongoing technology.

Let’s Explore the Zeroth Bit!

According to MNCs like Amazon, “A serverless architecture is a way to build and run applications and services without having to manage infrastructure. Your application still runs on servers, but all the server management is done by the provider, and you no longer have to improvise, scale, and maintain servers to run applications, databases, and storage systems.”

At first, the above-mentioned definition may have confused you. You may not have gotten an idea of what it is trying to convey. Precisely, what it trying to say is,

“Give your code — do not worry about the terrible deployment stress — and leave it to us”.

You really do not need to manage anything, Microsoft Azure, Amazon Lambda, or Google Cloud will do it all for you.

Suppose you successfully made an application, andthe app code runs perfectly on your machine, but then you face a bunch of bugs and issues in deploying it. You’re left with nothing but errors and only errors. At the same time, you’re occupied with other development loads, which you can not avoid too. Now, as a developer you are left with two options:

  1. VPS Based Deployment, in which one can purchase a virtual private server and then deploy the application on their own, which is the usual way.
  2. Serverless Deployment, where the developer provides all the written source code & other dependencies details to a serverless service i.e. a back-end service provider like Lambda, Azure, or Cloud.

Basically, the developer will be provided with a dashboard in the latter option, with all the required available data. This will probably include the logs of RAM, Processor & other resources’ occupancy, the traffic on your developed application and even the scalability factors.

Let’s Grip it with Another Analogy!

Various Servers Analogy

The three popular models of servers include Traditional servers, Cloud Servers, and Serverless servers are analogous to your own car, rental car, and taxi cab, respectively. When you own a car, you must invest in it, maintain — insure — fuel, and, most importantly drive it. While in rental cars, you may not need to worry about the investment but everything else is still a burden to you. That’s not the case with a taxi cab - you just pay for your fare from source to destination. You neither worry about its maintenance, nor its fuel, nor its insurance, nor driving it.

That is exactly the same case with servers, in traditional servers i.e. virtual private servers-based deployment, you would need to make an initial investment to buy a computer server and then need additional hardware to maintain it 24*7. There could be scalability issues — if a sudden influx of users come over, your server may get overwhelmed. You are also responsible for the software, license, and other dependencies.

However, you need not worry about hardware, software, license, or runtime system in serverless servers. You just need to provide your source code and the cloud provident will take care of execution like a cab driver. The all-time pro is you save a hell of a lot of time, which you can utilize for another purpose.

NOTE: Now, you may have realized that I have said the same things again but served them in another way. This has been done purposely to fulfill the sole purpose of this article, i.e. settling down the idea into your nerves perfectly. I hope you got the essence.

Credits: Oursky

Myths & Facts

Here comes the mystery, we know that no application can be deployed without a server, so why call it ‘serverless’?. Many amateurs reside in myths that ‘actually’ server is absent, but in a real scenario, there is someone else working on servers execution to let you focus on your application code, of which that third party charges you based on your server consumption.

With back-end services, serverless no doubt provides abundant pros, though it comes with numerous cons too. For an instance, your provider can restrict your ports with API limits from the back-end. Say, your back-end service provider restricted mailing APIs and offer you a stupid reason for SPAMMING.

Another Useless Reason

Another pitfall is, you may not be fully utilizing the server or lack operational tools, as you are provided with a dashboard of the server but not with the actual one. However, these drawbacks seem minute when compared to the perks indulged with front-end & back-end services of serverless computing.

Now, let me quickly tell you what I concluded with serverless computing is. As a newbie, do not fall into the trap of switching into serverless from the very starting of your development journey. Grasp the pace, analyze the aspects and then jump into this gigantic computing world. Overall, the serverless computing world is revolutionary and deserves a considerable future ahead.

With this, I put my pen down and hope I’ve conveyed the information. Thanks for being a good reader.

--

--

Shashwat Agrawal
tech@iiit-gwalior

Passionate to Write | Love to Paint | Settled on Strings | Budding Engineer