logo

Serverless

Last Updated: 2024-01-15

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.

Why not serverless:

  • Cold-start latency: serverless functions must be instantiated on demand. versus traditionally virtual machines or containers are preprovisioned.
  • Hard to debug and monitor: cannot hop on the server to debug.
  • Cost management: since serverless systems dynamically allocate resources behind the scenes, it is hard to manage cloud resource costs directly.

Examples

  • AWS Lambda
  • Google Cloud Functions
  • Webtask
  • Firebase
  • Knative: open source, based on Kubernetes

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

Knative

https://knative.dev/

Kubernetes-based platform to deploy and manage modern serverless workloads.

Serverless users are afraid of vendor lock-in, so Knative is created to make serverless standardized and portable.

Google Cloud Run is a re-implementation of the same Knative Serving API.

Read More