GH GambleHub

Aree di disponibilità e regioni crociate

1) Termini e obiettivi

Area di disponibilità (AZ) - Centro dati isolato all'interno della regione (potenza/rete).
La regione è un gruppo AZ con geografia generale e ritardi.

Obiettivi di ripristino:
  • RTO - Per quanto tempo è possibile non fornire il servizio.
  • RPO - Quale quantità di dati è possibile perdere.

Di solito, all'interno della regione, prendiamo di mira RTO 5-15 min, RPO} 0-1 min, interregionale RTO 1 h, RPO 5 min (dipende dal prodotto e dal budget).

2) Modelli architettonici

2. 1 All'interno della regione (multi-AZ)

Livello stateless - Distribuito in AZ; bilanciamento - L4/L7 con health-checks.
Livello Stateful - Cluster con replica sincrona (o quorum) tra AZ.
Cache/code: cluster, con scardinamento AZ e failover automatico.

2. 2 Interregionale (multi-region)

Active-Active: entrambe le regioni ricevono traffico.

Latitanza minima per gli utenti, ripristino rapido, complessità di consistenza e conflitti.
Active-Passive (hot/warm) - La regione principale serve, la seconda in attesa calda/calda.

dati più semplici, meno costosi, - più alto di RTO.
Pilot-Light - Luce minima (i dati vengono sincronizzati e i calcoli vengono espansi in caso di incidente).
DR-backup: solo backup e script di ripristino (il più economico e il più lento).

3) Dati e consistenza

3. 1 Database

Quorum sincrono (RPO≈0, ↑latentnost): PostgreSQL con standbys sincronizzati all'interno della regione; Database distribuiti (CockroachDB/Cassandra) con quorum locali (Locale Quorum) e bilanciamento AZ.
Replica interregionale asincrona (RPO> 0, ↓latentnost): replica logica Postgres/MySQL. «global tables» в KV/NoSQL; CDC→strim in un'altra regione.
Record in conflitto: per active-active, utilizzare CRDT/versioning o la strategia «origine verità» (leader-region per key/tenant).

3. 2 Event-sorsing e code

Code/striam (Kafka/Pulsar/SQS-simili): mirror-topics o replicatori crocifissi-regionali; la chiave è l'idimpotenza dei concittadini e il dedotto delle chiavi.
Webhook e partner esterni: firmare, avere replay, memorizzare offset/checkpoint in entrambe le zone.

3. 3 Cache

Cache locale per-regione (write-through/refresh-ahead) cache condivisa globale solo per KV resistenti (altrimenti split-brain). Disabili per eventi (pub/sub), TTL è conservativo.

4) Traffico globale e tracciato di rete

GSLB/DNS: Geo-/Latency-based routing, health-checks, traffic-weights per canarini e incidenti.
Anycast/Edge: avviciniamo l'accesso all'utente e poi alla regione sana più vicina.
Criteri Failover: pool regionali upstream ov, divieto 0-RTT su percorsi critici, minimi timeout a dipendenze interregionali.
Policy retraes: backoff esponenziale + jitter, limitazione total-deadline, idipotente PUT/POST con'Idempotency-Key '.

5) Kubernets e servizio-mesh

5. 1 Multi-AZ in un unico cluster

topology spread constraints по `topology. kubernetes. io/zone`.
PodDisruptionBudget и priority classes.
NodeAffinity/Anti-Affinity - Evitare la posizione delle repliche.
Aree di storage: PV con replica AZ o sistemi volume distribuiti.

5. 2 Multi-region (multi-cluster)

Cluster separati per regione + GitOps (Argo CD/Flux) per sincronizzazione dichiarativa.
Servizio Mesh (Istio/Linkerd): locality-aware load-balancing e failover tra le regioni mTLS, identità comune.
Traffic-shifting: 1%→10%→50% per la nuova regione; maniglia 0% immediata.

6) Selezione RTO/RPO e mappatura dei pattern

PatternRTO tipiciRPO tipicoDove applicabile
Active-Activeminuti= 0 minuti (CRDT/CDC)API globali a bassa latenza
Hot Standby5-15 minsecondi-minutiservizi B2C critici
Warm Standby15-60 minminuti-oreb2b/sottosistemi operativi
Pilot-Lightorologioorologiobassa criticità/costo
Backup-onlygiorni24 orearchivio/analisi non real-time

7) Test di disponibilità (DR)

GameDays: uno scenario su larga scala trimestrale «disattivato regione/AZ».
Iniezioni Chaos: ritardi di rete, pacchetti persi, disattivazione broker/base in una AZ.
RTO/RPO effettivo: misura il tempo di cambio e la perdita dei dati, pubblica il report.
Runbooks - Istruzioni passo-passo e pulsanti rossi per i passaggi (DNS weights, feature-flags, disattivazione dei file pesanti).

8) Osservabilità e controllo

Tagli di metriche per region/AZ/tenant; p95/p99 di latitanza lungo le rotte.
SLO e Errore Budget per la regione e per il pool globale.
Il degrado di una regione non dovrebbe «silenziare» il cercapersone se l'altra porta il traffico nella norma.
Трейсы: baggage `region`, `az`, `failover=true/false`; report «quante richieste sono state richieste per failover».

