CI for serving · Demo
A gate on generate. Probes you can see. Idle when the GPU is quiet.
Harbor, Fieldline, Ledgerbox, and Folio already call generate or
query here. I probe those paths, smoke them before a change lands,
and keep an idle policy in writing so a GPU does not run all night.
Your engineer gets the same shape: health, a CI gate, a cost policy,
and a runbook they can run without me.
Example 1 · live · the APIs I already run
Harbor, Fieldline, Ledgerbox, Folio
Four thin UIs on this machine. Three POST to the same generate
path. Folio POSTs to query. Fictional product names; the APIs are
real and running here. That is why CI for this machine is not a mock —
it smokes the same endpoints those pages use. GitHub Actions runs
that smoke after each push to a private repo (CPU Ollama on a
runner). I copy a green commit to this host; Actions does not
deploy it.
A paid install points the same checks at your generate and
query URLs. You keep the product screen. I keep the probe, the
gate, and the runbook.
Before · wait
Ship a change.
Hope generate still answers…
A user finds it first.
After · smoke
Health, 401, then a real call.
Bad change fails in CI.
The example UIs stay up.
Example 2 · demo · GPU idle
Hearth
A product team rents a GPU so generate is fast. Nobody is calling
it at 2am. The replica stays at one because they might need a
demo in the morning. The meter still runs. Fictional product. Not
a real firm. No invented dollar-per-month number.
A paid install writes the idle rule on their GPU: fifteen
minutes of zero traffic, scale to zero. Cold start is acceptable
for that load. This demo machine is CPU. GPU spend here is $0. The
policy text lives on the status page — not a fake bill.
Before · always on
Replica stays at one.
GPU still billed at 2am…
Nobody is calling generate.
After · idle to zero
QPS is 0 for 15 minutes.
Scale replicas to 0.
/health when it is up. Cap in writing.
Example 3 · live · probes
Status
The status page probes inference and retrieval on this machine. If
Ollama is down, you see it. Cost policy and runbook sit next to the
probes as written — not a dashboard product, and not a fake SLA.
This is CI I run on my own APIs first. A paid job uses your host
names and your load balancer. Same click.
Before · quiet
No probe.
The model dies overnight…
Nobody notices until morning.
After · a probe
Load balancer hits /health.
Status shows the same check.
Idle policy is on the page.