IGaming бағдарламасына failover және сақтық көшірме қалай жұмыс істейді
Неге iGaming DR/BCP ерекше пәні
Казино платформасы - нақты уақыттағы ақша (әмиян/леджер), тірі раундтар (RNG/Live), төлемдер, аффилиаттар және қатаң комплаенс. Қолжетімділіктегі кез келген «тесік» тез арада қаржылық және заңдық тәуекелдерге айналады. Сондықтан сәулет болжамды қалпына келтіру төңірегінде құрылады: белгілі мақсаттар, белгілі сценарийлер, репетицияланған рәсімдер.
Негізгі мақсаттар мен терминдер
RTO (Recovery Time Objective): сервисті қалпына келтіру уақыты.
Әмиян/леджер үшін: ≤ 60-300 сек (өңірішілік фейловер), ≤ 15 мин (өңіраралық DR).
RPO (Recovery Point Objective): деректердің жарамды жоғалуы.
Леджер үшін: 0-5 сек (синхронды/квазисинхронды репликация), есеп беру үшін: ≤ 15 мин.
SLA және Error Budget: өзгерістер жылдамдығы мен тұрақтылық арасындағы мәмілелерді ресімдейді.
Істен шығуға төзімділік қабаттары
1) Инфрақұрылым: Multi-AZ/Multi-Region
Multi-AZ (кемінде 3 аймақ): барлық сындарлы сервистер аймақтар бойынша бөлінген, БД/шинаның автоматты фейловері.
Multi-Region DR: «ыстық» (Active-Active) немесе «жылы» (Active-Passive) юрисдикциясы бойынша оқшауланған екінші аймақ (data residency).
Шешім, қашан қандай режим:- Active-Active: екі өңірде ойыншыларға төмен жасырындылық, оқиғаларды синхрондау арқылы cross-region леджері + есептеулер үшін қатаң жеке «ақиқат орны».
- Active-Passive (warm): жеңіл және арзан; пассив жылы инстанцияларды + БД репликаларын ұстайды, бірақ трафикке қызмет көрсетпейді.
2) Желі және периметр
Денсаулық тексерулері бар қайталанған ingress/WAF, Anycast немесе DNS-фейловер.
Кассалар мен провайдерлерге арналған жеке egress-шлюздер, екі өңірде де рұқсат етілген IP тізімдері.
3) Деректер мен кезектер
Реляциялық ДБ (Postgres): Patroni/Managed HA, AZ синхронды репликалары, DR-аймаққа асинхронды реплика (лагтар мониторингімен). Әрбір N минут сайын снапшотпен PITR + WAL мұрағаты.
OLAP (ClickHouse/BigQuery): репликалау/шардалау; жоғалтуға жол беріледі (RPO 15-30 минутқа дейін).
Кэш (Redis): failover бар кластер, бірақ ақиқат көзі емес; ауыстыру кезінде - жылы жылыту.
Оқиғалар шинасы (Kafka/NATS): айналы кластерлер және/немесе cross-cluster-mirroring, «at-least-once» кепілдігі, тұтынушылардағы демпотенттілікті бақылау.
4) Қосымшалар мен домендер
Әмиян/леджер: қатаң консистентті stateful-ядро, аймаққа бір «мастер-райтер»; өңіраралық DR кезінде - қос жазбаны бұғаттайтын «elected writer» рәсімі.
Ойын bridge/API: stateless, health-чектер бойынша көлденең фейловер; idempotencyKey барлық қаржы жолдары үшін.
Бонустар/хабарламалар/ETL: кейінге қалдырылған өңдеуге жол беріледі, кезектерден қайта іске қосылады.
Касса (PSP/крипта): мультипровайдерлік стратегия (елге кем дегенде 2 рельс), мерчанттарды/эндпоинттерді жылдам ауыстырып қосу.
5) Live стримдері
WebRTC/LL-HLS өңірлік edge-тораптары бар гейтвейлер; WebRTC деградациясы кезінде LL-HLS fallback-бағыттары.
Ағынды қайта іске қосу есептеуге әсер етпеуі үшін, мөлшерлеме логикасын плеерден тыс ұстап тұру.
Failover үлгілері
Актив-актив (екі аймақтық)
Артықшылықтары: ең аз RTO/RPO, ойыншыларға жақындығы.
Кемшіліктері: леджер мен жазба қайшылықтарының күрделілігі, қымбат тор.
Тәжірибе: «доменге бір жазушы» + көрші аймақтағы күйді көрсету үшін event sourcing.
Актив-пассив (жылы)
Артықшылықтары: баға/күрделілік теңгерімі.
Минустары: RTO жоғары, пассивті өңірді «жарнамалаудың» пысықталған жоспары қажет.
Практика: автоматика + әмиянды қайта қосу кезінде қолмен растау (4-көз қағидаты).
Өңірішілік (Multi-AZ)
Автофейловер БД/кэш/ingress.
DNS/Anycast, RTO секунд-минут өзгеріссіз.
Деректер класы бойынша сақтық көшірме (Backup)
Принциптері:- Бэкап тыныштық пен транзитте шифрланады, кілттер - KMS/HSM.
- Сыни бекаптарға арналған Immutable (WORM) режимі (өшіруден/шифрлаудан қорғау).
- Метадеректері бар бэкап каталогы (схеманың нұсқасы, WAL терезесі, бақылау сомалары).
- PITR леджер үшін міндетті.
Деректер мен теңсіздік: фейловер кезінде «тесіктерді» қалай болдырмау керек
IdempotencyKey 'bet' сұрауларында. place`, `payout. request`, `cashier. webhook`.
Леджер - тек append-only: қайталама settle «қайта жазу» емес, түзету жазбасын жасайды.
Транзакциялық құлыптар/балансты нұсқалау жазушының рөлін ауыстырған кезде жарыстардан қорғайды.
Оқиғаларды дедупликациялау (consumer-side, негізгі өрістер бойынша хэш).
Касса, PSP және крипта: B жоспары әрқашан қосылған
Ең аз дегенде екі провайдер төлем әдісіне (карта/АЖО), екі өңірде де алдын ала ашылған мерчант-шоттарға.
Стейблкоиндер үшін - екі желі (мысалы, TRC-20 және ERC-20) және екі on/off-ramp-провайдер.
Төлем маршрутизаторы: жаңылыс кезінде PSP дереу резервтік жүйеге ауысады, себептерін жазады.
KYT/AML-ағындары қайталанады; егер сыртқы қызмет қол жетімді болмаса - қолмен эскалацияланған «degraded mode».
Операциялық процедуралар (Runbooks)
Автоматты
Денсаулық-чек тізбегі ingress → API → әмиян → БД → провайдер.
Әмиян деградациясы кезінде «ауыр» функцияларды (турнирлер/миссиялар) автоматты түрде ажырату.
Экспоненциалдық үзілісі және қатаң мерзімдері бар таймауттар/ретрайлер.
Қолмен (расталған)
DR-аймақты активке жылжыту: қадамдар бойынша чектлистер, журналдау, комм-шаблондар (саппорт/серіктестер/реттеуші).
Раундтар бойынша өтемақылар/VOID: себептердің кодтары, бейнефидке сілтемелер, жауаптылардың қолы.
Екі жақты бақылаумен төлемдерді еріту.
Оқу-жаттығулар мен дайындықты тексеру
Game Day/Chaos Drill ай сайын: AZ өшіру, БД деградациясы, провайдердің құлдырауы.
Full DR Rehearsal тоқсан сайын: DR аймағын «толық өсуге» көтеру, ставкалар/төлемдердің нақты сценарийлерін қуып шығу.
Restore-тесттер: T уақытында леджерді қалпына келтіру, бақылау P&L және хэш-кесінділермен салыстыру.
Table-top комплаенспен: кім және кімге хабарлайды, қандай есептер қалыптастырылады (реттеуші, PSP, аффилиаттар).
Бақылау және фейловер сигналдары
SLO-метриктер: p95 latency әмиян, үлесі 'bet. rejected ', settle раунд уақыты, SLA төлемдер, БД репликация лаг, Kafka-консьюмерлер лаг.
Қайта қосу оқиғалары: «role change», «replication lag> X», «object-lock violation».
DR дашбордтары: тораптардың ағымдағы рөлі, RPO-бағалау (минут WAL), PITR-терезе мәртебесі.
Қауіпсіздік және комплаенс
Юрисдикциялар бойынша деректерді оқшаулау (EU/UK/CA/...): заңмен рұқсат етілген шекте репликациялау.
Өзгермейтін журналдар (S3 Object Lock/WORM), реттеуші мерзімдер бойынша ретеншн.
Құпиялар: DR операциялары үшін кілттерді ротациялау, міндеттерді бөлу (dual-control).
Барлық ауыстырып қосу және қалпына келтіру аудит-трейлері.
DR бұзатын қарсы үлгілер
Елге бір PSP/бір стейблкоин желісі - резервтік рельс жоқ.
OLTP және OLAP бір ДБ - қалпына келтіру «тірі» операцияларды бұғаттайды.
idempotencyKey жоқ - ретраяларда дебет/төлем дублі.
Тұрақты restore-тесті жоқ бэкаптар - «шрёдингер бэкапы».
WORM/immutability болмауы - инсайдерлік/зиянды жоюға осалдығы.
Қысқа TTL және қыздырылған эндпоинттерсіз DNS-фейловер.
Бір мезгілде екі өңірдегі леджердің бірыңғай жазушысы - жағдайды ыдырату.
Аварияларға дайындықтың чек-парағы
Сәулет
- Барлық сыни сервистер үшін Multi-AZ, құжатталған топология.
- Сипатталған рөлі (Active-Active/Passive) және бюджеті бар DR-өңір.
Деректер
- Postgres: PITR, snapshots, лаг-мониторинг, тұрақты қалпына келтіру тесттер.
- Kafka/NATS: зеркалау/мұрағат, реплика-жоспар.
- ClickHouse/OLAP: партиялық артықшылықтар, таңдауларды қалпына келтіру.
- S3: Object Lock (WORM), нұсқалар, кросс-аймақ.
Қолданбалар
- Idempotency ақшамен, append-only леджер, балансты нұсқалау.
- Оқиғалар кезінде авто-feature-degrade (турнирлер/миссиялар off).
- Аймақты ауыстыру алдында канареялық тексерулер.
Касса және крипта
- Әдіске екі провайдер және стейблдер үшін екі желі.
- Бағыттау және ауыстыру себептері журналы.
- KYT/AML деградациялық күйде.
Операциялар
- RACI және кезекші телефондары бар Runbooks.
- Ай сайынғы Chaos-күндері және тоқсандық Full-DR жаттығулары.
- Коммуникациялық үлгілер (саппорт, серіктестер, реттеуші).
Бақылау мүмкіндігі
- RTO/RPO дашбордтары, БД рөлінің алаңдары, лагтар, ставкалардың/төлемдердің істен шығуы.
- Қайта қосу және қалпына келтіру аудиті.
iGaming сенімділігі - бұл «фейловер түймесі» емес, әдеттер жүйесі: географиялық оқшаулау, болжамды RTO/RPO, демпотенттік ақша, көп рельстік касса, immutable-бэкаптар, тұрақты жаттығулар және ашық байланыс. Мұндай тәртіп леджердегі іркілістерді жоғалтусыз, «жабысқақ» раундтарсыз және ойыншылар мен реттеушілердің сенімі бойынша соққыларсыз бастан кешуге мүмкіндік береді.