9) Sicurezza e conformità

Data residency: allega i dati di pagamento PII a determinate regioni (giurisdizione).
Segreti: KMS/Smart HSM con chiavi e rotazione cross-regionali; Separare il materiale delle chiavi per-regione.
mTLS e fiducia reciproca tra le regioni; limitare gli egress regionali all'ACL.

10) Costi e risparmi

Edge cache + SWR - Riduzione dell'egress interregionale.
Diverse classi di storage (hot/warm/cold) e downsampling metriche/logi.
Profili auto-scale per regione (minimo notturno).
Identità immagine + configurazione differenziata tramite variabili ambiente/Helm values.

11) Antipattern

Uno Stateful-Master per tutto il sistema; split-brain senza quorum.
Scrittura sincrona interregionale nell'unico RDBMS (latitanza insostenibile).
Cache globale con una forte consistenza senza CRDT: blocchi e fantasmi.
I retrai senza idepotenza sono stati duplicati da transazioni/pagamenti.
Un unico SLO «globale» nasconde il fallimento di una regione.
Niente esercitazioni DR regolari. I piani non funzionano in battaglia.

12) Specificità iGaming/finanza

I provider di pagamento/CUS sono selezionati a livello regionale; fare smart-routing su PSP con segnali health, failover su riserva.
Giurisdizione: conservazione del PII e dei registri delle transazioni in un paese/regione; crociera - solo aggregazioni/anonimi.
Limiti/gioco responsabile: regole e orologi locali - Non replicare «in testa» tra le regioni, utilizzare la consistenza degli eventi.
Bonus/bilanci: chiavi idipotenti e «fonte di verità» per tenant/region; reconcile-jobs dopo DR.

13) Mini-ricette (pseudonfigi)

13. 1 Envoy locality-aware + failover

yaml load_assignment:
endpoints:
- locality: { region: eu, zone: eu-a }
lb_endpoints: [{ endpoint: { address:... } }]
- locality: { region: eu, zone: eu-b }
lb_endpoints: [{ endpoint: { address:... } }]
- locality: { region: us, zone: us-a } # failover target lb_endpoints: [{ endpoint: { address:... } }]
common_lb_config:
zone_aware_lb_config: {}
locality_weighted_lb_config: {}
outlier_detection:
consecutive_5xx: 5 base_ejection_time: 30s

13. 2 Kubernetes topology spread

yaml spec:
topologySpreadConstraints:
- maxSkew: 1 topologyKey: topology. kubernetes. io/zone whenUnsatisfiable: DoNotSchedule labelSelector: { matchLabels: { app: api } }

13. 3 DNS feelover di peso (idea)

«weight (eu) = 90», «weight (us) = 10» in caso di degrado «eu» si sposta automaticamente in «us». Health-checks e TTL ridotti (ma non troppo aggressivi, 30-120 s).

14) Foglio di assegno prod

  • Definito RTO/RPO per il servizio e concordato con il business.
  • Stateless distribuito in AZ; stateful ha un quorum/replica e un modello comprensibile di consistenza.
  • Replica interregionale (asincrone/CDC), test di conflitto/deduplicatore.
  • GSLB/Anycast sono configurati, health-checks e weights sono automatizzati.
  • Kubernetes: topology-spread, PDB, anti-affinity; multi-cluster GitOps.
  • Retrai con jitter, idempotenza su write; brevi timeout interregionali.
  • esercizi DR, RTO/RPO effettivi misurati; runbook aggiornato.
  • Osservazione di region/AZ, SLO e burn-rate su tagli, gli alert non «silenziano» il normale funzionamento.
  • Data residency/segreti/chiavi corrispondono alla regolazione.
  • Economia: egress, memorizzazione, profili di scale automatico sotto controllo.

15) TL; DR

Costruisci multi-AZ come livello base, multi-region come assicurazione aziendale. Selezionare il pattern (active-active/standby) sotto RTO/RPO e il costo, replicare i dati consapevolmente (quorum/CDC/CRDT), gestire il traffico globale tramite GSLB/Anycast e locality-aware bilanciamento. Obbligatori: idempotenza, brevi timeout, esercitazioni DR regolari, SLO/metriche sui tagli region/AZ. Per iGaming/Finanza, aggiungere PSP/KYC regionali, requisiti di dati e SLO separati per giurisdizione.

Contact

Mettiti in contatto

Scrivici per qualsiasi domanda o richiesta di supporto.Siamo sempre pronti ad aiutarti!

Telegram
@Gamble_GC
Avvia integrazione

L’Email è obbligatoria. Telegram o WhatsApp — opzionali.

Il tuo nome opzionale
Email opzionale
Oggetto opzionale
Messaggio opzionale
Telegram opzionale
@
Se indichi Telegram — ti risponderemo anche lì, oltre che via Email.
WhatsApp opzionale
Formato: +prefisso internazionale e numero (ad es. +39XXXXXXXXX).

Cliccando sul pulsante, acconsenti al trattamento dei dati.