Հասանելիության գոտիներ և քրոսային տարածքներ
1) Տերմիններ և նպատակներ
Հասանելիության գոտին (AZ) տարածաշրջանի ներսում մեկուսացված կենտրոն է (սեփական ուժը/ցանցը)։
Տարածաշրջանը AZ խումբն է ընդհանուր աշխարհագրությամբ և ձերբակալություններով։
Վերականգնման նպատակները
RTO (Recovery Time Objective) - որքա՞ ն ժամանակ կարող եք ծառայություն չանել։
RPO (Recovery Point Objective) - որ տվյալների ծավալը թույլատրելի է կորցնել։
Սովորաբար, տարածաշրջանի ներսում ապրում ենք RTO 245-15 րոպե, RPO 240-1 րոպե, միջտարածաշրջանային ՝ RTO 241 ժամ, RPO 245 րոպե (կախված է ապրանքից և բյուջեից)։
2) Ճարտարապետական մոդելներ
2. 1 Տարածաշրջանի ներսում (multi-AZ)
Stateless շերտը 'բաժանված է AZ-ով; հավասարակշռությունը L4/L7 է health-winks-ից։
Stateful շերտը 'կլաստերներ, որոնք ունեն սինխրոն կրկնօրինակում (կամ կվորում) AZ-ի միջև։
Քաշ/հերթեր 'կլաստեր, շարդիզացիայով AZ-ով և ավտոմատ failover-ով։
2. 2 Միջմայրցամաքային (multi-region)
Active-Action-ը 'երկու տարածաշրջանները ընդունում են ֆորումը։
նվազագույն լատենտը, արագ վերականգնումը, հետևողականության և կոնֆլիկտների բարդությունը։
Active-Passive (hot/warm), հիմնական տարածքը ծառայում է, երկրորդը ՝ տաք/տաք սպասման մեջ։
ավելի պարզ տվյալներ, ավելի էժան, քան RTO-ն։
Pilot-Light: նվազագույն «լույսը» (տվյալները համաժամեցված են, հաշվարկները տեղի են ունենում ավտովթարի ժամանակ)։
DR-backup: միայն bakaps և վերականգնման սցենարը (ամենաէժան և դանդաղ)։
3) Տվյալները և կոնսիստենտալությունը
3. 1 Տվյալների բազա
Սինխրոն քվորումային (RPO 240, լատենտ): PostgreSQL-ը տարածաշրջանի ներսում սինխրոն standbys հետ։ Բաշխված BD (CockroachDB/Cassandra) տեղական կվորումի հետ և AZ-ի հավասարակշռությունը։
Ասինխրոն միջտարածաշրջանային (RPO> 0, լատենտ) 'Postgres/MySQL տրամաբանական կրկնօրինակումը։ «global tables» в KV/NoSQL; CDC-ն պատրաստվում է հոսել այլ տարածք։
Հակամարտող ձայնագրությունները 'actival-ի համար օգտագործեք CRDT/տարբերակումը կամ «ճշմարտության աղբյուրը» ռազմավարությունը (leader-region per key/tenae)։
3. 2 Event-sorsing և հերթեր
/ strims (Kafka/Pulsar/MSS նման): mirror-top.ru կամ cross-տարածաշրջանային կրկնօրինակներ; բանալին այն է, որ վահանակների և դեդուպի համադրությունն է։
Webhuki-ը և արտաքին գործընկերները 'ստորագրել, ունենալ replay, պահել wwww.set/chekpoints երկու գոտիներում։
3. 3 Քաշ
Տեղական cashi per-տարածք (write-through/refresh-ahead); գլոբալ ընդհանուր քեշը միայն ուժեղ KV-ի համար (հակառակ դեպքում split-brain)։ Հաշմանդամացնել իրադարձությունների միջոցով (pub/sub), TTL-ը պահպանողական է։
4) Գլոբալ ինտեգրումը և ցանցային ցանցը
GSLB/IV: Geo-/Latency-based routing, health-winks, «traffic-weights» քարերի և վթարների համար։
Anycom/Edge: Մենք մոտեցնում ենք օգտագործողին, ապա մոտակա առողջ տարածաշրջանին։
Failover-քաղաքական գործիչները 'տարածաշրջանային upstream' s, 0-RTT արգելքը կրիտիկական ճանապարհների վրա, ցածր թայմաուտները միջտարածաշրջանային կախվածությունների համար։
Գետերի քաղաքական գործիչները ՝ էքսպոնենցիալ backoff + jitter, total-deadium, idempotent PUT/POST-ի հետ 'Idempotency-Key։
5) Kubernetes-ը և ծառայության-մեշը
5. 1 Multi-AZ մեկ կլաստերում
topology spread constraints по `topology. kubernetes. io/zone`.
PodDisruptionBudget и priority classes.
NodeAffinity/Anti-Affinity-ը խուսափում է կրկնօրինակման վայրերից։
Պահեստավորման գոտիները ՝ PV, AZ-ի կրկնօրինակմամբ կամ բաշխված volume համակարգերով։
5. 2 Multi-region (multi-cluster)
Per-տարածաշրջանի առանձին կլաստերներ + GitOps (Argo CD/Flux) վերափոխման համաժամացման համար։
Mesh (Istio/Linkerd): wwww.ality-aload-balancing և failover տարածաշրջանի միջև; MTSA, ընդհանուր ինքնությունը։
Traffic-shifting: Վարչականորեն 1 տոկոսը 10 տոկոսն է '50 տոկոսը նոր տարածաշրջանի վրա։ գրիչը «տեղադրել 0%» անմիջապես։
6) RTO/RPO ընտրությունը և փամփուշտներին կապելը
7) Անկայունության փորձարկումը (DR)
GameDays: Եդեքվարտալ ամբողջական սցենարը «շրջանակը/AZ»։
Chaos-international-ը 'ցանցային ուշացումներ, միգրանտների կորուստ, բրոքերի/բազայի անջատումը մեկ AZ-ում։
RTO/RPO իրական է 'չափեք մրցույթի ժամանակը և տվյալների կորցնելը, հրապարակեք զեկույցը։
Runbooks: մաքսանենգ հրահանգներ և «կարմիր կոճակներ» փոխանցման համար (ISO weights, feature-flags, ծանր ֆիգուրի անջատումը)։
8) Դիտողությունն ու կառավարումը
Region/AZ/tenae; p95/p99 լատենտ երթուղիներով։
SLO և Error Budgets-ը տարածաշրջանի և գլոբալ փամփուշտի վրա։
Ալբերտ 'մեկ տարածաշրջանի դեգրադացիան չպետք է «խուլ» լինի, եթե երկրորդը նորմալ է։
Трейсы: baggage `region`, `az`, `failover=true/false`; «Քանի՞ հարցումներ գնացին failover»։
9) Անվտանգությունն ու համապատասխանությունը
Euresidency: PII/հիբրիդային տվյալները որոշակի տարածաշրջանների (միգրացիա) հետ։
Գաղտնիքները ՝ KFC/խելացի-HSM քրոսս-ռուսական բեկորների և ռոտացիայի հետ։ բաժանեք նյութերը www.per տարածք։
MTSA-ը և փոխադարձ վստահությունը տարածաշրջանների միջև; սահմանափակեք cross-տարածաշրջանային egress-ը ACL-ով։
10) Արժեք և խնայողություն
Edge-kash + SWR-ը միջտարածաշրջանային egress-ի նվազումն է։
Պահեստավորման տարբեր դասարաններ (hot/warm/cold) և downsampling metric/logs։
Avto-scale-ը ավելացված է տարածաշրջաններով (գիշերային նվազագույն)։
Պատկերների ինքնությունը + տարբերակված կազմաձևումը շրջակա միջավայրի/Helm values-ի միջոցով։
11) Անտիպատերնի
Մեկ Stateful-վարպետ ամբողջ համակարգի համար։ split-brain առանց կվորումի։
Միջտարածաշրջանային սինխրոն ձայնագրությունը միակ RDBSA-ում (անպարկեշտ լատենտություն)։
Գլոբալ քեշը ուժեղ կոնսիստենտով առանց CRDT-ի պլանավորվում է փակումներ և «ֆանտոմներ»։
Repray առանց idempotenty-ի կրկնօրինակները վիրահատությունների/վճարումների։
Մեկ «գլոբալ» SLO-ն թաքցնում է մեկ տարածաշրջանի ձախողումը։
Ոչ մի DR ուսուցում չկա, պլանները չեն կարող պայքարել։
12) iGaming/ֆինանսական առանձնահատկությունները
Հիբրիդային պրովայդերներ/CUS ընտրվում են կանոնավոր; դարձրեք smart-routing PBS-ով health ազդանշաններով, failover-ով։
Միգրացիան 'PII-ի պահպանումը և երկրի ներսում/տարածաշրջանի գործողությունների ամսագրերը։ Քրոս տարածաշրջանը միայն ագրեգատներ/անոնիմա է։
Limits/պատասխանատու խաղը 'տեղական կանոնները և ժամացույցը, մի կրկնօրինակեք «ճակատը» տարածաշրջանների միջև, օգտագործեք իրադարձական կոնսիստենտություն։
Բոնուսներ/հավասարակշռություն 'գաղափարական բանալիներ և «ճշմարտության աղբյուրը» per tenault/region; reconcile ջոբի DR-ից հետո։
13) Մինի-բաղադրատոմսեր (կեղծ)
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 IV քաշային ֆեյլեր (գաղափար)
"weight (eu) = 90", "weight (us) = 10 '07 քայքայման ժամանակ" eu "ինքնաբերաբար շարժվում է" us "։ Health-winks և կրճատված TTL (բայց ոչ այնքան ագրեսիվ, 30-120 s)։
14) Չեկ-թուղթ պատրաստակամության համար
- Որոշված RTO/RPO per ծառայություն և համաձայնեցված է բիզնեսի հետ։
- Stateless բաշխվում է AZ-ով; stateful ունի quorum/կրկնօրինակում և պահպանողականության հասկանալի մոդել։
- Միջտարածաշրջանային (asinhron/CDC), հակամարտությունների թեստեր/deduplicator։
- GSLB/Anycript, health-winks և weights ավտոմատիզիրուսներ։
- Kubernetes: topology-spread, PDB, anti-affinity; multi-cluster GitOps.
- Retray's jitter, impotenty write; կարճ թայմաուտները միջմայրցամաքային են։
- DR ուսուցումները, չափված իրական RTO/RPO; իրական runbook.
- Դիտարկումը region/AZ, SLO և burn-rate հատվածներում, ալերտները նորմալ աշխատանք չեն։
- Euresidency/գաղտնիքները/բանալիները համապատասխանում են կարգավորող։
- Տնտեսագիտություն 'egress, պահեստավորում, ավտոսրահի պրոֆիլներ վերահսկողության տակ։
15) TL; DR
Կառուցեք multi-AZ-ը որպես հիմնական շերտ, multi-region-ը որպես բիզնեսի ապահովագրություն։ Ընտրեք pattern (action/standby) RTO/RPO-ի տակ և արժեքը, կրկնօրինակեք տվյալները գիտակցաբար (corums/CDC/CRDT), կառավարեք գլոբալ ֆորումը GSLB/Anycript-ի և wwwww.alalalitalital-ault հավասարակշռության միջոցով։ Պարտադիր է 'կուռք, կարճ թայմաուտներ, DR ուսուցումներ, SLO/մետրեր region/AZ հատվածներում։ IGaming/ֆինանսավորման համար ավելացրեք PSA/KYC-ի տարածաշրջանները, տվյալների պահանջները և առանձին SLO-ները։