Kumarhaneler için yük devretme, replikasyon ve DR planları
1) İş hedefleri: RTO/RPO ve kritik akış
RTO (hizmetin kullanılamayacağı süre): giriş/oran/depozito - saniye/dakika; raporlar - saatler.
RPO (ne kadar veri kaybolabilir): cüzdan/işlemler - ~ 0-30 saniye; telemetri - dakika.
Kritik akış: giriş, para yatırma/çekme, bahis/ödeme, KYC/AML-tasmaları, PSP/oyun sağlayıcı web kitapları.
2) Mimari hata toleransı kalıpları
Aktif-Aktif (çok bölgeli): Her iki bölge de trafiği idare eder; Düşük RTO/RPO, karmaşık tutarlılık.
Aktif-Bekleme: Çalışmakta olan bir bölge, ikinci sıcak; Daha kolay durum, RTO dakikaları.
Hücre tabanlı: "Hücreler" (pazar/marka) tarafından izolasyon, yerel olaylar her şeyi aşağı çekmez.
Kenar pasta: Anycast CDN/WAF - bölgesel ağ geçitleri - uygulama kümeleri - Çoğaltma ile DB/önbellekler.
3) Trafik yönetimi ve ağ sahte
Anycast + CDN/WAF: L3/4/7 alımı, menşei için sağlık kontrolü.
DNS-feilover (düşük TTL, çok değerli), Trafik Yöneticisi/GSLB sağlık ölçümleri.
Hızlı yol değişikliği için anti-DDoS sağlayıcısı aracılığıyla BGP duyurusu.
Sağlık kontrolü (mantık örneği):
eğer p95_latency>threshold        5xx_rate>threshold        synthetic_login_fail:
drenaj (region_A); Shift (trafik-> bölge _ B, rampa = 5dk)4) Veri: cüzdan, emirler, bahisler
Gerçeğin kaynağı defterdir: sadece ekle, 'operation _ id'ile idempotence.
Mutabakat: Defter, PSP ve oyun sağlayıcıları arasındaki periyodik uzlaşma işleri.
Anti-double: mevduat/sosis/ödemeler için idempotency anahtarları; Giden/gelen kutusuna veri tekilleştirme.
5) Veritabanı Çoğaltma - Seçenekler ve Tradeoffs
Fiziksel senkron (yarı senkron): Minimum RPO, gecikme riski - noktasal olarak uygulanır (cüzdan).
Asenkron: daha yüksek performans/basitlik, RPO saniye-dakika - oyun meta verileri, referans kitapları için.
Mantıksal (CDC - başka bir bölgeye akış): çapraz motorlar ve analizler için uygun, esnek seçicilik.
Önbellekler (Redis/Memcached): gerçeğin kaynağı olarak değil; replika/anlık görüntüler, sıcak başlangıçlar.
PITR: Offsite depolama, kurtarma penceresi ≥ 7-30 gün için sürekli günlükleri (WAL/redo).
6) Tutarlılık ve uzlaşma kalıpları
Saga + Outbox: Bir adımlar zinciri olarak ticari işlemler, olayları veritabanına yazarak atomik olarak yayınlama.
Tam olarak bir kez "anlam": operasyonların idempotensi, denge versiyonlarının kontrolü (iyimser kilitleme).
Anahtar olmayan akışta nihai tutarlılık (lider kurulu, analitik); para için güçlü.
7) Bileşenler ve feilover
API/arka uç
Statles konteynerleri, autoscale, mavi-yeşil/kanarya; Depolama yoluyla yapılandırır (sürüm oluşturma ile).
Kuyruklar/Akışlar
Çekirdek kümeleri (N = 3/5), çapraz AZ kopyası; Yineleme ilkeleri ve dlt kuyrukları.
Cüzdan DB
A Bölgesi'nde Primari, A'da (diğer AZ) senkronizasyon kopyası, B Bölgesi'nde asenkron; Split-brain ile otomatik tanıtım yasaktır - sadece bir kontrol listesi ile manuel/komut dosyası.
Dosyalar/CUS Artefaktları
Sürümleme ile nesne depolama, bölgeler arası çoğaltma/CRR, KMS'de anahtarlar.
WebSocket/Gerçek zamanlı
Anahtarlarla sharding (tablo/oyun/pazar), yapışkan yönlendirme; Bir feiler ile - yeniden bir token ile yeniden abone olun.
8) Ödemeler ve oyun sağlayıcıları: Gerçeğin birçok kaynağı
PSP-feilover: Her yöntem için en az 2 sağlayıcı (kart, cüzdan, kripto).
SLA/value/banlists BIN ile yüzde yönlendirme; Bozulmuş PSP'nin otomatik devre kesici tarafından devre dışı bırakılması.
Oyun sağlayıcıları: yedekleme kanalları/ASN izin listesi, bölgelere bireysel anahtarlar, zaman aşımları izolasyonu.
9) Webhooks ve sosisler: sürdürülebilir alım ve üreme
Gelen kutusu deseni: webhook'u kabul ediyoruz - imzayı/NMAS'ı kontrol edin - değişmez gelen kutusuna yazın - işçiyi idempotently olarak işleyin.
Sağlayıcıların retrays: backoff + dedup by 'event _ id'/' signature'.
DR'de: sipariş kontrolü ile gelen kutusundan tekrar oynatın (txn ^ settlement).
10) Yedeklemeler: 3-2-1 stratejisi ve kurtarma kontrolleri
3 kopya/2 medya/1 site dışı (ve kritik dergiler için 1 çevrimdışı/WORM).
Programlar: günlük anlık görüntüler + kalıcı dergiler; "Karanlık" standına haftalık test geri yükleme.
Kurtarma dizinleri: "T- Δ sırasında cüzdanınızı nasıl yükseltebilirsiniz".
11) DR planı: roller, senaryolar, iletişim
Роли: Olay Komutanı, İletişim, DB Kurşun, Uygulama Kurşun, Ödemeler/Oyun PM, SRE Oncall.
Kanallar: savaş odası, durum sayfası, destek/ortaklar/bağlı kuruluşlar için mesaj şablonları.
Senaryolar (minimum):- AZ kaybı, bölge kaybı, PSP kullanılamaması, veritabanı küme düşüşü, oyun sağlayıcı bozulması, anahtar sızıntısı, büyük 5xx.
12) DR senaryo matrisi örneği
13) Runbook ve Otomasyon
"DR-cutover" düğmesi: doğrulama ile adımların sırası (freeze writes, promote, sıcak önbellekler, rampa trafiği).
Bütünlük kontrolü komut dosyaları: defter/cüzdan tutarlarının uzlaştırılması, denge tutarlılığı.
Özellik bayrakları: Bir kaza sırasında raporları/dışa aktarma/ağır gösterge panolarını hızlı bir şekilde devre dışı bırakın.
14) Bir feilover için gözlemlenebilirlik
Tetikleyiciler olarak SLO metrikleri: giriş, para yatırma, bahis, oyun başlatma.
Технические: replication-lag, WAL-shipping, queue-lag, 5xx, p95, SYN backlog, WebSocket bağlantısı kesilir.
Diğer bölgelerden sentetik senaryolar: Her dakika giriş/para yatırma/bahis.
Uçtan uca izler, 'bölge', 'psp', 'game _ provider' etiketleri.
15) Kaos/DR egzersizleri
GameDay üç ayda bir: AZ'nin kesilmesi, PSP'nin bozulması, veritabanı düğümünün "kaybı", kuyruk durması.
Geriye dönük: karar zamanı, eksik uyarılar, gürültü, darboğazlar.
RTO/RPO ve otomasyonun "duyumlar'değil, gerçeklere dayalı olarak ayarlanması.
16) Güvenlik ve uyumluluk
KMS/HSM (bölgeler arası), rotasyon ve çift kontrolde anahtarlar/sırlar.
Denetim ve işlem kayıtları için WORM/bağışıklık.
SLA/DR taahhütleri ve 7 × 24 iletişim noktaları için DPA/PSP/sağlayıcı sözleşmeleri.
17) Feilover Minimum Politikası Örneği (Pseudocode)
Olay hakkında (type = "REGION _ DOWN"):
freeze_non_critical_writes ()
promote_db (bölge = B)
verify_ledger_consistency ()
warm_caches (bölge = B)
route_traffic (bölge = B, rampa = %10)
[%25, %50, %100] adımında:
If SLO_green (): ramp (step) else rollback ()
announce_statuspage ()18) Prod-hazır kontrol listesi
- Akış başına tanımlanmış RTO/RPO; İş tarafından kabul edilir.
- Multi-AZ minimum; Cüzdan, giriş ve ödemeler için çoklu bölge.
- Ledger + idempotency (anahtarlar) + giden kutusu/gelen kutusu; Bir programda uzlaşma.
- Veritabanı çoğaltma: yerel olarak senkronize, DR async; PITR etkin, geri yükleme kontrol edildi.
- Yöntem başına iki PSP, yönlendirme politikası ve test anahtarları; Oyun sağlayıcıları alternatiflerdir.
- DNS/GSLB/Anycast, sağlık kontrolleri ve sentetikler, düşük TTL.
- Runbook ve DR-cutover düğmesi, bozulma için özellik bayrakları.
- SLO/uyarılar/izleme; DR Durum paneli.
- Üç aylık DR egzersizleri + retro; Kişileri 7 × 24 güncelledi.
Özgeçmiş Özeti
Güvenilir bir iGaming platformu parasal bir devre etrafında inşa edilmiştir: idempotency, öngörülebilir bir feiler, doğrulanabilir çoğaltma ve düzenli DR egzersizleri ile ilanların bir dergi. Sistemi hücrelere ve bölgelere bölün, kesme işlemini otomatikleştirin, iki PSP ve yedek oyun sağlayıcısı tutun, SLO ve defter bütünlüğünü izleyin - büyük bir kaza bile güven ve para kaybetmeden yönetilebilir bir olay haline gelecektir.
