카지노에 대한 실패, 복제 및 DR 계획
1) 비즈니스 목표: RTO/RPO 및 중요한 흐름
RTO (서비스를 사용할 수없는 기간): 로그인/속도/예금-초/분; 보고서-시간.
RPO (데이터 손실 횟수): 지갑/트랜잭션- ~ 0-30 초; 원격 측정-분.
중요한 흐름: 로그인, 예금/인출, 베팅/결제, KYC/AML-calla, PSP/게임 제공 업체 웹 후크.
2) 건축 결함 내성 패턴
액티브 액티브 (다중 지역): 두 지역 모두 트래픽을 처리합니다. 낮은 RTO/RPO, 복잡한 일관성.
액티브 스탠비: 작동중인 한 영역, 두 번째 핫; 더 쉬운 상태, RTO 분.
세포 기반: "세포" (시장/브랜드) 에 의한 분리, 지역 사건이 모든 것을 무너 뜨리지는 않습니다.
가장자리 파이: Anycast CNC/WAF → 지역 게이트웨이 → 앱 클러스터 → 복제가있는 DB/캐시.
3) 교통 관리 및 네트워크 가짜
애니 캐스트 + CDNA/WAF: L3/4/7 흡수, 원산지 건강 검진.
건강 지표에 대한 DNS- 페일 오버 (낮은 TTL, 다중 값), 트래픽 관리자/GSLB.
빠른 경로 변경을 위해 anti-DDoS 제공 업체를 통한 BGP 발표.
건강 검진 (논리의 예):
(PHP 3 = 3.0.6, PHP 4) 5xx _ rate> 임계 값 (PHP 3 = 3.0.6, PHP 4)
드레인 (지역 _ A); 교대 (트래 피킹-> region _ B, ramp = 5 분)
4) 데이터: 지갑, 주문, 베팅
진실의 근원은 원장입니다: 'operation _ id' 에 의한 추가, demempotence.
조정: 원장, PSP 및 게임 제공 업체 간의주기적인 조정 작업.
이중 방지: 예금/소시지/지불을위한 demempotency 키; 아웃 박스/받은 편지함에 중복.
5) 데이터베이스 복제-옵션 및 트레이드 오프
물리적 동기식 (세미 싱크): 최소 RPO, 지연 위험-포인트 단위 적용 (지갑).
비동기식: 게임 메타 데이터, 참조 서적의 경우 고성능/단순성, RPO 초 분입니다.
논리적 (CDC → 다른 영역으로 스트리밍): 유연한 선택성, 교차 엔진 및 분석에 편리합니다.
캐시 (Redis/Memcashed): 진실의 원천이 아닙니다. 복제/스냅 샷, 따뜻한 시작.
PITR: 연속 로그 (WAL/redo) 에서 오프 사이트 스토리지, 복구 창 이상 7-30 일.
6) 일관성 및 조정 패턴
Saga + 전송률: 일련의 단계로서의 비즈니스 트랜잭션으로 데이터베이스에 글을 써서 원자 적으로 이벤트를 게시합니다.
정확히 한 번 "의미": 운영의 demempotency, 밸런스 버전 제어 (낙관적 잠금).
비 키 흐름의 최종 일관성 (리더 보드, 분석); 돈을 위해 강하다.
7) 구성 요소와 그들의 feilover
API/백엔드Name
통계 용기, 오토 스케일, 청록색/카나리아; 스토리지를 통해 구성됩니다 (다양성 포함).
대기열/스트림
쿼럼 클러스터 (N = 3/5), cross-AZ 복제본; 정책 및 대기열을 다시 실행하십시오.
지갑 DB
지역 A의 Primari, 지역 B의 비동기식 A (기타 AZ) 의 복제본 동기화; 스플릿 브레인으로 자동 프로모션하는 것은 금지되어 있으며 체크리스트가 포함 된 수동/스크립
파일/CUS 아티팩트
KMS의 다양한 지역 간 복제본/CRR 키가있는 객체 스토리지.
웹 소켓/실시간
키 (테이블/게임/시장) 에 의한 샤딩, 끈적 끈적한 라우팅; Feiler와 함께-다시 가입 토큰으로 다시 구독하십시오.
8) 지불 및 게임 제공 업체: 많은 진실의 원천
PSP-feilover: 각 방법에 대해 최소 2 개의 공급자 (카드, 지갑, 암호화).
SLA/값/banlists에 의한 백분율 라우팅 BIN; 자동 회로 차단기에 의해 열화 된 PSP의 비활성화.
게임 제공 업체: 백업 채널/ASN 허용 목록, 지역 개별 키, 타임 아웃 격리.
9) 웹 후크 및 소시지: 지속 가능한 수신 및 복제
받은 편지함 패턴: 웹 후크 → 서명/NMAS → 불변의받은 편지함에 쓰기를 확인하십시오 → 작업자가 엄청나게 처리합니다.
공급자 배상: '이벤트 _ id '/' 시그니처' 에 의한 백업 + dedup.
DR에서: 주문 제어가있는받은 편지함에서 재생 (txn → 결제).
10) 백업: 3-2-1 전략 및 복구 점검
3 부/2 미디어/1 오프 사이트 (및 중요한 저널의 경우 1 오프라인/WORM).
일정: 일일 스냅 샷 + 영구 잡지; "어두운" 스탠드로 매주 테스트 복원.
복구 디렉토리: "t- 해당 시점에 지갑을 올리는 방법".
11) DR 계획: 역할, 시나리오, 커뮤니케이션
가수: Incident Commander, Comms, DB Lead, App Lead, Payments/Game PM, SRE Oncall.
채널: 전쟁 실, 상태 페이지, 지원/파트너/계열사를위한 메시지 템플릿.
시나리오 (최소):- AZ 손실, 지역 손실, PSP 사용 불가, 데이터베이스 클러스터 드롭, 게임 제공 업체 저하, 키 누출, 대규모 5xx.
12) DR 시나리오 행렬의 예
13) 런북 및 자동화
"DR- 컷 오버" 버튼: 검증이있는 단계 순서 (동결 쓰기 → 따뜻한 캐시 → 램프 트래픽 촉진).
무결성 검사 스크립트: 원장/지갑 금액의 조정, 균형 일관성.
기능 플래그: 사고 중 보고서/내보내기/무거운 대시 보드를 신속하게 비활성화하십시오.
14) feilover에 대한 관찰 가능성
로그인, 입금, 베팅, 게임 출시 등 트리거로서의 SLO 메트릭.
계정 지연, WAL 배송, 대기열 지연, 5xx, p95, SYN 백 로그, 웹 소켓 분리.
다른 지역의 합성 시나리오: 1 분마다 로그인/예금/베팅.
엔드 투 엔드 흔적, 'region', 'psp', 'game _ provesser' 태그.
15) 카오스/DR 운동
분기 별 GameDay: AZ 연결 해제, PSP 저하, 데이터베이스 노드의 "손실", 큐 정지
회고: 결정 시간, 경고 누락, 소음, 병목 현상.
"감각" 이 아닌 사실을 기반으로 RTO/RPO 및 자동화 조정.
16) 안전 및 준수
KMS/HSM (교차 지역), 회전 및 이중 제어의 키/비밀.
감사 및 거래 기록에 대한 WORM/면역.
DPA/PSP/제공자는 SLA/DR 약속 및 24 × 7 접점을 계약합니다.
17) Feilover 최소 정책의 예 (의사 코드)
사건시 (유형 = "REGION _ DOWN"):
(PHP 3 = 3.0.6, PHP 4)
(PHP 3 = 3.0.6, PHP 4)
(PHP 3 = 3.0.6, PHP 4)
warm _ caches (지역 = B)
경로 _ 트래픽 (지역 = B, 램프 = 10%)
[25%, 50%, 100%] 단계:
(PHP 3 = 3.0.6, PHP 4)
(PHP 3 = 3.0.6, PHP 4)
18) 준비된 체크리스트
- 흐름 당 정의 된 RTO/RPO; 사업에 의해 받아 들여졌다.
- 다중 AZ 최소; 지갑, 로그인 및 지불을위한 다중 지역.
- 원장 + demempotency (키) + 아웃 박스/받은 편지함; 일정에 따른 조정.
- 데이터베이스 복제: DR에서 로컬 동기화, async; PITR 활성화, 검사 복원
- 방법 당 2 개의 PSP, 라우팅 정책 및 테스트 키; 게임 제공 업체가 대안입니다.
- DNA/GSLB/Anycast, 건강 검진 및 합성, 낮은 TTL.
- 런북 및 DR 컷 오버 버튼, 저하를위한 기능 플래그.
- SLO/경고/추적; DR 상태 패널.
- 분기 별 DR 운동 + 복고풍; 업데이트 된 연락처 24 × 7.
요약 다시 시작
신뢰할 수있는 iGaming 플랫폼은 통화 회로를 중심으로 구축됩니다. 시스템을 셀과 영역으로 나누고, 컷오버를 자동화하고, 두 개의 PSP와 예비 게임 제공 업체를 유지하고, SLO 및 원장 무결성을 모니터링하며, 심지어 큰 사고조차도 신뢰와 돈을 잃지 않고 관리 가능한 이벤트가 될 것입니다.