Serverless overview
This page explains what a serverless service is on the Crusoe Agent Platform, gives you a 30-second mental model of scale-to-zero, and shows how it compares to the equivalent products on AWS, GCP, and Azure.
What it is
You hand the platform a container image — a packaged copy of your app and everything it needs to run. The platform gives you back a running web endpoint. You never see or manage servers.
Four ideas do most of the work:
- Scale to zero. When nobody is calling your service, it runs zero copies and costs nothing in compute. The first request after an idle period "cold-starts" a copy — that request takes a few seconds — then requests are fast.
- Scale up automatically. Under load, the platform adds copies (called instances), up to a ceiling you set.
- Immutable revisions. Every deploy or edit creates a numbered snapshot of your service (
myservice-00001,myservice-00002, ...). A revision never changes after it is created. You can split traffic between revisions — for example, send 90% of requests to the old one and 10% to the new one to test it — and roll back by pointing 100% of traffic at an older revision. - Private by default. A new service is reachable only from inside your project. Turn on publish and the platform gives it a public HTTPS URL like
https://checkout-api-acme.apps.codyhill.dev, with TLS (the encryption behind the padlock in your browser) handled for you.
When to use it
Use a serverless service when you have a container image that speaks HTTP and you want an endpoint without running servers: an API, a web app, a model-serving backend, an internal tool. If you have a single Python function rather than a full container, Functions may be a better fit. If you are deploying an AI agent, use the Agent Engine.
The 30-second mental model
A request to your service takes this path:
When your service sits idle for about 90 seconds, the platform drains it to zero instances. The next request waits a few seconds while a fresh instance starts, then gets its response. Everything in between — routing, TLS, adding instances under load — is automatic. If a cold start is unacceptable for your use case, you can keep one instance always warm.
Behind the scenes, the platform records your service as a spec (the settings you asked for) and a controller continuously works to make reality match it. That is why deploys return "accepted" immediately and the service becomes Ready a little later — you can always check where things stand in the service's status.
How it compares
Every major cloud sells this same job — "give me a scale-to-zero HTTPS endpoint from a container" — but spreads it across two to four overlapping products. Here there is exactly one.
| Crusoe Agent Platform Serverless | GCP Cloud Run | AWS Lambda + App Runner | Azure Container Apps | |
|---|---|---|---|---|
| What you give it | A container image | A container image or source code | Lambda: a handler function. App Runner: an image or a repo — and App Runner is closed to new customers | A container image |
| Scale to zero | Yes, default (min instances 0) | Yes | Lambda: yes, per-request model | Yes (KEDA-based) |
| Revisions and traffic splits | Yes — same concept and behavior as Cloud Run | Yes | Different model (Lambda versions and aliases) | Yes — same revision concept |
| Product decisions to make first | None — one product | Cloud Run vs. Cloud Run functions | Lambda vs. App Runner vs. Fargate, plus API Gateway for HTTP | Container Apps vs. Functions vs. Functions-on-Container-Apps |
Honest caveats: the big clouds offer many regions, formal SLAs, and mature per-request billing. This platform is in alpha — one environment, no SLA yet, and deploys happen through the web console or the REST API (the CLI is read-only for serverless today). If you know Cloud Run, you already know our revision and traffic model; see the service mapping for the full translation table.
In this section
- Deploy a service — full walkthrough: image, console, API, status, and quota math.
- Autoscaling and scale to zero — min/max instances, concurrency, cold starts, keeping one warm.
- Public endpoints and domains — publishing, URLs, and TLS.
- Troubleshooting — real error messages and their fixes.