-
Notifications
You must be signed in to change notification settings - Fork 12
Serverless Computing
Zhaobo edited this page Nov 30, 2022
·
2 revisions
Three critical distinctions between serverless and serverful computing [1]:
- Decoupled computation and storage. The storage and computation scale separately and are provisioned and priced independently. In general, the storage is provided by a separate cloud service and the computation is stateless.
- Executing code without managing resource allocation. Instead of requesting resources, the user provides a piece of code and the cloud automatically provisions resources to execute that code.
- Paying in proportion to resources used instead of for resources allocated. Billing is by some dimension associated with the execution, such as execution time, rather than by a dimension of the base cloud platform, such as size and number of VMs allocated.
Serverless simplifies application development by making cloud resources easier to use. In the cloud context, serverful computing is like programming in low-level assembly language whereas serverless computing is like programming in a higher-level language such as Python. The serverless layer sits between applications and the base cloud platform, simplifying cloud programming.
Serverless vs FaaS
- web & API serving
- batch processing
Note:Inherit Kubernetes limitations (e.g., 110 pods per node, 5000 nodes per cluster)
- OpenFaaS
- Knative
- Fission
- Nuclio
- storage service
- start-up time
- coordination/signaling service
- network/communication
- security
[1]. Cloud Programming Simplified: A Berkeley View on Serverless Computing, 2019 Feb.
[2]. Performance Evaluation of Open-Source Serverless Platforms for Kubernetes
[3]. KubeML github