What is a serverless architecture?
A serverless architecture is a way to build and run applications and services without having to manage infrastructure. Your application still runs on servers, but all the server management is done by AWS.
You no longer have to provision, scale, and maintain servers to run your applications, databases, and storage systems.
Why use serverless architectures?
By using a serverless architecture, the developers can focus on their core product instead of worrying about managing and operating servers or runtimes, either in the cloud or on-premises.
This reduced overhead lets developers reclaim time and energy that can be spent on developing great products which scale and that are reliable.
Pricing is based on the number of executions rather than pre-purchased compute capacity making it ideal for your projects.
Why build a serverless application?
Building a serverless application allows you to focus on your application code instead of managing and operating infrastructure. You do not have to think about provisioning or configuring servers since AWS handles all of this for you.
This reduces your infrastructure management burden and helps you get faster time-to-market.
Four main benefits of building a serverless application offers you
No server management
There is no need to provision or maintain any servers. There is no software or runtime to install, maintain, or administer.
Your application can be scaled automatically or by adjusting its capacity through toggling the units of consumption (e.g. throughput, memory) rather than units of individual servers.
Serverless applications have built-in availability and fault tolerance. You do not need to architect for these capabilities since the services running the application provide them by default.
No idle capacity
You do not have to pay for idle capacity. There is no need to pre- or over-provision capacity for things like compute and storage. For example, there is no charge when your code is not running.
How do I build a serverless application?
You can build a serverless web application by using several AWS services together. Each service is fully managed and does not require you to provision or manage servers. You only need to configure them together and upload your application code to AWS Lambda, a serverless compute service.
Example Serverless Application Architecture
Traditional Architecture VS Wireless
The cost model of Serverless is execution-based: you’re charged for the number of executions. You’re allotted a certain number of seconds of use that varies with the amount of memory you require. Likewise, the price per MS (millisecond) varies with the amount of memory you require. Obviously, shorter running functions are more adaptable to this model with a peak execution time of 300-second for most Cloud vendors.
Serverless Architecture wins
Serverless functions are accessed only as private APIs. To access these you must set up an API Gateway. This doesn’t have an impact on your pricing or process, but it means you cannot directly access them through the usual IP, snap!
Traditional Architecture wins
Setting up different environments for Serverless is as easy as setting up a single environment. You no longer need to set up dev, staging, and production machines.
Serverless Architecture wins.
Scaling process for Serverless is automatic and seamless, but there is a lack of control or entire absence of control. While automatic scaling is great, it’s difficult not to be able to address and mitigate errors related to new Serverless instances.
Tie: Serverless and Traditional Architecture.
3rd Party Dependencies
Most, if not all of your projects have external dependencies, they rely on libraries that are not built into the language or framework you use. You often use libraries with functionality that includes cryptography, image processing, etc., these libraries can be pretty heavy. Without system-level access, you must package these dependencies into the application itself.
Reinventing the wheel isn’t always a good idea.
Winner : based on the context. For simple applications with few dependencies, Serverless is the winner; for anything more complex, Traditional Architecture is the winner.