GH GambleHub

ხელმისაწვდომობის ზონები და ჯვარედინი რეგიონები

1) ტერმინები და მიზნები

ხელმისაწვდომობის ზონა (AZ) არის იზოლირებული მონაცემთა ცენტრი რეგიონში (საკუთარი ძალა/ქსელი).
რეგიონი არის AZ ჯგუფი, რომელსაც აქვს ზოგადი გეოგრაფია და შეფერხებები.

აღდგენის მიზნები:
  • RTO (Recovery Time Objective) - რამდენი დრო არ შეგიძლიათ მომსახურების გაწევა.
  • RPO (Recovery Point Objective) - რამდენი მონაცემების დაკარგვა დასაშვებია.

ჩვეულებრივ: რეგიონის შიგნით, ჩვენ გავაფართოვებთ RTO-5 წუთი, RPO ~ 0-1 წუთი, ინტერრეგიონალურად - RTO - 1 საათი, RPO - 5 წუთი (ეს დამოკიდებულია პროდუქტზე და ბიუჯეტზე).

2) არქიტექტურული მოდელები

2. 1 რეგიონში (multi-AZ)

სტატუსის ფენა: ნაწილდება AZ; დაბალანსება - L4/L7 ჯანმრთელობის შემოწმებებით.
Stateful ფენა: მტევანი სინქრონული რეპლიკაციით (ან კვორუმი) AZ- ს შორის.
კეში/ხაზები: კლასტერული, AZ და ავტომატური failover შარდვით.

2. 2 ინტერ-რეგიონალური

აქტიური: ორივე რეგიონი იღებს ტრაფიკს.

მომხმარებლების მინიმალური ლატენტობა, სწრაფი აღდგენა; - თანმიმდევრულობისა და კონფლიქტების სირთულე.
Active-Passive (ცხელი/warm): მთავარი რეგიონი ემსახურება, მეორე - ცხელი/თბილი მოლოდინით.

მონაცემები უფრო ადვილია, იაფია; - უფრო მაღალი, ვიდრე RTO.
Pilot-Light: მინიმალური „შუქი“ (მონაცემები სინქრონიზებულია, გამოთვლები ვითარდება უბედური შემთხვევის დროს).
DR-backup: მხოლოდ ზურგჩანთები და აღდგენის სცენარი (ყველაზე იაფი და ნელი).

3) მონაცემები და თანმიმდევრულობა

3. 1 მონაცემთა ბაზა

სინქრონული კვორუმი (RPO-0, ლატენტობა): PostgreSQL სინქრონული standbys რეგიონში; განაწილებული BD (CockroachDB/Cassandra) ადგილობრივი კვორუმებით (ადგილობრივი Qurum) და AZ დაბალანსებით.
ასინქრონული ინტერრეგიონალური (RPO> 0, ლატენტობა): Postgres/MySQL ლოგიკური რეპლიკაცია; «global tables» в KV/NoSQL; CDC არის ნაკადი სხვა რეგიონში.
კონფლიქტური ჩანაწერები: აქტიური აქტიურობისთვის გამოიყენეთ CRDT/ვერსია ან „ჭეშმარიტების წყარო“ სტრატეგია.

3. 2 ღონისძიება და რიგები

რიგები/ნაკადები (Kafka/Pulsar/SQS მსგავსი): mirror-topics ან ჯვარედინი რეგიონალური რეპლიკატორები; გასაღები არის Consumers idempotence და dedup კლავიშებზე.
ვებჰუკი და გარე პარტნიორები: ხელი მოაწერეთ, გქონდეთ ანგარიში, შეინახოთ ოფსეტური/შემოწმება ორივე ზონაში.

3. 3 კეში

ადგილობრივი ქეში per რეგიონი (write-through/refresh-ahead); გლობალური საერთო ქეში მხოლოდ გამძლე KV- სთვის (წინააღმდეგ შემთხვევაში split-brain). ინვალიდობა (pub/sub), TTL - კონსერვატიული.

4) გლობალური ტრაფიკი და ქსელის კონტური

