Introduction to Serverless architecture
Serverless architecture
Story of a Poor IT guy
Once upon a time in a company, there was an IT guy (like every other in an office). He always struggled to keep up with the increasing traffic of the website. His everyday routine was to create and set servers, install OSs, set up databases, manage software patches and hardware updates, manage capacity and scaling, Manage High-availability through load-balancing, and so on. He was very frustrated and had to deal with the boss’s arrogance.
How to not be the poor IT guy
One day somebody told him about Serverless Architecture. Now he is the BOSS
In recent years increasing exponential trends can be seen in computing technology. The amount of data has increased so does computing power Cloud computing platforms Amazon AWS, Microsoft Azure, Google Cloud Platform have made computing very easy and affordable for big companies and individuals.
Having said that, modern-day applications demand a high level of computing power as well as speed. And at the same time, it must be scalable with almost no downtime. this is all possible with Serverless
Serverless Computing is this new trend in cloud computing that attempts to solve many of these challenges. Serverless computing will help you build the next generation of systems that can handle demanding workloads and scale indefinitely without having to provision or manage any servers.
Features of serverless computing:
- No server management or server processes are required
- No-load balancers required
- Auto-scaling and provisioning based on load
- The cost factor depends on usage.
- capacity planning & cost management are automated
- Use of microservices. for example AWS microservices like AWS Lambda(link)
With Serverless, you kind of get to be more productive. You can completely focus on writing your code without having to worry about the underlying support system.
How Serverless works:
With Serverless, you write your code in the form of functions like Lambda functions in AWS or Azure functions in Azure. So, we segregate our application logic into small independent functions or microservices and upload them to the cloud provider. These functions are stateless and can be invoked in response to different events like API calls, file uploads, database updates, in-app activity or sensor outputs from IoT devices and so on. these serverless functions often run in Docker-like containers and hence several instances of these functions can run concurrently, thus making them highly scalable.
Serverless frameworks:
- Serverless Framework: Serverless Framework cross-platform tool that makes use of microservices that run in response to events, auto-scale for you, and only charge you when they run. This lowers the total cost of maintaining your apps, enabling you to build more logic, faster.
2. AWS SAM: An AWS serverless tools this makes use of various AWS microservices to create an auto-scale application
In the next tutorial, we will be digging into AWS Microservices and Serverless framework