[Virtualization] Serverless Computing

Serverless Computing

  • 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

Classic
Virtual Machine
Containers
Serverless Computing

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”?

  • Management-free
  • Autoscaling
  • 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

Basic Architecture

BigQuery, …

AWS Lambda

  • 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

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.