Who should read it: It is for you if you are looking for an overview of this topic for a project, to conduct/appear in an interview, or in general. As we learn more, we will update this article.
I was curious to learn about serverless framework. Seems an interesting concept. Does it really work without a server? why to use it? Where to use it? In my notes below, sharing my learnings:
1. What is serverless:
Serverless does not mean there is no server involved. Serverless is an architectural approach to software solutions that relies on small independent functions running on transient servers in an elastic runtime environment. Let\’s break it to understand what it means:
- Small independent functions: sometimes it\’s also called Functions as a Service.
- Transient servers: Actual machines hosting it are temporary instances.
- Elastic environment: These virtual machines are spun up when needed and spun down when not needed. This elasticity helps in gaining better targeting of resources and better operational cost.
Finally these all (functions, virtual machines, and elastic runtimes) need an architectural approach.
2. Why serverless:
Using serverless reduces time to market an idea with a reduced cost. Below are some pros and cons of using Serverless architectures:
Pros:
- Developers can focus more on coding for the business logic
- We can more easily deal with scalability
Cons:
- Spinning machines take time
- Debugging is complicated
- Vendor lock-in
Four characteristics of serverless platforms:
- Event driven: Serverless has the ability to support event driven architectures.
- Streaming data: Serverless architecture supports streaming data architectures.
- Auto-scaling: Serverless architectures have ability to support the ability to scale the capacity of the the solution.
- Fault-tolerance: For the solutions that needs a \’zero downtown\”, serverless can be a good option to consider.
- Small, simple, or complicated web applications
- Backends
- Data processing
- Chatbots
- IT automation