Well that’s why this post is here. Let’s find out why ???
This post is all about serverless computing. To be honest, serverless is one of the most misleading names in the cloud computing world. So let’s make ourselves aware of this misnomer.
Now you will tell me- wait Preeti !!!
Few days ago you explained us cloud computing. Now what’s this new thing “Serverless” doing here?
Well, the world is evolving at really fast pace and so is cloud computing.
Serverless architecture allows us to run our application without thinking of servers. It lets us serve and scale as per demand without planning the capacity ahead of time.
In short you can say that, serverless computing has literally changed the way applications are built and deployed into the cloud.
This post basically covers-
- What is Serverless Computing?
- Features of Serverless Architecture
- Evolution of Serverless Computing
- Best Serverless Computing providers in market
- Cloud Computing vs Serverless Computing
- Advantage of Serverless Computing
- Disadvantage of Serverless Computing
So are you ready to start ? Let’s go !!!!
What is Serverless Computing?
Firstly, let me tell you a fun thing. Opposite to what it sounds, serverless doesn’t mean that there are no servers. It’s just that you no more worry about them.
In other words, There are no servers to provision or manage at all. Your cloud provider will take care of that.
All you need is to focus on your application. Because serverless will allow you to run your application without doing any infrastructure management.
Now that’s cool !!!
I mean from a developer’s point of view I really like this. All I need to worry is how to make my application more effective and let the cloud provider handle boring stuff for me.
Features of Serverless Architecture
Okay, now when we know what serverless is…
Let’s have a look on what are the characteristics that makes a serverless architecture serveless.
- No need to provision or manage any server
- Serverless computing is event driven
- Your serverless application scales automatically
- You will only pay for actual service uses and never pay for idle time
- High availability/ fault tolerance is build in
- Serverless functions are stateless
Those are some of the really cool features of serverless.
Let’s see how the computing world has evolved from deploying our application to our own server to being completely serverless.
Evolution of Serverless Computing
We will see here how Serverless fits here with other cloud computing types
Initially we used to deploy our application in the servers running in our own premises/data centers.
With that said, we were responsible for managing everything such as-Applications, Data, Runtime, Middleware, OS, Virtualization, Servers, Storage and Networking etc.
Then came IAAS
Here cloud providers managed Virtualization, Servers, Storage and Networking. However we were still responsible for managing Applications, Data, Runtime, Middleware and OS for example AWS EC2
IAAS to PAAS
With the release of services such as AWS Elastic Bean Stalk, our cloud provider literally freed us from almost all the management thing except our Applications and Data
A very good progress indeed !!!
PAAS to Serverless
Serverless has brought a revolution in the computing world in the true sense. With the release of services like AWS lambda ,all we need to worry is creating our lambda function i.e. our Application and uploading our code to lambda. Rest all is taken care by our very own cloud providers.
That’s superb 🙂
I hope this made things a bit clear.
Serverless Computing providers in market
There are many serverless providers in the market however when it comes to best in terms of serverless we have-
- AWS : Lambda, API Gateway, DynamoDB, Step Function etc
- Microsoft Azure: Azure Functions
- GCP: Cloud Functions, App Engine, Cloud Run etc.
Cloud Computing vs Serverless Computing
Many a times difference between cloud computing and serverless seems to be confusing.
That’s why, Let’s understand the basic difference between the two so that we know what is what 😛
|Cloud Computing||Serverless Computing|
|Resources needs to be allocated in advance||Resources are allocated on demand|
|Pay for your servers whether you use it or not||Pay only for the resources you actually use|
|Pay for the idle time as well||You don’t pay for idle time|
|Scaling needs to be||Scaling happens automatically|
Advantage of Serverless Computing
If you re designing and developing a new application. you may think on the reasons to move to serverless.
Let me tell you, there are plenty of them .
So let’s go ahead and discuss them here.
No Server Management
With Serverless you don’t to provision or manage any server. That means you don’t need to-
- Install software or runtime to run your application
- Monitor your server health 24/7
- Planning capacity ahead
- Maintenance of server including security and updates
- Scale the server up and down as per the uses
Serverless is very cost effective then buying/renting a server for full time.
You only pay for the time your code is executing and the memory/resources you consume. There are no charges for idle time.
Now that’s full utilization of resource. Right ?
Serverless architecture allows your application to scale up as soon as the demand go huge and scale down when there is no demand. So they are kind of elastic in terms of scaling.
You don’t have to worry about adding an extra server. Your serverless application will scale automatically
Automated High Availability
When it come to running production load, you always want to deal with uncertain times.
What happens when one of the server fails?
Well, You need to have multiple redundant servers so that even if one fails, other one will continue to serve the request.
With Serverless, you don’t need to worry about making your application highly available by deploying into multiple availability zone. Your cloud provider by default support this functionality.
Faster Time to Market
As with serverless, developer are freed up from provisioning and managing infrastructure. They can focus more on application code and business logic. As a result, a production grade application can be developed in really lesser time.
Now where there are pros there are cons as well.
I will mention few of them here.
Serverless computing are by default tightly tied to the specific cloud provider /vendor which makes migration very difficult.
Not Suitable for long/continuous running apps
Serverless is not suitable for long running applications. Because mostly serverless functions have runtime limitation for example AWS lambda can run for 900 seconds or 15 minutes.
Also if you have a 24/7 running app with multiple request per second , serverless will be more expensive as compared to running it on a virtual machine or container.
Serveless application may face latency issues for first few request also known as cold start time.
Because your code is only running when requested. After request is served, cloud provider spins down the servers.
In result, if your application is developed in java and required higher start up time, you will see additional latency for that.
To sum up, Serverless architecture is the future of cloud computing. It provides the companies capability to be more agile, cost effective and increase their overall operational efficiency.
Despite having pros and cons, cloud providers are constantly trying to make serverless ecosystem better each passing day.
So one thing I am sure that serverless is here to stay !!!
Well, That was my take on “Serverless Computing“. Please feel free to share your feedback.
Enjoyed the content?
Subscribe to our newsletter below to get awesome AWS learning materials delivered straight to your inbox.
If you liked reading my post, you can motivate me by-
- Adding a comment below on what you liked and what can be improved.
- Follow us on
- Subscribe to our newsletter to get notified each time we post new content.
- Share this post with your friends and colleagues.