Aggiunge l'autoscaler streaming con warm spare e kill-switch.
Scala i nodi overflow quando gli slot calano, mantiene una spare a caldo sotto carico e spegne gli idle, disattivabile con STREAM_AUTOSCALE_ENABLED. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -210,7 +210,7 @@ Cosa il lab **non** replica al 100%: tempi boot Hetzner, vSwitch, RTMP 4G multi-
|
||||
| **0 — Multi-nodo ready** | Registry + URL RTMP/HLS in API (`StreamNode`, `Streams::NodeRegistry`) | **implementata sul branch** |
|
||||
| **1 — Hetzner Cloud + DNS** | `HetznerCloudProvider` + `HetznerDnsProvider`, `mltv-stream.net`, cloud-init, WireGuard (§16) | **implementata sul branch** (WG ops manuale) |
|
||||
| **2 — Routing relay** | Coda `youtube_relay`, sticky owner, cap `RELAY_MAX_CONCURRENT` | **implementata sul branch** |
|
||||
| **3 — Autoscaler** | Soglie + warm spare (+1) | Automatico |
|
||||
| **3 — Autoscaler** | Soglie + warm spare (+1), kill-switch `STREAM_AUTOSCALE_ENABLED` | **implementata sul branch** |
|
||||
| **4 — Hardening** | Drain, budget, runbook, kill-switch | Picchi weekend |
|
||||
| **A — Auction (futuro)** | Migrazione control plane + vSwitch al posto di WireGuard | Hardware dedicato Hetzner |
|
||||
| **B2 (opz.)** | Switch object storage | Quando misurato |
|
||||
@@ -250,6 +250,16 @@ Cosa il lab **non** replica al 100%: tempi boot Hetzner, vSwitch, RTMP 4G multi-
|
||||
- Cap per worker: `RELAY_MAX_CONCURRENT` (default 4) + set Redis `youtube_relay:owned:HOSTNAME`
|
||||
- Ensure a capacità piena → requeue 5s invece di avviare un secondo ffmpeg locale
|
||||
|
||||
### Fase 3 — dettagli implementati
|
||||
|
||||
- `Streams::Autoscaler` + job chain `Streams::AutoscalerJob` (come health monitor)
|
||||
- Kill-switch: `STREAM_AUTOSCALE_ENABLED=1` per attivare
|
||||
- Scale-out se `free_slots ≤ STREAM_AUTOSCALE_SOFT_FREE_SLOTS`
|
||||
- Warm spare (+N) se carico/soglia e `spare_ready < WARM_SPARE`
|
||||
- Scale-in overflow idle da `IDLE_MINUTES` (non tocca home; rispetta warm spare)
|
||||
- Cap `STREAM_AUTOSCALE_MAX_NODES`; kind `lab|cloud`
|
||||
- Metriche in admin Nodi stream
|
||||
|
||||
Ordine di lavoro consigliato sul branch: **0 → L → 1 → 2 → 3 → 4**; **A** quando si decide di lasciare il Proxmox casa.
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user