Distributed Systems - Serverless

Updated: 2018-12-12

What is Serverless

Serverless or Function as a Service (FaaS) describes the idea that the deployment unit is a single function. A function takes input and returns output.

Serverless Manifesto

http://blog.rowanudell.com/the-serverless-compute-manifesto/

  • Function are the unit of deployment and scaling.
  • No machines, VMs, or containers visible in the programming model.
  • Permanent storage lives elsewhere.
  • Scales per request; Users cannot over- or under-provision capacity.
  • Never pay for idle (no cold servers/containers or their costs).
  • Implicitly fault-tolerant because functions can run anywhere.
  • BYOC - Bring Your Own Code.
  • Metrics and logging are a universal right.

Examples

  • AWS Lambda
  • Google Cloud Functions
  • Webtask
  • Firebase

https://github.com/anaibol/awesome-serverless

Lambda Architecture and Kappa Architecture

  • Lambda Architecture, the basic idea is that you run a streaming system alongside a batch system, both performing essentially the same calculation. The streaming system gives you low-latency, inaccurate results (either because of the use of an approximation algorithm, or because the streaming system itself does not provide correctness), and some time later a batch system rolls along and provides you with correct output.
  • Kappa Architecture, which basically means running a single pipeline using a well-designed system that’s appropriately built for the job at hand.

Read More