Failover, репликалау және казино үшін DR жоспарлары
1) Бизнес-мақсаттар: RTO/RPO және сыни флоу
RTO (қанша уақыт қызмет қол жетімді болуы мүмкін): логин/ставка/депозит - секунд/минут; есептер - сағаттар.
RPO (қанша деректер жоғалуы мүмкін): әмиян/транзакциялар - ~ 0-30 сек; телеметрия - минут.
Сыни флоу: логин, депозит/шығару, мөлшерлеме/сеттлмент, KYC/AML-колбэктер, PSP/ойын провайдерлерінің вебхоктары.
2) Істен шығуға төзімділіктің сәулеттік паттерндері
Active-Active (multi-region): екі өңір де трафикті өңдейді; төмен RTO/RPO, күрделі консистенттілік.
Active-Standby: бір өңір жұмыста, екіншісі ыстық; жай-күйі оңай, RTO минут.
Cell-based: «ұяшықтар» бойынша оқшаулау (market/brand), жергілікті инциденттер бәрін құлатпайды.
Edge-пирог: Anycast CDN/WAF → өңірлік шлюздер → app-кластерлер → репликасы бар БД/кэштер.
3) Трафик-менеджмент және желілік фейловер
Anycast + CDN/WAF: L3/4/7 сіңіру, origin-дегі health-чек.
Денсаулық өлшемдері бойынша DNS-фейловер (төмен TTL, multi-value), Traffic Manager/GSLB.
BGP-анонс Anti-DDoS провайдері арқылы тез жолды ауыстыру үшін.
Health-чек (логикалық мысал):
if p95_latency>threshold          5xx_rate>threshold          synthetic_login_fail:
drain(region_A); shift(traffic->region_B, ramp=5min)4) Деректер: әмиян, тапсырыстар, мөлшерлемелер
Ақиқат көзі - өткізгіштер журналы (ledger): тек append, 'operation _ id' бойынша теңсіздік.
Келісу: ledger, PSP және ойын провайдерлері арасындағы мерзімді reconciliation-джобтар.
Анти-дубль: idempotency-депозиттер/колбэктер/төлемдер үшін кілттер; outbox/inbox дегенді дедупликациялау.
5) БД репликациясы: нұсқалар мен ымыраға келу
Физикалық синхронды (semi-sync): ең аз RPO, кідіру қаупі - нүктелі (әмиян) қолдану.
Асинхронды: жоғары өнімділік/қарапайымдылық, RPO секунд-минут - ойын метадеректері, анықтамалықтар.
Логикалық (CDC → басқа аймаққа ағым): икемді таңдау, кросс-қозғалтқыштар мен талдау үшін ыңғайлы.
Кэштер (Redis/Memcached): ақиқат көзі ретінде емес; реплика/снапшоттар, жылы старттар.
PITR: оффсайт-қоймадағы үздіксіз журналдар (WAL/redo), қалпына келтіру терезесі ≥ 7-30 күн.
6) Консистенттілік және келісу үлгілері
Saga + Outbox: қадамдар тізбегі ретінде бизнес-транзакциялар, атомарлық оқиғаларды ДБ-ға жазумен жариялау.
Exactly-once «мағынасы бойынша»: операциялардың демпотенттілігі, теңгерім нұсқаларын бақылау (optimistic locking).
Eventual consistency кілт емес флоуда (лидборд, аналитика); ақша үшін strong.
7) Компоненттер және олардың фейловері
API/бэкенд
Статлес-контейнерлер, автоскейл, blue-green/canary; сақтау орны арқылы конфигалар (нұсқалаумен).
Кезектер/ағындар
Кворум-кластерлер (N = 3/5), кросс-AZ реплика; қайталау және dlt-кезек саясаты.
Әмиян ДБ
Праймари в Region A, синхронды реплика в A (басқа AZ), асинхронды - В Region; split-brain кезінде автоматты promote тыйым салынған - тек қолмен/чек парағы бар скриптпен.
Файлдар/ЖТҚ артефактілері
Нұсқасы бар объектілік сақтау орны, кросс-аймақтық реплика/CRR, KMS кілттері.
WebSocket/Real-time
Кілттер бойынша шардинг (table/game/market), sticky-routing; фейловер кезінде - rejoin-токенмен resubscribe.
8) Төлемдер және ойын провайдерлері: көптеген шындық көздері
PSP-фейловер: әрбір әдіске кем дегенде 2 провайдер (карта, әмиян, крипто).
SLA/құны/BIN банлистері бойынша пайыздық routing; тозған PSP автоматты өшіру.
Ойын провайдерлері: резервтік арналар/ASN allow-list, өңірлерге жеке кілттер, тайм-ауттарды оқшаулау.
9) Вебхактар мен колбэктер: тұрақты қабылдау және ойнату
Inbox-паттерн: веб-хук қабылдаңыз → қолтаңбаны/НМАС тексеріңіз → immutable-inbox жазыңыз → воркермен іспотентті өңдеңіз.
Провайдерлердің ретрайлері: backoff + 'event _ id '/' signature' бойынша дедуп.
DR кезінде: тәртіпті бақылайтын inbox репликасы (txn → settlement).
10) Бэкаптар: 3-2-1 стратегиясы және қалпына келтіруді тексеру
3 көшірме/2 тасығыш/1 оффсайт (және 1 - сыни журналдар үшін офлайн/WORM).
Кестелер: күнделікті снапшоттар + тұрақты журналдар; апта сайын «қараңғы» стендке test-restore.
Қалпына келтіру каталогтары: «әмиянды t- Δ кезінде қалай көтеру керек».
11) DR-жоспар: рөлдер, сценарийлер, коммуникациялар
Роли: Incident Commander, Comms, DB Lead, App Lead, Payments/Game PM, SRE Oncall.
Арналар: war-room, мәртебе-бет, саппорт/серіктестер/аффилиаттарға хабарлар үлгілері.
Сценарийлер (ең аз):- AZ жоғалту, аймақты жоғалту, PSP қолжетімсіздігі, БД кластерінің құлдырауы, ойын провайдерінің құлдырауы, кілттердің кемуі, жаппай 5xx.
12) DR-сценарийлер матрицасының үлгісі
13) Runbook 'және автоматтандыру
«DR-cutover» түймешігі: валидациялы қадамдар тізбегі (freeze writes → promote → warm caches → ramp traffic).
Тұтастығын тексеру скрипттері: ledger/әмиян бойынша сомаларды салыстыру, теңгерімдердің қайшылықсыздығы.
Feature-flags: тез disable репортаж/экспорт/ауыр дашборд авария кезінде.
14) Фейловерге арналған бақылау
SLO-метриктер триггерлер ретінде: логин, депозит, ставка, ойын іске қосу.
Технические: replication-lag, WAL-shipping, queue-lag, 5xx, p95, SYN backlog, WebSocket disconnects.
Басқа өңірлерден Synthetic сценарийлер: логин/депозит/әр минут сайын ставка.
end-to-end, 'region', 'psp', 'game _ provider' белгілері.
15) Chaos/DR-жаттығулар
GameDay тоқсан сайын: AZ өшіру, PSP деградациясы, БД торабын «жоғалту», кезекті тоқтату.
Ретроспектива: шешім қабылдау уақыты, жетіспейтін тәуекелдер, шу, тар жерлер.
«Сезім» емес, фактілер негізінде RTO/RPO және автоматтандыруды түзету.
16) Қауіпсіздік және комплаенс
Кілттер/құпиялар KMS/HSM (кросс-өңірлік), ротация және dual-control.
Аудит және транзакция журналдары үшін WORM/immutability.
DPA/PSP/провайдерлермен SLA/DR-міндеттемелер және байланыс нүктелері бойынша келісімшарттар 24 × 7.
17) Фейловердің ең аз саясатының мысалы (жалған құжат)
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) Дайындық чек-парағы (prod-ready)
- Әрбір флоу үшін RTO/RPO анықталған; бизнес қабылдаған.
- Multi-AZ минимум; Әмиян, логин және төлемдер үшін Multi-region.
- Ledger + сәйкестік (keys) + outbox/inbox; кесте бойынша reconciliation.
- БД репликациясы: жергілікті sync, DR-да async; PITR қосылды, restore тексерілді.
- Екі PSP әдісі, роутинг саясаты және тест кілттері; ойын провайдерлері - балама.
- DNS/GSLB/Anycast, денсаулық чектері және синтетика, төмен TTL.
- Runbook 'және «DR-cutover» түймешігі, деградацияға арналған feature-flags.
- SLO/алерта/трейсинг; «DR-күй- жайы».
- Тоқсан сайынғы DR-жаттығулар + ретро; жаңартылған контактілер 24 × 7.
Түйіндеме
Сенімді iGaming платформасы ақша контурының айналасында құрылады: демпотенттік өткізгіштер журналы, болжамды фейловер, тексерілетін репликация және тұрақты DR-жаттығулар. Жүйені ұяшықтар мен өңірлерге бөліңіз, cutover автоматтандырыңыз, екі PSP және қосалқы ойын провайдерлерін ұстаңыз, SLO мен ledger тұтастығын қадағалаңыз - және тіпті ірі апат сенімділік пен ақшаны жоғалтпастан басқарылатын оқиға болады.
