Ugrás a tartalomhoz
← Blog'a dön

Kendi platformumuzda nöbet — 100 site, 5 kişi ve gece 3'teki alarm

Kendi XCP-ng hipervizörümüz + NIP Platform 97 siteyi çalıştırıyor. 5 kişilik bir nöbet rotasyonu, bir alarm bütçesi ve tek kural: gece 3'te neyin uyandırabileceği, neyin sabahı bekleyeceği.

İyi bir nöbet rotasyonu, hiç uyandırılmayan değildir. Nöbetçinin neden uyandırıldığını tam olarak bildiği rotasyondur.

2024 ortasından beri tüm altyapımızı kendi XCP-ng hipervizör kümemizde çalıştırıyoruz — Nortinia NIP Platform üzerinden yönetilen 8 fiziksel makine, 47 sanal makine. Bugün üzerinde 97 müşteri sitesi, ~340 mikroservis + worker + zamanlayıcı örneği ve 11 milyon Postgres satırı çalışıyor. Nöbet rotasyonumuz 5 kişiden oluşuyor. Her yeni müşteri soruyor: "Gece 3'te çökerse ne olur?" Bu yazı bunun cevabı — ve neden 3 aydır gece hiç uyandırılmadığımın.

Alarm bütçesi — gece 3 kuralı

En büyük karar izleme altyapısı (Pino + Loki + Grafana + OpenTelemetry) değil, "alarm bütçesi" oldu. Tüm rotasyon için haftada en fazla 2 alarm gece (22:00–06:00) nöbetçiyi uyandırabilir. Bundan fazlası nöbetçinin sorunu değil — sistem önceliğidir. Pazar öğleden sonra rotasyon sorumlusu alarmların neden arttığını inceler; ya sorunu giderir ya da alarmı "sabah" alarmı olarak yeniden sınıflandırır. Oyun teorisi basit: pazartesi 5 gece alarmına izin verirseniz perşembeye 12 olur ve kimse uyuyamaz.

Gece 3'te neyin uyandırmasına izin var

  • Bir müşteri sitesinin 3 dakikadan uzun süre tamamen çökmesi (HTTP 5xx veya zaman aşımı > %95)
  • Postgres birincil sunucusunun çökmesi veya replikasyon gecikmesinin 2 dakikadan uzun süre 60 saniyeyi aşması
  • Bir XCP-ng düğümünün tamamen kesilmesi (diğer düğümler ICMP ile ulaşamıyor)
  • Ödeme hattının çökmesi (5 dakikadır Stripe webhook'u gelmiyor, BullMQ kuyruğunda > 1000 bekleyen iş)
  • Veri kaybı riski: yedekleme hattı 12 saattir başarıyla çalışmadı

Neler sabahı bekler

  • Yeniden başlatma döngüsündeki tek bir worker örneği (Kubernetes yeniden başlatıyor, durum kontrol altında)
  • 95. yüzdelik normalken 99. yüzdelikte gecikme anomalisi
  • 14 gün içinde süresi dolacak TLS sertifikası (Let's Encrypt otomatik yenileme zaten yeniden deniyor)
  • Disk kullanımı > %70 ama < %85 (%85 eşiği gece alarmını tetikler)
  • Müşteriye özel bir entegrasyonun (ör. bir CRM webhook'u) başarısız olması — yalnızca o müşterinin destek kanalında görünür

12 ay sonra rakamlar

Son 12 ayda rotasyon gece 67 kez uyandırıldı — haftada 1,3 kez, 2'lik bütçenin altında. 41'i gerçek olaydı (%61), 26'sı yanlış alarm (%39). Yanlış alarmların %80'i 3 alarm kuralından geliyordu; bu kuralları o zamandan beri sıkılaştırdık veya sabah alarmı olarak yeniden sınıflandırdık. Sabah görev listesinde 312 kayıt birikti — en yaygın "sessiz" sorunlar; asıl iş de bunlar, gece 3 paniği değil. 5 kişilik rotasyonda kişi başı alarm yorgunluğu: uyku bölünmeleri arasında ~9,5 hafta.

İyi nöbet bir kahramanlık değildir. Bir süreçtir — sistemi kişinin değil, sistemin kendisinin ayakta tuttuğu bir süreç.
Norbert Kubinyi

Bir konuyu ele almamızı ister misiniz?

Bize yazın — bu konuda gerçek deneyimimiz varsa yayımlarız.