- Computing without servers?
- Running applications without the need to manage servers?
- Running functions instead of containers/VMs?
- Infinite scaling?
- The truth: no clear, agreed definition, i.e., no one really knows
One Perspective: How Cloud and Virtualization Evolved
Decreasing concern (and control) over stack implementation, Increasing focus on business logic
A Related Topic: Microservice
- A software architecture that develops an application as a suite of small services, each of which can be deployed and scaled independently
- When one (micro)service is in large demand, can scale it up
- Different (micro)services can be written and managed by different teams
- Changing one (micro)service will not affect the others
What is the essence of “Serverless Computing”?
- Only pay for what you use
What is Today’s Serverless Computing Like?
- Largely offered as Function as a Service (FaaS)
- Cloud users write functions and ship them
- Cloud provider runs and manages them
- Still runs on servers
- Have attractive features but also many limitations
- An event-driven, serverless computing FasS platform introduced in 2014
- Functions can be written in Node.js, Python, Java, Go, Ruby, C#, PowerShell
- Each function allowed to take 128MB – 3GB memory and up to 15min
- Max 1000 concurrent functions
- Connected with many other AWS services
Lambda Function Triggering and Billing Model
- Run user handlers in response to events: RPC handlers, triggers, cron jobs
- Pay per function invocation: no charge when nothing is run
Internal Execution Model
- Developers upload function code to a handler store (and associate it with a URL)
- Events trigger functions through RPC (to the URL)
- Load balancers handle RPC requests by starting handlers on workers
- Handlers and sandboxed in containers
Azure, GCP, …
Limitations of Today’s Serverless Offerings
- Difficult and slow to manage states
- No easy or fast way to communicate across functions
- Functions can only use limited resources
- No control over function placement or locality
- Billing model does not fit all needs