Sağlık kontrol mekanizmaları
1) Neden
Sağlık kontrolleri basamaklı arızalara karşı ilk engeldir: Düğümleri rotasyondan doğru bir şekilde kaldırır, yeniden ödeme fırtınalarını önler, bozulmayı basitleştirir ve iyileşmeyi hızlandırır, SLO'yu korur ve MTTR'yi azaltır.
2) Temel kontrol türleri
Canlılık - süreç "canlı" (kilitlenme/sızıntı/panik yok). Hata - örneği yeniden başlat.
Hazırlık - hizmet, hedef SLO'larla trafiğe hizmet verebilir (havuzlar yükseltilir, önbellek ısıtılır, bağımlı kaynaklar normaldir). Hata - dengeleme dışında tutulur, ancak yeniden başlatılmaz.
Başlangıç - hizmet canlılık/hazırlığa gitmeye hazır (uzun bootstrap, göçler, ısınma). Erken yeniden başlatmalara karşı korur.
Derin sağlık (alana özgü): iş değişmezleri (oran uçtan uca geçer, depozito aktif PSP tarafından yetkilendirilir). Bozulma sinyalleri için kullanılır, ancak hemen yeniden başlatma için kullanılmaz.
Harici/Sentetik: Dışarıdaki aktif pingler (API yolu, ön komut dosyası, PSP/KYC uç noktası) - kullanıcı kullanılabilirliğini ölçer.
3) Örnek tasarım: genel kurallar
1. Ucuz canlılık: dış bağımlılıklara gitmeyin; Olay döngüsünü kontrol et, yığın/FD, bekçi köpeği.
2. SLO tarafından hazırlık: Bakım için gereken yerel kaynakları kontrol ediyoruz (veritabanı havuzları, sıcak önbellek, sınırlar). Dış bağımlılıklar - engellemesiz "hizmet edebilir mi?" Sinyaller.
3. Gecikme bütçesi: Her örneğin kendi SLA'sı vardır (örneğin, ≤100 -200 ms); aşılırsa - "bozulmuş", ancak canlılıkta 5xx değil.
4. Backoff & Jitter: örnek aralıkları 5-15 saniye, zaman aşımı 1-2 saniye, eşzamanlı fırtınaları önlemek için hatalarda üstel gecikme ile.
5. Histerezis: Durum değişikliği için N başarı/hata yanıtı (örn. 'başarıEşik = 2', 'başarısızlıkEşik = 3').
6. Sürüm oluşturma: uç noktalar'/healthz ','/readyz','/startupz 'sabittir; '/health/... altında derin kontroller 'adında çeklerle.
7. No secret ve PII: Cevaplar sadece durum ve kısa kodlardır.
8. Açıklanabilirlik: Alt kontrollerin bir listesi ile JSON: '{"status ": "degraded ", "checks ": [{"name ": "db"," ok": true," latencyMs": 18}, {" name":" psp. eu, ""ok ": false, "reason":" timeout"}]} '.
4) Katmanlara göre derin kontrol örnekleri
4. 1 DB/Önbellek/Depolama
DB: kısa işlem 'SELECT 1' replika ve havuz kontrolünü okumak için; Gecikme/çoğaltma-gecikme eşikleri.
Önbellek: 'GET'/' SET' test tuşu + hit-ratio guard (düşük isabetli uyarı).
Nesne Depolama: Mevcut bir nesnenin HEAD'i (indirme yok).
4. 2 Kuyruklar/Akış
Broker: Ping-topic yayınla + yerel bölüm içinde tüket; tüketici-gecikme eşikleri.
DLQ: Pencere başına ölü harfli mesajlarda artış yok.
4. 3 Harici sağlayıcılar (PSP/KYC/AML)
PSP: hafif auth-probe (parasal olmayan), sözleşme/sertifika/kotaların doğrulanması; Güvenli örnekler yoksa, proxy metrikleri kullanıyoruz (bankalar/GEO tarafından 5-10 dakika içinde yetkilerin başarısı).
KYC/AML: Sağlık-API ve SLA kuyrukları; Bozulma durumunda - alternatif bir akışa/sağlayıcıya geçmek.
4. 4 API/Ön
Sentetikler: EU/LATAM/APAC'da işlem yolu (oturum açma - para yatırma başlatma - "kumda" bahis).
RUM sinyali: JS/HTTP ve LCP/TTFB hatalarının oranı - "dışarıda" tetikler.
5) Platform entegrasyonu
5. 1 Kubernetes/Bulut
'startupProbe' bootstrap (geçişler/önbellek ısınma) korur.
'livenessProbe' minimalist; 'readinessProbe' havuzları/önbelleği/yerel kuyrukları dikkate alır.
Параметры: 'Initial' DelaySeconds ',' periodSeconds ',' timeoutSeconds ',' failureThreshold ',' successThreshold '.
PodDisruptionBudget ve maxUnavailable hazır olmayı düşünüyor.
HPA/KEDA: kuyruk ölçekleme/SLI; Hazırlık, yönlendirmeyi etkiler.
5. 2 Dengeleyiciler/ağ geçitleri/kafes
L7 düzeyinde sağlık yönlendirme (HTTP 200/429/503 semantik).
Outlier detection (envoy/mesh) - havuzdan hata oranı/gecikme yüzdeleri ile çıktı.
Devre kesici: eşzamanlı istekler/bağımlılığa bağlantılar, sağlık sinyalleriyle entegrasyon için sınırlar.
5. 3 Otomatik ölçeklendirme ve bozulma
Hazırlık = YANLIŞ - trafik kaldırılır, ancak pod canlıdır (ısınabilir).
Deep-degrade (PSP down) - zarif mod için özellik bayrakları (örneğin, ödeme yöntemlerini geçici olarak gizleyin, bekleme odasını etkinleştirin).
6) Zaman aşımı ve geri çekilme politikaları
Timeout <SLO budget: Eşzamanlı bağımlılıklar için 'timeout = min (⅓ p99, 1-2s)'.
Idempotence: retrays için zorunlu; Idempotency tuşlarını kullanın.
Üstel gerilik + titreme: eşzamanlı şaft efektlerini önler.
Retray bütçeleri: istek/kiracı başına sınırlar, "yeniden fırtınalara" karşı koruma.
7) Durum sinyalleri ve uyarı
Yeşil/Sarı/Kırmızı: Servis panosundaki özet durumları.
SLO ile yanma oranı uyarıları: hızlı (1 saat) ve yavaş (6-24 saat).
Korelasyon-ipuçları: Yayın/Özellik Bayrağı/Plan Etkinlik Notları.
Otomatik işlemler: "kırmızı" derin kontrol ile - sağlayıcının geri dönüşünü açın, parça örneklemesini artırın.
8) iGaming için akıllı stratejiler
Ödemeye hazır olma: Bahis servisinin hazır olma durumu, PSP yönlendiricisinin durumunu ve bankaların/GEO'nun limitlerini dikkate alır.
Oran/Satır yayınlama: Yayıncıda hazır olma/kenar önbelleğindeki satır kaynak ve dağıtım süresine göre değişir.
Turnuva çivileri: Daha agresif aykırı algılama ve bekleme odası geçici bir politika.
9) Antipatterns
Liveness, hangi veritabanı/PSP gider - kitle harici bir sorun için yeniden başlatır.
Ayırma başlangıcı/hazırlığı/canlılığı olmayan bir "evrensel'sağlık uç noktası.
Backoff/jitter olmadan zor zaman aşımları - retray fırtına.
Histerezis yok - yönlendirme çırpması.
Yeniden başlatmayı tetikleyen derin kontrol (amacı yeniden başlatma değil tanılama ve yönlendirmedir).
Sağlık uç noktalarında gizli 5xx (gerçek durumu maskeleme).
10) Arayüz şablonları
/ startupz> '200 OK {"uptimeSec": ..., "sürüm":"..."}'
Denetimler: init komut dosyaları, geçişler tamamlandı, anahtarlar ve yapılandırmalar yüklendi.
/ healthz (liveness) - '200 OK {"heapOk": true, "fdOk": true, "eventLoop":'tamam "}'
Kontroller: olayların döngüsü, süreç kaynakları, panik/oom bayraklarının yokluğu.
/ readyz (hazır olma)
'200 OK/503 {"canServe ": true, "db ": {"ok ": true, "latencyMs ": 12}, "cache ": {"ok ": true}," queue": {" ok": true," lag": 0}," localQuotan": {" ok": true} '
/ sağlık/ödemeler (derin)
'200/206/503 {"psp. eu ": {" ok ": false," reason ":" timeout "}, psp. alt ": {"ok": true}, "routerMode ":" failover"} '
11) Sağlık devresi kalite ölçümleri (KPI/KRI)
Pod çıkış zamanı 'NotReady'den' Ready'ye (warmup-SLO).
Servis başına çırpma hazırlığı sıklığı.
% yanlışlıkla yeniden başlatılan pod (kök neden - dış bağımlılık).
Sağlık mekanizmalarının rol oynadığı olayların MTTR'si (önce/sonra).
Otomatik yük devretme/özellik bozulması paylaşımı çağrı olmadan.
Sentetiklerin doğruluğu vs RUM (false positives/misses).
12) Uygulama Yol Haritası (4-8 hafta)
Ned. 1-2: kritik yol envanteri; Post-startup/liveness/readiness; Alt kontroller ve histerezis ile JSON yanıtlarını girin.
Ned. 3-4: derin kontroller ekleyin: veritabanı/önbellek/broker; 2-3 GEO'da oturum açma/para yatırma/bahis için sentetikler; / mesh ağ geçidinde aykırı değer algılamasını etkinleştirin.
Ned. 5-6: PSP-fallback и ödemeye hazır olma; Ön taraf için bekleme odası; Gecikme/kuyruklara göre otomatik ölçeklendirme; Yanma oranı ile uyarır.
Ned. 7-8: kaos günleri (PSP/veritabanı kopyalarını devre dışı bırakma), backoff/jitter kontrolü; Zaman aşımı ayarı, PDB; KPI raporu ve düzeltme.
13) Eserler
Sağlık Spec (hizmet başına): kontroller listesi, zaman bütçeleri, histerezis, kırmızı durumu ile eylemler.
Runbooks: "Readiness = FALSE: What are we doing? ", "PSP-fallback: steps and return criteria" (Hazır olma = YANLIŞ: Ne yapıyoruz?)
Yönlendirme Politikası: aykırı-algılama kuralları, devre kesiciler, yüzdelik eşikleri.
Sentetik Oyun Kitabı: senaryolar ve coğrafyalar, SLO sentetikleri, program.
Release Gate: Kırmızı derin kontrol anahtar bağımlılıkları ile serbest bırakma blokları.
Sonuç
İyi tasarlanmış bir sağlık kontrolleri döngüsü, katmanlı bir sinyal sistemidir: proses canlılığı için kolay yaşanabilirlik, trafik hizmeti yeteneği için hazır olma, güvenli başlangıç için başlatma ve yönetilen bozulma ve yönlendirme için etki alanına özgü derin kontroller. Autoscaling, outlier-routing, synthetics ve SLO-alerting ile birlikte, kademeli hata riskini azaltır, MTTR'yi azaltır ve iGaming platformlarının iş açısından kritik yollarını stabilize eder.