Failover, replica e piani DR per il casinò
1) Obiettivi aziendali: RTO/RPO e flow critici
RTO (quanto tempo il servizio può non essere disponibile): login/tasso/deposito - secondi/minuti; I rapporti sono orologi.
RPO (quanti dati possono essere persi): portafoglio/transazione - not 0-30 secondi; telemetria - minuti.
Flow critici: login, deposito/output, tasso/settlent, ciotole KYC/AML, webhoop PSP/provider di videogiochi.
2) Cartelli architettonici di tolleranza
Active-Active (multi-region) - Entrambe le regioni gestiscono il traffico; RTO/RPO basso, complessa consistenza.
Active-Standby: una regione in funzione, l'altra calda; più semplice, RTO minuti.
Cell-based - Isolamento per «celle» (market/brand), incidenti locali non rovinano tutto.
Edge-torta: Anycast CDN/WAF gateway regionali con cluster app database/cache replicati.
3) Traffico-gestione e feelover di rete
Anycast + CDN/WAF: acquisizione L3/4/7, assegno health per origin.
Failover DNS (TTL basso, multi-value), Gestore traffico/GSLB per metriche sanitarie.
Annuncio BGP tramite provider anti-DDoS per un rapido cambio di percorso.
Assegno health (esempio di logica):
if p95_latency>threshold 5xx_rate>threshold synthetic_login_fail:
drain(region_A); shift(traffic->region_B, ramp=5min)
4) Dati: portafogli, ordini, scommesse
L'origine della verità è il registro dei cavi (ledger): solo append, idampotenza per «operation _ id».
Allineamento: richiami-jobs periodici tra ledger, PSP e provider di giochi.
Anti-ripresa: chiavi idempotency per depositi/salsicce/pagamenti; deduplicazione in outbox/inbox.
5) Replica database: opzioni e compromessi
Sincrona fisica (semi-sync) - RPO minimo, rischio di ritardo - Usa punto (portafoglio).
Asincrona: prestazioni più elevate/semplicità, RPO secondi-minuti per metadati di gioco, guide.
Logico (CDC): flessibile selettività, facile da utilizzare per i motori e gli analisti.
Cache (Redis/Memcached) - Non come fonte di verità; repliche/snapshot, partenze calde.
PITR: registri continui (WAL/redo) per lo storage off-site, finestra di ripristino 7-30 giorni.
6) Consistenza e modelli di negoziazione
Saga + Outbox: transazioni aziendali come catena di passi, pubblicazione di eventi atomici con record in database.
Exactly-once: idemoticità delle operazioni, controllo delle versioni di bilanciamento (ottimistic locking).
Eventual consistency in flow non fluidi (liderbord, analista); strong per i soldi.
7) Componenti e loro feelover
API/backend
contenitori statali, scale automatico, blue-green/canary; confighi (con versioning).
Code/striam
Cluster quorum (N = 3/5), replica cross-AZ; criteri di ripetizione e coda dlt.
Database portafogli
Praimari in Region A, sincro in A (altro AZ), asincrona in Region B; promote automatica per split-brain è vietata - solo con assegno-foglio manuale/script.
File/manufatti CUS
Archivio oggetti con versioning, replica crociata regionale/CRR, chiavi in KMS.
WebSocket/Real-time
Sharding per chiavi (table/game/market), sticky-routing; in un feelover - resubscribe con un tocco rejoin.
8) Pagamenti e provider di giochi: molte fonti di verità
Failover PSP: minimo 2 provider per ogni metodo (mappa, portafogli, cripto).
Routing percentuale per SLA/costo/banlisti BIN; Spegnere la macchina PSP degradata.
Provider di gioco: canali di riserva/ASN allow-list, chiavi separate per le regioni, isolamento timeout.
9) Webhook e salsicce: accettazione e riproduzione sostenibili
Inbox-pattern: accettiamo webhook, controlliamo la firma/NMAS, scriviamo in immutabile-inbox, lavoriamo con il worker in modo idepotente.
Retrai dei provider: backoff + deadup dì event _ id "/" firma ".
Per DR, repliche da inbox con controllo d'ordine (txn n'settement).
10) Backup: strategia 3-2-1 e test di ripristino
3 copie/2 dei supporti/1 offsite (e 1 offline/WORM per i registri critici).
Orari: snapshot giornalieri + registri permanenti; test-restore settimanale sullo stand «scuro».
Directory di ripristino: «Come alzare il portafoglio al momento t- ».
11) Piano DR: ruoli, script, comunicazioni
Роли: Incident Commander, Comms, DB Lead, App Lead, Payments/Game PM, SRE Oncall.
Canali: war-room, stato-pagina, modelli di messaggio zapport/partner/affiliati.
Script (minimo):- Perdita di AZ, perdita di regione, indisponibilità PSP, calo del cluster database, degrado del provider di giochi, perdita di chiavi, massa 5xx.
12) Esempio di matrice di script DR
13) Runbook e automazione
Il pulsante «DR-cutover» è una sequenza di passi di convalida (freeze writes promote warm cache n'ramp traffic).
Script di verifica integrità: compressione delle somme per ledger/portafoglio, bilanci non coerenti.
Feature-flags: rapido disable report/export/dashboard pesanti in caso di incidente.
14) Osservabilità per il feelover
Le metriche SLO come trigger sono login, deposito, puntata, avvio del gioco.
Технические: replication-lag, WAL-shipping, queue-lag, 5xx, p95, SYN backlog, WebSocket disconnects.
Script synthetic da altre regioni: login/deposito/tasso ogni minuto.
Traccia end-to-end, etichette «region», «psp», «game _ provider».
15) Esercitazioni Chaos/DR
GameDay trimestrale: disattivazione AZ, degrado PSP, perdita del nodo database, arresto della coda.
Retrospettiva: tempi decisionali, alert mancanti, rumori, colli di bottiglia.
Regolazione RTO/RPO e automazione basata su fatti e non «sensazioni».
16) Sicurezza e compliance
Chiavi/segreti in KMS/HSM (cross-regionali), rotazione e dual-control.
WORM/immutability per i registri di verifica e transazioni.
DPA/contratti con PSP/provider su SLA/DR obblighi e punti di contatto 24 x 7.
17) Esempio di criterio di feelover minimo (pseudocode)
on Incident(type="REGION_DOWN"):
freeze_non_critical_writes()
promote_db(region=B)
verify_ledger_consistency()
warm_caches(region=B)
route_traffic(region=B, ramp=10%)
for step in [25%, 50%, 100%]:
if SLO_green(): ramp(step) else rollback()
announce_statuspage()
18) Assegno foglio pronto (prod-ready)
- Definito RTO/RPO per ogni flow; accettati dall'azienda.
- Multi-AZ minimo; Multi-region per portafogli, login e pagamenti.
- Ledger + idampotenza (keys) + outbox/inbox; riconciliazione pianificata.
- Replica del database: sync locale, async in DR; PITR abilitato, restore convalidato.
- Due PSP per metodo, regola di routing e chiavi di prova; i provider di giochi sono alternative.
- DNS/GSLB/Anycast, assegni health e sintetico, TTL basso.
- Runbook e il pulsante DR-cutover, feature-flags per il degrado.
- SLO/alert/tracking; pannello Stato DR.
- Esercizi DR trimestrali + retrò; contatti aggiornati 24 x 7.
Curriculum
Una piattaforma iGaming affidabile si basa su un tracciato in denaro, ovvero un registro di cavi idonei, un feelover prevedibile, una replica verificabile e esercitazioni DR regolari. Dividete il sistema in celle e regioni, automatizzate cutover, tenete due PSP e fornitori di giochi di ricambio, tenete d'occhio lo SLO e l'olistica ledger - e anche un grosso incidente diventerà un evento gestibile senza perdere la fiducia e il denaro.