Cloud Parts

Serverless functions (FaaS)

Upload a function; the cloud runs it only when something happens.

12 technologies on this page ↓
Live model
What you’re watchingBursts of requests spin up new instances; amber marks a cold start. When traffic stops, idle instances time out one by one until none are left.

How it works

You write a handler and choose what triggers it: an HTTP request, a new file, a queue message, a schedule. The platform starts instances on demand, runs as many in parallel as traffic needs, and shuts them down when idle. You pay per invocation and per millisecond of runtime, and there are no servers for you to patch.

Think of it as

A taxi instead of a car you own. It shows up when you call, you pay for the ride, and insurance and parking are someone else’s problem.

Reach for it when

  • Event-driven glue: resize an image on upload, react to a queue message
  • Spiky or low traffic, where idle servers would waste money
  • Scheduled jobs and small APIs

Think twice when

  • Work that runs longer than the limit (15 minutes on AWS Lambda)
  • Latency-critical paths that can’t absorb an occasional cold start
  • Steady high throughput, where an always-on container is usually cheaper

A real example

Every time a sensor gateway uploads a compressed batch, a function unpacks it and writes the readings to the database. At night there are no uploads, so nothing runs and nothing is billed.

Technologies

Specific products, and what each does differently.

AWS LambdaAWSAWS’s functions service: upload a handler, connect a trigger, and pay per request and per millisecond.Beta9Open sourceThe open-source engine behind Beam’s cloud: decorate a Python function and it runs as an autoscaling GPU endpoint, task queue or sandbox, on Beam or on your own Kubernetes cluster.Cloudflare Browser RunRenamedCommercialHeadless Chrome on demand in Cloudflare’s network, called Browser Rendering until April 2026: one HTTP call for a screenshot, PDF, Markdown or crawl, or a full browser session driven by Puppeteer, Playwright, CDP or an AI agent.Cloudflare WorkersCommercialFunctions that run in V8 isolates on Cloudflare’s network, close to the user, with almost no cold start.+1 WranglerFissionOpen sourceOpen-source functions on Kubernetes: a pool of warm, generic pods takes your code on the first call, so cold starts stay around 100 ms.workerdOpen sourceThe open-source JavaScript and WebAssembly server runtime behind Cloudflare Workers, which you can run yourself as an application server, a local dev server or a programmable HTTP proxy.Workers AICommercialServerless inference on GPUs in Cloudflare’s network: call one of 50+ open models by name from a Worker binding or a REST API, and pay per unit of GPU work instead of renting GPUs.AWS FargateAWSRuns ECS tasks and EKS pods without servers: you size each task, AWS finds the machine.Mainly ContainersGoogle Cloud RunGoogle CloudGive Google a container that listens on a port; it runs as many copies as traffic needs, down to zero.Mainly ContainersSSTOpen sourceA TypeScript framework that defines a whole app, from Next.js front end to functions, containers and databases, in one config file and deploys it to your own AWS or Cloudflare account.Mainly Infrastructure as code

Also used for serverless functions (faas)

Products of other kinds that are often used this way, grouped by what they are.

What each provider calls it

AWS
Lambda
Google Cloud
Cloud Run functions
Azure
Azure Functions
Open source & others
OpenFaaS, Knative, Fission (functions on Kubernetes), Beta9 (GPU functions and sandboxes, AGPL), Cloudflare Workers

See it in a real stack

Architectures that use serverless functions (faas)

In code · python

# handler.py: runs once per event
import json

def handler(event, context):
    order = json.loads(event["body"])
    total = sum(i["price"] * i["qty"] for i in order["items"])
    return {"statusCode": 200, "body": json.dumps({"total": total})}

Worth exploring

