Serverless Computing: Things You Should Know
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 !!!
A few days ago you explained cloud computing. Now what’s this new thing “Serverless” doing here?
Well, the world is evolving at a really fast pace and so is cloud computing.
Serverless architecture allows us to run our applications 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 the market
- Cloud Computing vs Serverless Computing
- Advantages of Serverless Computing
- Disadvantages of Serverless Computing
So are you ready to start? Let’s go !!!!
What is Serverless Computing?
Firstly, let me tell you a funny 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 that we know what serverless is…
Let’s have a look on what are the characteristics that make a serverless architecture serverless.
- 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 centres.
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 things except our Applications and Data
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 about is creating our lambda function i.e. our Application and uploading our code to lambda. Rest all is taken care of by our very own cloud providers.
That’s superb 🙂
I hope this made things a bit clear.
Serverless Computing providers in the 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 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|
Advantages of Serverless Computing
If you’re designing and developing a new application. you may think about 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 have 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 than 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 resources. Right?
Serverless architecture allows your application to scale up as soon as the demand goes 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 comes to running a production load, you always want to deal with uncertain times.
What happens when one of the servers fails?
Well, You need to have multiple redundant servers so that even if one fails, the 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 zones. Your cloud provider by default support this functionality.
Faster Time to Market
As with serverless, developers 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 a really lesser time.
Now where there are pros there are cons as well.
I will mention a few of them here.
Serverless computing is 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 most serverless functions have runtime limitations for example AWS lambda can run for 900 seconds or 15 minutes.
Also if you have a 24/7 running app with multiple requests per second, serverless will be more expensive as compared to running it on a virtual machine or container.
Serverless applications may face latency issues for the first few requests also known as cold start time.
Because your code is only running when requested. After the request is served, the cloud provider spins down the servers.
As a result, if your application is developed in Java and required a 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 the 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.