Serverless Computing
(Google App Engine | AWS Lambda | AWS Fargate)
Hello and welcome again , to my new article . In this article I’m writing about Server-less computing. This concept is introduced by google in 2008 . The service called as ‘Google App Engine’. 2014 AWS introduced AWS Lambda . Now they have AWS Fargate as well . Now cloud providers have not only computing serverless services , but they also have many more serverless services such as AWS S3, SQS, SNS, DynamoDB, Aurora .
What is Serverless computing actually ? Does that mean there is not going to be servers ? no way . Without servers there is no way of using serverless services. In a traditional server-centric architecture we need to configure, scale , manage and monitor servers. Which needs too much working hours and there is a risk when we do it in manual way, because humans make mistakes. These tasks can be done by automating tools , But for simple applications developing an server automated environment is not cost effective.
Introducing Serverless computing . In this time every task developer doing with backend servers handled by the cloud provider. They configure the servers, scale them, monitor the servers, manage the infrastructure and security updates as well . Developers don’t need to worry about operating the application. Which means developers can use that saved time on the product and deliver more valuable product to customers.
There are many benefits of serverless computing.
- No server Management needed.
- Cost effective
Only charged for server space and the amount of time the code runs. - Scalability
- Simplicity
- Reliability
Since the application is not hosted in one server , it is possible to run the functions in closest location to the end user. - Resource utilization
resources only used when the code need to be executed.
If Serverless computing provides that much advantages why not every application not hosted in serverless way ? Hm unfortunately Serverless computing has limitations.
- Not cost effective for continuous running applications
Since cloud providers charge for time code is running continuous running application cannot afford the cost of serverless platform. - Slow starting
Because the code only runs when necessary when request comes it must wait until code is in running condition. - Not enough control of the application
Which means when it comes to debugging and troubleshooting it is pretty much harder to do because the application is separated into small parts, and we don’t have that much of visibility over them as well.
Because of those disadvantages of serverless computing, we should be able to determine which applications can afford to run in serverless way . Larger applications are not going to be effective in serverless computing. And if your application needs to run continuously Serverless you better have a dedicated server for that.
If you have a application that gets less requests , if your application not larger ,if you are not expecting quick response everytime and if you don’t need much control over the servers, serverless computing is the way to go . please leave a comment if there is something that need to add or change In this article.