GSLB/DNS: Geo-/Latency-based routing, health checks, „traffic weights“ კანარებისა და უბედური შემთხვევებისთვის.
Anycast/Edge: ჩვენ ვუახლოვდებით მომხმარებლის შესასვლელს, შემდეგ უახლოეს ჯანმრთელ რეგიონს.
Failover პოლიტიკოსები: upstream- ის რეგიონალური აუზები, კრიტიკულ მარშრუტებზე 0-RTT აკრძალვა, რეგიონალურ დამოკიდებულებებზე დაბალი ტაიმაუტები.
Retray პოლიტიკოსები: ექსპონენციალური backoff + gitter, total-deadline შეზღუდვა, idempotent PUT/POST 'Idempotency-Key'.

5) Kubernetes და mesh

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) დეკლარაციული სინქრონიზაციისთვის.
Service Mesh (Istio/Linkerd): load-balancing და failover რეგიონებს შორის; mTLS, საერთო თვითმყოფადობა.
Traffic-shifting: ეტაპობრივად 1% - 10% - 50% ახალი რეგიონისთვის; სახელური „მიეცი 0%“ მყისიერად.

6) RTO/RPO არჩევანი და ნიმუშების მითითება

პატტერნიტიპიური RTOტიპიური RPOსადაც გამოიყენება
Active-Activeწუთი~ 0 წუთი (CRDT/CDC)გლობალური API დაბალი ლატენტობით
Hot Standby5-15 წუთიწამები და წუთიკრიტიკული B2C სერვისები
Warm Standby15-60 წუთიწუთიანი საათიb2b/ოპერაციული ქვესისტემები
Pilot-Lightსაათისაათიდაბალი კრიტიკა/ღირებულება
Backup-onlyდღეებიდღეარქივი/ანალიტიკა არ არის რეალური დრო

7) წინააღმდეგობის ტესტირება (DR)

GameDays: კვარტალური სრულმასშტაბიანი სცენარი „რეგიონი/AZ“.
Chaos ინექციები: ქსელის შეფერხებები, პაკეტების დაკარგვა, ბროკერის/ბაზის გათიშვა ერთ AZ- ში.
RTO/RPO ფაქტობრივი: გაზომეთ მონაცემების გადართვისა და დაკარგვის დრო, გამოაქვეყნეთ ანგარიში.
Runbooks: ეტაპობრივი ინსტრუქციები და „წითელი ღილაკები“ გადართვისთვის (DNS weights, feature-flags, მძიმე დარტყმების გამორთვა).

8) დაკვირვება და კონტროლი

მეტრიკის სექციები რეგიონის/AZ/ტენანტის მიხედვით; p95/p99 ლატენტობა მარშრუტებზე.
SLO და Error Budgets რეგიონში და გლობალურ აუზზე.
ალერტები: ერთი რეგიონის დეგრადაციამ არ უნდა „დააზიანოს“ პეიჯინგი, თუ მეორე ნორმალურ ტრაფიკს ატარებს.
Трейсы: baggage `region`, `az`, `failover=true/false`; მოხსენებები „რამდენი მოთხოვნა წავიდა failover- ზე“.

9) უსაფრთხოება და შესაბამისობა

მონაცემთა აღდგენა: PII/გადახდის მონაცემების დაკავშირება გარკვეულ რეგიონებში (იურისდიქცია).
საიდუმლოებები: KMS/smart-HSM ჯვარედინი რეგიონალური კლავიშებით და როტაციით; გააზიარეთ გასაღების მასალები per რეგიონში.
mTLS და რეგიონებს შორის ურთიერთდაჯერებული; შეზღუდეთ ჯვარედინი რეგიონალური egress ACL- ისთვის.

10) ღირებულება და დაზოგვა

Edge ქეში + SWR - ინტერრეგიონალური ეგრისის შემცირება.
სხვადასხვა შენახვის კლასები (ცხელი/warm/cold) და downsampling მეტრიკა/ლოგები.
ავტო-სკალის პროფილები რეგიონების მიხედვით (ღამის მინიმუმი).
სურათების იდენტურობა + დიფერენცირებული კონფიგურაცია გარემოს ცვლილებით/Helm values.

11) ანტიპატერები

ერთი Stateful ოსტატი მთელ სისტემაზე; split-brain კვორუმის გარეშე.
ინტერრეგიონალური სინქრონული ჩანაწერი ერთადერთ RDBMS- ში (აუტანელი ლატენტობა).
გლობალური ქეში ძლიერი თანმიმდევრულობით CRDT- ს გარეშე არის შეშუპება და „ფანტომები“.
Retrai idempotence - ოპერაციების/გადახდების დუბლიკატები.
ერთი „გლობალური“ SLO - მალავს ერთი რეგიონის წარუმატებლობას.
არ არსებობს რეგულარული DR წვრთნები - გეგმები ბრძოლაში არ მუშაობს.

