Serverless changed web deployment because web workloads are small, cold starts are milliseconds, and traffic is spiky. AI workloads are different: models are heavy, cold starts are seconds, and latency budgets are tight. Serverless still has a real place in AI — the skill is knowing exactly where the cut line is.
What serverless buys
- Zero idle cost — you pay for execution, not for a warm cluster.
- Infinite burst — traffic spikes don't require capacity planning.
- No fleet operations — no nodes, no patches, no bin-packing.
For webhooks, batch jobs, and spiky interactive traffic, these are decisive. The question is what the model-loading latency does to your workload.
The cold-start math
A serverless instance that has been idle must load the model before the first request:
function code + deps: ~100–300ms
model load (small, distilled): ~1–3s
model load (7B+ dense): ~5–30s
embedding model: ~1–2s
For a chat UI where users expect a response in ~2s, a 15s cold start is a product failure. For a batch job that processes 10,000 documents, a 15s cold start once per worker is noise. The workload's latency budget is the entire decision.
The fit matrix
| Workload | Serverless? | Why |
|---|---|---|
| Webhook-triggered enrichment | ✓ | Spiky, latency-tolerant |
| Batch summarization/classification | ✓ | Throughput, not latency |
| Bursty chat (few users, unpredictable) | Maybe | Cold starts vs idle cost |
| Steady interactive chat | ✗ | Persistent warm serving wins |
| Training / long evals | ✗ | Timeouts and cost |
| Tight p99 API | ✗ | Cold starts break the budget |
Warm-start engineering
Where serverless fits but cold starts still bite, the mitigations:
- Keep-warm pings — a scheduler hits the function every few minutes; costs a few executions, eliminates most cold starts.
- Smaller models at the edge — a distilled model loads in 1–2s (inference optimization); route simple tasks there.
- Provisioned concurrency — platforms let you pre-warm a minimum number of instances for a fee; use it for the p95 floor.
- Embeddings are the friendliest — small models, fast loads, and semantic caching makes them ideal serverless citizens.
The hybrid pattern
Production AI systems rarely choose one runtime. The pattern that works:
webhook / batch ─► serverless functions (embeddings, small models)
chat / interactive ─► persistent serving (warm, GPU or API)
routing ─► model router decides per request
The model routing layer makes the mix invisible to callers: same interface, different runtimes behind it.
Cost modeling: serverless vs fleet
The economics are the honest way to decide. Model the monthly bill for a spiky workload two ways:
- Serverless. You pay per execution (compute-seconds × a multiplier for memory/GPU) plus invocations. A bursty workload that runs 2 hours/day costs roughly 2 hours of compute, not 24 — which is exactly why serverless wins on spikes.
- Fleet. You pay a fixed rate for the capacity you reserve, whether or not it is used. A dedicated GPU that is 80% idle during off-peak hours is billing you for idle silicon (GPU orchestration guide shows how to keep fleets busy; serverless is the alternative of owning none).
The crossover is the opposite of the LLM case in some ways: serverless shines on bursty, latency-tolerant work; a fleet wins on sustained, latency-critical work. Run the spreadsheet for your actual daily traffic shape, not a generic assumption.
Security boundaries in serverless
Serverless changes the security surface in two useful directions:
- Smaller blast radius by default. Each function is short-lived and stateless; there is no long-lived instance to pivot from. Compromise of one invocation does not persist.
- But secrets handling changes. Env-injected secrets and function permissions must be scoped tightly — a function that embeds, say, should not also have delete permissions. Apply least privilege per function (AI security guide).
- Audit the dependency supply chain. Serverless runtimes build your function image; pin dependencies and scan them, because you are shipping more of the platform's surface than you might think.
- Cold-start as a DoS vector. Unauthenticated, expensive-to-cold-start functions can be hammered to run up your bill. Rate-limit and gate functions behind auth where possible.
A worked decision: three real workloads
- Email/webhook enrichment (spiky, latency-tolerant): serverless. A 15s cold start once per webhook is noise next to the cost of a warm cluster.
- Support-bot chat (steady, interactive): persistent serving. Users feel cold starts directly; keep it warm (inference optimization).
- Periodic batch summarization (scheduled, throughput-bound): serverless. A daily cron that processes 10k documents across parallel functions is the ideal shape.
In practice, most platforms end up hybrid — serverless for the spikes, warm serving for the steady stream, and a router in between.
Key takeaways
- Serverless fits spiky, latency-tolerant workloads: webhooks, batch jobs, and scheduled enrichment.
- The cold-start math is the whole decision — a 15s load breaks a chat UI and is noise for a batch job.
- Keep-warm pings, distilled models at the edge, and provisioned concurrency mitigate cold starts where they bite.
- The production answer is usually hybrid: serverless for spikes, warm serving for the steady stream, routing in between.
When serverless is the wrong answer
It is equally important to recognize the misfits. Steady interactive chat, tight p99 latency APIs, long-running evals, and training are poor serverless fits — cold starts and execution time limits break them. Choosing a fleet for those is not a failure to embrace serverless; it is correctly identifying where the model-loading latency and runtime limits make warm, persistent serving the right tool. The skill is the boundary, not the dogma.
Reviewing the decision
Revisit the serverless-versus-fleet question on a quarterly cadence, because the workload and the unit economics both drift. A feature that was batch-only last quarter may have become interactive; a fleet that looked idle may now be the right home. The boundary between serverless and persistent serving is a living decision, not a one-time choice.
Conclusion
Conclusion
Serverless AI fits spiky, latency-tolerant workloads — webhooks, batch jobs, enrichment — and struggles with steady interactive traffic where cold starts break budgets. The production answer is usually hybrid: serverless for the spikes, persistent serving for the steady stream, routing in between. The LLM deployment strategies article lays out the full menu of runtimes.
