diff --git a/CHANGELOG.md b/CHANGELOG.md index cf9a083bd1..c4f04f8c12 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,16 @@ aggregate instead: an italic *Catalog* line at the end of the version section an ## [Unreleased] +### Changed + +- **`anyplot-app` scales to zero** — the frontend service ran a permanently warm + instance for ~EUR 8.30/month while 99.56% of the paid time was idle. It is a static + nginx image that boots in ~0.26 s, and a 7-day request trace at one-minute resolution + shows the longest gap between requests is 11 minutes, against Cloud Run's ~15-minute + idle window — so the instance is in practice never reclaimed and visitors keep the + same time to first byte. `anyplot-api` keeps `min-instances=1`: its cold start is + ~11.6 s and its traffic does leave gaps over 15 minutes. (#10812) + ## [3.2.0] — 2026-08-29 — Findable by assistants anyplot 3.2 makes the catalogue findable by assistants, not only legible to them. The sister diff --git a/app/cloudbuild.yaml b/app/cloudbuild.yaml index d749fb7219..83914a107f 100644 --- a/app/cloudbuild.yaml +++ b/app/cloudbuild.yaml @@ -53,8 +53,13 @@ steps: - '1' - '--timeout' - '60' + # Scale to zero: this is a static nginx that boots in a fraction of a + # second, and its traffic is dense enough that Cloud Run rarely reclaims + # the instance anyway, so a warm one bought almost nothing. The API keeps + # min-instances=1 — its cold start is orders of magnitude larger. + # Measurements behind this: #10812. - '--min-instances' - - '1' + - '0' - '--max-instances' - '3' - '--port'