Failover, կրկնօրինակումը և DR պլանները կազինոյի համար
1) Բիզնես նպատակներ ՝ RTO/RPO և կրիտիկական ֆլոու։
RTO (որքան ժամանակ կարող է անհասանելի լինել) 'լոգինը/տոկոսադրույքը/դեպոզիտը վայրկյաններ/րոպե; զեկույցները ժամացույց են։
RPO (քանի՞ տվյալներ կարելի է կորցնել) 'դրամապանակ/գործարք ՝ 240-30 վայրկյան; հեռուստաչափությունը րոպեներ է։
Քննադատական ֆլոդը 'լոգինը, դեպոզիտը/եզրակացությունը, դրույքաչափը/ցանցաթլմը, KYC/AML-երշիկեղենները, PMS/խաղային պրովայդերներ։
2) Ճարտարապետական փամփուշտներ անկայունության համար
Active-Action (multi-region), երկու տարածաշրջանները մշակում են ձեռնարկություններ։ Ցածր RTO/RPO, բարդ խորհրդատվություն։
Action-Standby: Աշխատանքի մի տարածք, երկրորդ տաք; ավելի հեշտ է վիճակը, RTO րոպե։
Cell-based: մեկուսացումը «բջիջների» (market/brand), տեղական միջադեպերը չեն նվազեցնում ամեն ինչ։
Edge-պիրոգը 'Anycase CDN/WAF-ը ռուսական app-կլաստերների տարածաշրջանային դարպասներն է, որոնք ունեն կրկնօրինակման։
3) Կառավարումը և ցանցային ֆեյլերը
Anycase + CDN/WAF: կլանումը L3/4/7, health chek origin։
MS-failover (ցածր TTL, multi-value), Traffic System/GSLB առողջության չափումների վրա։- BGP-անոնսը anti-DDoS-ի պրովայդերի միջոցով արագ փոխելու համար։
- Health-chek (տրամաբանության օրինակ)
if p95_latency>threshold 5xx_rate>threshold synthetic_login_fail:
drain(region_A); shift(traffic->region_B, ramp=5min)
4) Տվյալները ՝ դրամապանակ, պատվերներ, տոկոսադրույքներ, դրամարկղեր, դրամապանակ, դրամապանակ,
Ճշմարտության աղբյուրը լարերի ամսագիրն է (ledger) 'միայն append, ipperation _ id։- Մոսկվա: պարբերական reconciliation-ջոբի միջև ledger, PSA և խաղերի պրովայդերների միջև։
- Anti-դուբլ 'idempotency-բանալիներ դեպոզիտների/երշիկեղենի համար/2019; dedeplication box/inbox-ում։
5) Վերափոխում BD ՝ տարբերակներ և փոխզիջումներ
Ֆիզիկական սինխրոն (semi-ensnc) 'նվազագույն RPO, ուշացման ռիսկը' օգտագործել կետային (դրամապանակ)։- Ասինխրոն 'ավելի բարձր արտադրողականություն/պարզություն, RPO վայրկյան' խաղային մետատվյալների համար, տեղեկատուներ։
- Տրամաբանական (CDC) 'ճկուն ընտրություն, հարմար է խաչաձև շարժիչների և վերլուծաբանների համար։
- Քեշի (Redis/Memcached), ոչ թե ճշմարտության աղբյուրը։ կրկնօրինակներ/սարքավորումներ, տաք մեկնարկներ։
- PITR: շարունակական ամսագրեր (WAL/redo) օֆսայթ պահեստի վրա, 7-30 օրվա վերակառուցման պատուհանը։
6) Կոնսիստենտալությունը և համակարգման ձևանմուշները
Saga + Disbox: Բիզնես գործարքները որպես քայլի շղթա, ատոմային իրադարձությունների հրապարակումը BD-ում։
Exactly-once-ը «իմաստալից» է 'գործողությունների համադրելիությունը, հավասարակշռության տարբերակների վերահսկումը (optimistic-king)։
Eventium consistency-ում ոչ լյութերական ֆլոուում (առաջնորդը, վերլուծությունը); strong փողի համար։
7) Բաղադրիչները և նրանց ֆեյլերը
API/backend
Statles-բեռնարկղերը, ավտոմեքենաները, blue-green/canary; Դելիգները պահեստի միջոցով (տարբերակով)։
Հերթեր/սթրիմ
Cvorum կլաստերներ (N = 3/5), cross-AZ կրկնօրինակներ; ուսուցիչների քաղաքականությունները և dlt-հերթերը։
BD դրամապանակ
Մարի Region A-ում, սինխրոն կրկնօրինակը A-ում (մյուս AZ), ասինխրոն 'Region B-ում։ ավտոմատ promote-ը split-brain-ում արգելված է 'միայն ձեռքով/ջութակ չեկով։
Ֆայլեր/KUS արտեֆակտներ
Օբյեկտի պահեստը տարբերակիչով, քրոսեքսային կրկնօրինակով/CRR-ով, KHL-ի բանալիները։
WebSocket/Real-time
Շարդինգը բեկներով (table/game/market), sticky-routing; ֆեյլովերի դեպքում resubscribe-ը rejoin-token-ով։
8) Վճարումներ և խաղերի պրովայդերներ. Շատ աղբյուրներ ճշմարտությունը
PMS-ֆեյլերը 'առնվազն 2 պրովայդեր յուրաքանչյուր մեթոդի համար (քարտեզը, դրամապանակը, կրիպտոն)։
SLA/արժեքի/BIN-ի տոկոսադրույքը։ անջատել PSA անջատումը ավտոմատ։- Խաղային պրովայդերներ 'պահեստային ջրանցքներ/ASN allow-list, առանձին բանալիներ տարածաշրջանների վրա, թայմ-աուտների մեկուսացում։
9) Վեբհուկի և երշիկեղենի. Կայուն ընդունելություն և վերարտադրություն
Inbox-pattern: Մենք ընդունում ենք webhuk-ը, մենք ստուգում ենք ստորագրությունը/NMAS-ը, մենք գրում ենք immutable-inbox-ում, որը մշակվում է idempotent-ով։
Պրովայդերների Repray: backoff + dedup 'event _ id '/« signature »։
DR-ի դեպքում 'inbox-ի ռելեը, որը վերահսկում է կարգը (txn no settlae)։
10) Բեքապներ ՝ 3-2-1 ռազմավարություն և վերականգնման ստուգում։
3 կրկնօրինակներ/1 օֆսայթ (և 1 - օֆլինը/WORM քննադատական ամսագրերի համար)։
Գծապատկերներ ՝ ամենօրյա սարքավորումներ + մշտական ամսագրեր։ շաբաթական test-restore-ը մութ պատի վրա։- Մոսկվան և վերականգնումը. <<ինչպես բարձրացնել դրամապանակը t-J-ի պահին>>։
11) DR պլանը 'դերեր, սցենարներ, հաղորդակցություններ։
Роли: Incident Commander, Comms, DB Lead, App Lead, Payments/Game PM, SRE Oncall.
Ալիքները ՝ war-room, կարգավիճակ-էջ, saport/գործընկերների/affiliats հաղորդագրությունների օրինակներ։- Սցենարներ (նվազագույն)
AZ-ի կորուստը, տարածաշրջանի կորուստը, PRC-ի անհասանելիությունը, BD-ի անկումը, խաղերի պրովայդերի դեգրադացիան, շարժիչների արտահոսքը, զանգվածային 5xx-ը։
12) DR-2019 մատրիցի օրինակ
13) Runbook "և ավտոմատիզացիա
«DR-cutover» կոճակը 'վալիդացիայի հետ քայլերի հաջորդականությունը (freeze writes)։- Ամբողջականության ստուգման ջութակները 'ledger/դրամապանակի գումարների իջեցում, հավասարակշռությունների անխուսափելիությունը։
- Feature-flags-ը 'արագ ռեպորտերի/սուլֆերի/ծանր dashbords-ը պատահականության ժամանակ։
14) Ֆեյլովերի համար դիտելը
SLO-metrics որպես stugers 'login, դեպոզիտ, դրույքաչափը, խաղի մեկնարկը։
Технические: replication-lag, WAL-shipping, queue-lag, 5xx, p95, SYN backlog, WebSocket disconnects.
Այլ տարածաշրջաններից 'լոգինը/դեպոզիտը/դրույքաչափը ամեն րոպե։- End-to-end, www.rgion ', «pox», «game _ provider»։
15) Chaos/DR ուսուցումները
GameDay-ը ապշեցուցիչ է 'AZ-ի անջատումը, PMS-ի դեգրադացիան, BD-ի հանգույցի «կորուստը», գծի կանգառը։- Հետադարձ հայացք. Որոշումների կայացման ժամանակը, որոնք բացակայում են, աղմուկ, նեղ վայրեր։
- RTO/RPO և ավտոմատացումը փաստերի հիմքում, ոչ թե «զգացմունքները»։
16) Անվտանգություն և ընկերակցություն
Բանալիները/գաղտնիքները KFC/HSM (Քրոս-տարածաշրջանային), ռոտացիան և dron-entll։- WORM/immutability ամսագրերի համար ռուսական և գործարքների համար։
- DPA/պայմանագրեր PFC/պրովայդերների հետ 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) Chek-Trady (2019-ready)
- Որոշված RTO/RPO յուրաքանչյուր ֆլոուի վրա; ընդունվել է բիզնեսով։
- Multi-AZ առնվազն; Multi-region դրամապանակի, լոգինի և վճարումների համար։
- Ledger + idempotention (keys) + www.box/inbox; reconciliation գրաֆիկի վրա։
- Repacation BD: www.nc տեղական, async DR; PITR-ը միացված է, հետազոտությունը ստուգված է։
- Երկու PBS մեթոդը, ռոտինգի քաղաքականությունը և թեստային բանալիները։ խաղերի պրովայդերները այլընտրանքներ են։
- III/GSLB/Anycript, health cheks և սինթետիկ, ցածր TTL։
- Runbook "և" DR-cutover "կոճակը, feature-flags դեգրադացիայի համար։
- SLO/alerts/tresing; վահանակ «DR կարգավիճակը»։
- Ezekvartal DR ուսուցումները + retro; նորարարված շփումները 24-7։
Ռեզյումե
Հուսալի iGaming-պլատֆորմը կառուցվում է դրամավարկային փաթեթի շուրջ 'idempotention, կանխատեսելի կեղծ, ստուգված կրկնօրինակումը և DR ուսուցումը։ Բաժանեք համակարգը ռուսական և տարածաշրջանների, ավտոմատիզացրեք cutover-ը, պահեք երկու PMS և պահեստային պրովայդերներ, հետևեք SLO-ին և ledger-ի ամբողջականությանը, և նույնիսկ մեծ վթարը կդառնա կառավարվող իրադարձություն առանց վստահության և փողի կորստի։