Article· August 2025lambda to eks pod migrationAWS re:Post community questionA short Q&A on what replaces Lambda’s built-in triggers, SQS polling and scaling when functions move to EKS pods. The useful answer points to KEDA (with Karpenter) for scaling pods on queue depth; the longer answer is an unreviewed AI-generated checklist from AWS’s own assistant, so treat it as a starting list, not guidance.
Article· January 2025How to create Kubernetes Jobs from AWS LambdaCloudfleetA tutorial for a Lambda function (a Bash custom runtime that downloads kubectl on start) that runs kubectl commands against a cluster, used here to launch a Kubernetes Job in response to an event. It is written for Cloudfleet’s own managed Kubernetes and its CLI, so the authentication steps need changing for other clusters, and passing raw kubectl arguments in an event is fine for a demo but too permissive for production.
Article· August 2023Using Kubernetes with AWS Lambda: Scaling Up Your Serverless ApplicationsRohit Ghumare, LumigoA vendor blog post whose concrete part is a walkthrough of creating a Lambda function from an EKS cluster with the AWS Controllers for Kubernetes (ACK) Lambda controller, closely following AWS’s own 2022 tutorial. The benefits section is vague and blurs what Kubernetes and Lambda each do, and the post ends with a pitch for Lumigo’s observability product.
Article· March 2023The Great Lambda Migration to Kubernetes Jobs: a Journey in Three PartsLiav Yona, InfoQA first-person account of how Firefly moved event-driven work off Lambda (after hitting the 15-minute timeout), briefly onto ECS, and finally onto Kubernetes Jobs on EKS, with practical notes on reusing container images, swapping an IAM trust policy for EKS OIDC, moving environment variables into ConfigMaps and a blue/green cutover. It is one company’s story with few numbers, and the author’s employer sells infrastructure-as-code tooling, which colours the emphasis on IaC.
Article· August 2022Deploying AWS Lambda functions using AWS Controllers for Kubernetes (ACK)Rajdeep Saha, AWS Compute BlogAWS’s step-by-step tutorial for managing Lambda functions as Kubernetes custom resources: install the ACK Lambda controller in EKS, give it IAM permissions through IRSA, then kubectl apply a Function manifest that points at code in S3. It explains why you might (one GitOps and RBAC model for pods and functions) but, being AWS’s own post, not the drawbacks.
Article· May 2021Spice up Your Kubernetes Environment with AWS LambdaLiav Yona, MediumShows how a Lambda function triggered by SQS or SNS can forward events to an internal (ClusterIP) service in EKS through the Kubernetes API server’s service proxy, using IAM-to-RBAC mapping instead of exposing an endpoint, with code on GitHub. A clever pattern, but written for 2021-era EKS: it maps the IAM role through the aws-auth ConfigMap, and it routes application traffic through the cluster’s control plane.
Article· February 2021Alternative to AWS lambda serverless concept in Kubernetes?Stack Overflow question by ajsgA team running everything on Kubernetes asks how to get Lambda-style, per-request scaling for loading AI models from S3. The 2021 answers name Knative, KFServing (now KServe) and Kubeless (since archived), which makes it a quick snapshot of the options rather than an up-to-date guide.
Article· October 2020Is there a way to containerized a normal AWS Lambda function?Stack Overflow question by Sivvie LimA newcomer asks how to move an SNS-triggered Lambda function into a container on EKS. The answers, from October 2020, point to the lambci/docker-lambda images (since deprecated in favour of AWS’s official Lambda base images) and to Knative; read it mainly for the question, which is a common one, rather than for current tooling.
ArticleUsing Lambda with KubernetesAWS Lambda Developer GuideAWS’s short docs page on managing Lambda functions through the Kubernetes API, with either AWS Controllers for Kubernetes (ACK) or Crossplane, and the use cases for each (reusing RBAC and IAM roles for service accounts, GitOps, tag policies). It covers provisioning only: the functions still run on Lambda, not in your cluster.
All resources →

Often confused with

Where it came from2008–2025

Cloud platforms had been hiding servers for a while before anyone called it serverless. Google App Engine’s 2008 preview ran web apps without machines to manage, in exchange for strict rules such as code written only in Python and responses due within a few seconds. In October 2012 Ken Fromm wrote in ReadWrite that cloud apps were “moving into a serverless world”. The word didn’t mean servers would vanish: “It simply means that developers no longer have to think that much about them.”

AWS Lambda, announced in November 2014, turned that into a concrete model. You uploaded a single function, said which event should run it (a file landing in S3, a change in DynamoDB, a record in Kinesis) and paid per request plus each 100 milliseconds of compute. Microsoft announced Azure Functions on March 31, 2016, Google’s Cloud Functions reached general availability in 2018, and Cloudflare Workers (2017) ran functions at the network edge in lightweight V8 isolates. In 2019 a Berkeley paper predicted that serverless “will grow to dominate the future of cloud computing”.

The model has since stretched: Cloud Run applied it to whole containers in 2019, and AWS’s durable functions (2025) let a function pause and resume across long workflows.

Why it’s built this way

Code runs in response to events
Instead of a server waiting for work, the platform starts your code when something happens. That turned cloud services into building blocks you could glue together with small functions.
Pay per invocation and per slice of runtime
Billing in fractions of a second means idle code costs nothing and capacity scales to zero. The trade-off is the cold start when a new instance has to be created.
Short-lived, stateless instances
Early platforms capped requests at a minute and kept no local state, so they could start, stop and move instances freely. State lives in databases and queues instead.
Fast, strongly isolated sandboxes
Running strangers’ code in thousands of tiny instances needs isolation that starts in milliseconds, which is why platforms built V8 isolates (Cloudflare) and microVMs (AWS Firecracker).

Timeline

  1. 2008

    Google App Engine preview runs apps without managed servers

  2. 2012

    Ken Fromm’s ReadWrite essay describes a “serverless world”

  3. 2014

    AWS Lambda introduces event-driven functions billed per 100 ms

  4. 2016

    Microsoft announces Azure Functions

  5. 2017

    Cloudflare Workers runs functions at the edge in V8 isolates

  6. 2019

    Berkeley paper on serverless computing; Google launches Cloud Run

  7. 2025

    Lambda durable functions add long-running, checkpointed workflows

Sources11

Improve this page on GitHub