Skip to content

ops(dev): pin backend to dev-pool, off spot (closes #678)#679

Merged
lilyshen0722 merged 1 commit into
mainfrom
ops/backend-to-dev-pool
Jul 12, 2026
Merged

ops(dev): pin backend to dev-pool, off spot (closes #678)#679
lilyshen0722 merged 1 commit into
mainfrom
ops/backend-to-dev-pool

Conversation

@lilyshen0722

Copy link
Copy Markdown
Contributor

Last piece of "routine cluster events never cause user-visible downtime," and the cheap alternative to replicas=2 (which Sam correctly flagged as expensive).

What: backend Deployment gets pool: dev nodeSelector + pool=dev:NoSchedule toleration in values-dev — same shape Redis got in #676. replicaCount stays 1.

Why ~$0: backend requests only 200m CPU / 512Mi and the dev-pool node has ~1150m free, so it fits on hardware already paid for — no new node. Removes the user-facing API from preemptible hardware entirely, so an abrupt spot reclamation (the trigger for two 503s on 2026-07-12) can't touch it. Cheaper and simpler than a 2nd replica, which would stay on spot and need anti-affinity + a PDB to get the same resilience.

Principle (ADR-015 amendment): spot is right for restartable/batch workloads (agents, LiteLLM). The user-facing API and Redis belong on the stable pool. Redis moved in #676; this finishes the job.

Zero-downtime deployable thanks to #676's RollingUpdate. Verification after merge+deploy: confirm the backend pod lands on a dev-pool node and health stays 200 through the reschedule.

Closes #678

🤖 Generated with Claude Code

https://claude.ai/code/session_01MnRCAFgjrrGZxo9VRCmCm9

The backend serves the user-facing API — the one workload a spot
reclamation must never interrupt (two user-visible 503s on 2026-07-12
traced to backend co-located on spot). It requests only 200m/512Mi and
fits existing dev-pool headroom (~1150m free), so pinning it to the
on-demand pool closes the abrupt-reclamation gap for ~$0 — cheaper than
a 2nd replica, which would stay on spot and need anti-affinity to help.

ADR-015 amendment: spot is for restartable/batch (agents, LiteLLM); the
user-facing API + Redis belong on dev-pool. Redis moved in #676; this
finishes it. Zero-downtime deployable via #676's RollingUpdate.

Closes #678

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01MnRCAFgjrrGZxo9VRCmCm9
@lilyshen0722
lilyshen0722 merged commit c5cd5e1 into main Jul 12, 2026
11 checks passed
@lilyshen0722
lilyshen0722 deleted the ops/backend-to-dev-pool branch July 12, 2026 11:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move backend off spot-pool to dev-pool (single replica) — close abrupt-reclamation gap for ~$0

2 participants