On-call saját platformon — 100 site, 5 ember, és a 3 órai pager
Saját XCP-ng hypervisor + NIP Platform 97 site-ot futtat. 5 fős rotáció, alert-budget, és a szabály: mi szólhat 3 órakor, és mi vár reggelig.
A jó on-call rotáció nem az, amit nem szakítanak meg éjjel. Az, amelyikben az ember reggel pontosan tudja, miért keltették.
2024 közepe óta saját XCP-ng hypervisor-kluszteren futtatjuk a teljes infrastruktúránkat — 8 fizikai gép, 47 VM, a Nortinia NIP Platform-on keresztül menedzselve. Ma 97 ügyfél-site él rajta, ~340 microservice + worker + scheduler instance, és 11 millió Postgres-sor. Az on-call rotációnk 5 emberes. A kérdés, amit minden új ügyfél feltesz: "ha éjjel 3-kor leáll a rendszer, mi történik?". Erről szól ez a poszt — és arról, hogy miért nem keltettek fel idén már 3 hónapja.
Az alert-budget — a 3 órai szabály
A legfontosabb döntés nem a monitoring-stack volt (Pino + Loki + Grafana + OpenTelemetry), hanem az "alert-budget". Hetente legfeljebb 2 alert csenghet ki éjszaka (22:00-06:00 között) a teljes rotációnak. Ha többször csengett, az nem az on-call problémája — az egy rendszer-prioritás. Vasárnap délután a rotáció felelős utánajárni, miért lett több az alert, és vagy fixálni vagy átsorolni "reggeli" alertté. Ez a játékelmélet egyszerű: ha 5 alert-et engedünk éjjel hétfőn, csütörtökre 12 lesz, és senki nem alszik.
Mit szabad pageelni 3 órakor
- Teljes ügyfél-site nem elérhető > 3 perce (HTTP 5xx vagy timeout > 95%)
- Postgres primary down vagy replication-lag > 60 másodperc 2 percnél tovább
- XCP-ng node teljes kiesés (a többi node-ról ICMP-hez nem válaszol)
- Fizetési pipeline kiesés (Stripe webhook 5 perce nem érkezik, BullMQ queue > 1000 várakozó)
- Adatvesztés-veszély: backup-pipeline 12 óra óta nem futott le sikeresen
Mi vár reggelig
- Egyetlen worker instance restart-loop-ban (Kubernetes újraindítja, kontrollált)
- Latency-anomália a 99. percentilisen, ha a 95. még jó
- TLS-tanúsítvány lejár 14 nap múlva (Let's Encrypt auto-renew már próbálkozik)
- Lemez kihasználtság > 70%, de < 85% (a 85%-os küszöb az éjjeli)
- Egy ügyfél-specifikus integráció (pl. egy Hubspot webhook) elesett — csak az adott ügyfél támogatási csatornáján jelenik meg
Számok 12 hónap után
Az utolsó 12 hónapban a rotáció 67 alkalommal lett éjjel keltve, ami heti 1.3 — a 2-es budget alatt. Ebből 41 valós incidens volt (61%), 26 vakriadó (39%). A vakriadók 80%-át 3 alert-szabály okozta, amiket azóta vagy szigorítottunk vagy reggelivé tettünk. A reggel-feladatlista 312 ticketet tartalmazott, ami a leggyakoribb "csendes" probléma volt — ez a tényleges munka, nem a 3 órai pánik. Az egyszemélyes pager-fáradtság az 5-fős rotációban ~9.5 hét közötti óvodás-jellegű alvás-megszakítás.
A jó on-call nem egy hős. Egy folyamat — amiben a rendszer, nem az ember tartja egyben magát.