Serverless computing refers to the concept of building and running applications that do not require server management. It describes a finer-grained deployment model where applications, bundled as one or more functions (Functions-as-a-Service (FaaS)), are uploaded to a platform and then executed, scaled, and billed in response to the exact demand needed at the moment.
Serverless computing does not mean that we no longer use servers to host and run code; nor does it mean that operations engineers are no longer required.
It refers to the idea that consumers of serverless computing no longer need to spend time and resources on server provisioning, maintenance, updates, scaling, and capacity planning.
Instead, all of these tasks and capabilities are handled by a serverless platform and are completely abstracted away from the developers and IT/operations teams.
As a result, developers focus on writing their applications’ business logic. Operations engineers are able to elevate their focus to more business critical tasks.
Extracted from: https://github.com/cncf/wg-serverless/tree/master/whitepapers/serverless-overview
Serverless enables you to focus more on the business solution and increase agility, lowering total cost of ownership (no servers to manage!).
This is an very common example of an application flow using an integration via API Gateway, highlighting some business functions.
Serverless architecture: function-oriented
AWS offers a range of serverless services:
Extracted from: https://aws.amazon.com/serverless/
- No server management: There is no software or runtime to install, maintain, or administer.
- Flexible scaling: You can adjust scaling per business functionality, not per server.
- No Compute Cost When Idle: Many serverless services scale to zero, e.g., you only pay when you use them.
- Automated high availability: Serverless provides built-in availability and fault tolerance. You don't need to architect for these capabilities.
-
Event sources - trigger or stream events into one or more function instances
-
Function instances - a single function/microservice, that can be scaled with demand
-
FaaS Controller - deploy, control and monitor function instances and their sources
-
Platform services - general cluster or cloud services used by the FaaS solution (sometimes referred to as Backend-as-a-Service)
Extracted from: https://github.com/cncf/wg-serverless/tree/master/whitepapers/serverless-overview