12) iGaming/ფინანსების სპეციფიკა

გადახდის პროვაიდერები/KUS შეირჩევა რეგიონალურად; გააკეთეთ smart-routing PSP- ზე ჯანმრთელობის სიგნალებით, failover სარეზერვო.
იურისდიქცია: PII და ოპერაციების ჟურნალების შენახვა ქვეყნის/რეგიონის შიგნით; ჯვარედინი რეგიონი - მხოლოდ აგრეგატები/ანონიმი.
ლიმიტები/საპასუხისმგებლო თამაში: ადგილობრივი წესები და საათები - ნუ შეამოწმებთ რეგიონებს შორის „შუბლზე“, გამოიყენეთ ღონისძიების თანმიმდევრულობა.
პრემია/ბალანსი: idempotent გასაღებები და „ჭეშმარიტების წყარო“ per tenant/region; ჩანაწერების ჯობი 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 DNS წონის ფეილოვერი (იდეა)

'weight (eu) = 90', 'weight (us) = 10' ჯანმრთელობის შემოწმებები და შემცირებული TTL (მაგრამ არც ისე აგრესიული, 30-120 გვ).

14) მზადყოფნის ჩეკის სია

  • განსაზღვრულია RTO/RPO per სერვისი და შეთანხმებულია ბიზნესთან.
  • სახელმწიფო განაწილებულია AZ- ში; stateful- ს აქვს კვორუმი/რეპლიკაცია და თანმიმდევრულობის გასაგები მოდელი.
  • რეპლიკაცია არის ინტერრეგიონალური (ასინქრონი/CDC), კონფლიქტების/დედუპლიკატორის ტესტები.
  • GSLB/Anycast მორგებულია, health checks და weights ავტომატიზებულია.
  • Kubernetes: topology-spread, PDB, anti-affinity; multi-cluster GitOps.
  • Retrai ერთად jitter, idempotence write; მოკლე ტაიმაუტები ინტერრეგიონალურად.
  • DR სწავლებები, იზომება ფაქტობრივი RTO/RPO; შესაბამისი runbook.
  • რეგულირების/AZ- ის, SLO- ს და ბურნის სექციებზე დაკვირვება, ალერტები არ „ჩურჩულებენ“ ნორმალურ მუშაობას.
  • მონაცემთა აღდგენა/საიდუმლოებები/გასაღებები შეესაბამება მარეგულირებელს.
  • ეკონომიკა: egress, შენახვა, სკეიტის პროფილები კონტროლდება.

15) TL; DR

ააშენეთ multi-AZ, როგორც ძირითადი ფენა, მულტიმედია - როგორც ბიზნესის დაზღვევა. შეარჩიეთ Active Active/standby RTO/RPO და ღირებულება, გაითვალისწინეთ მონაცემები შეგნებულად (კვორუმები/CDC/CRDT), მართეთ გლობალური ტრაფიკი GSLB/Anycast- ის მეშვეობით და დაბალანსება. სავალდებულოა: idempotence, მოკლე Timauts, რეგულარული DR სწავლებები, SLO/მეტრიკა რეგიონის/AZ სექციებზე. IGaming/ფინანსებისთვის დაამატეთ რეგიონალური PSP/KYC, მონაცემების მოთხოვნები და იურისდიქციების ცალკეული SLO.

Contact

დაგვიკავშირდით

დაგვიკავშირდით ნებისმიერი კითხვის ან მხარდაჭერისთვის.ჩვენ ყოველთვის მზად ვართ დაგეხმაროთ!

Telegram
@Gamble_GC
ინტეგრაციის დაწყება

Email — სავალდებულოა. Telegram ან WhatsApp — სურვილისამებრ.

თქვენი სახელი არასავალდებულო
Email არასავალდებულო
თემა არასავალდებულო
შეტყობინება არასავალდებულო
Telegram არასავალდებულო
@
თუ მიუთითებთ Telegram-ს — ვუპასუხებთ იქაც, დამატებით Email-ზე.
WhatsApp არასავალდებულო
ფორმატი: ქვეყნის კოდი და ნომერი (მაგალითად, +995XXXXXXXXX).

ღილაკზე დაჭერით თქვენ ეთანხმებით თქვენი მონაცემების დამუშავებას.