GH GambleHub

საპირისპირო მარიონეტული და მარშრუტიზაცია

1) საპირისპირო მარიონეტების როლი

შებრუნებული მარიონეტული - პლატფორმის „წინა ხაზი“: იღებს TLS- ს, ანაწილებს ტრეფიკს აფსიდებს შორის, იყენებს უსაფრთხოებისა და შესრულების პოლიტიკას. მიზანია მინიმალური ლატენტობა, პროგნოზირებადი მარშრუტიზაცია და დეგრადირებული ინსტანციების/ზონების სწრაფი იზოლაცია.

2) ფენები და ოქმები

L4: TCP/UDP proxy (SNI-based TLS passthrough, QUIC). დაბალი ფასი, HTTP გაგების გარეშე.
L7: HTTP/1. 1–2–3, gRPC, WebSocket. მდიდარი მარშრუტიზაცია (host, path, headers, cookies), ტრანსფორმაციები და ქეში.

TLS მოდელი: დაიკარგეთ პერიმეტრზე (NGINX/Envoy), შიგნით - mTLS/mesh. SNI საშუალებას აძლევს ვირტუალურ მასპინძლებს ერთ IP.

3) მარშრუტიზაციის სტრატეგიები (L7)

1. Host-based: დომენში ('app. brand. com '- მტევანი' brand-ap').
2. Path-based: `/v1/payments` → `payments-svc`, `/v1/wallets` → `wallets-svc`.
3. Header-based: `X-Region: eu-central`, `X-Tenant: 42`, `User-Agent`/`Accept`.
4. Cookie-based: A/B ტესტები, „წებოვანი“ სესიები.
5. Wighted/Canary: ტრეფიკის პროცენტი ახალ ვერსიაზე (1-5% 100%).
6. Geo/ASN: ქვეყანაში/ASN ჩვენ ვუგზავნით უახლოეს ROP/რეგიონში.
7. Consistent hashing: ღილაკის აკრეფა (user _ id/tenant _ id) ინსტანციამდე - ქეში-ლოკალიტი/წებოვანი.
8. Shadow/Mirroring: ჩვენ კოპირებას ვაძლევთ ტრაფიკს „ჩრდილის“ აფსიდზე პასუხზე გავლენის გარეშე (რეგრესიის ტესტებისთვის).

4) დაბალანსება და წინააღმდეგობა

ალგორითმები: round-robin, least-request, random, ring-hash (consistent).
ჯანმრთელობის შემოწმებები: აქტიური (HTTP/TCP) + პასიური (კოდებით/ტაიმაუტებით).
Outlier Ejection: დროებით „დაარტყა“ მასპინძელი გაზრდილი შეცდომით/ლატენტობით.
Retries: შეზღუდული, per-try timeout და jitter; ნუ დახარჯავთ სახიფათო მეთოდებს იდემპოტენტურობის გარეშე.
კავშირი აუზი: შეინახეთ warm აუზები აფსიდებისთვის, შეზღუდეთ სიმაღლეები.

5) პერიმეტრის შესრულება

ქეშირება: გასაღები (method + host + path + Vary), პირობები 'ETag/If-None-Match', TTL და stale-while-revalidate.
კომპრესია: brotli/gzip ტექსტური პასუხებისთვის.
HTTP/2/3: მულტიპლექსაცია, header-compression; დარწმუნდით WAF/IDS თავსებადობის შესახებ.
Request coalescing: პარალელური თხოვნების დაჭერა იმავე ქეშის ღილაკზე.

6) მარიონეტული უსაფრთხოება

TLS: 1. 2 + (უკეთესია, ვიდრე 1. 3), OCSP stapling, HSTS.
WAF/bot ფილტრები: app მარშრუტიზაციამდე.
CORS/CSP/Fetch-Metadata: პოლიტიკოსების მიხედვით.
Header-гигиена: `X-Forwarded-For/Proto`, `Forwarded`, `traceparent`; დაცვა header-injection და oversize.
Body/headers limits: ადრეული 413/431 DoS ნიმუშებისთვის.
mTLS პარტნიორობისა და შიდა API- სთვის.

7) დამატებითი სქემები: canary/blue-green/ვერსიები

Weighted routing на level-7 (1%, 5%, 25%, 50%, 100%).
Header-gate: ჩართეთ ფიჩი დროშის/სათაურის გასწვრივ (internal/testing).
Blue-green: მთლიანად DNS/route გადართვა, სწრაფი rollback.
Shadow: ახალი ვერსიის პარალელური პროგონი მეტრული/ლოგოების ჩაწერით.

8) Sticky სესიები და hash მარშრუტიზაცია

Cookie-stickiness (`Set-Cookie: SRV=shard-a; Path=/; Only ') stateful დატვირთვისთვის.
Ring-hash/consistent 'user _ id/tenant _ id' - ქეში შეზღუდული შესაძლებლობის მქონე ჯვრის შემცირება.
გაფრთხილება: თავიდან აიცილოთ „მარადიული“ წებოვანი დატვირთვა hot-spot; გამოიყენეთ კვოტის პირველი ტენანტი.

9) რეგიონალური და გეო მარშრუტიზაცია

Anycast + geo-DNS აირჩიოს უახლოესი POP.
Header-override (მაგალითად, 'X-Region') ტესტებისა და გამართვისთვის.
კოორდინაცია მოახდინეთ საკანონმდებლო საჭირო ლოკალიზაციასთან (რეგიონის/იურისდიქციის მარშრუტი).

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

მეტრიკა RED: RPS, error-rate (კლასებში), latency p95/p99 per-route/cluster.
Outlier/health: edgects/განმეორებითი ჩანართების რაოდენობა, slow-call-rate.
ლოგოები: სტრუქტურირებული, PII- ის გარეშე; კორელაცია 'trace _ id '/' spank _ id'.
ტრეისი (OTel): სპილენძის სპილენძი - router - upstream; exemplars გრაფიკებზე p99.

11) კონფიგურაციის მაგალითები

11. 1 NGINX: host/path/weighted + кэш

nginx map $http_x_canary $canary { default 0; "1" 1; }
upstream app_v1 { least_conn; server 10. 0. 0. 1:8080 max_fails=3 fail_timeout=10s; }
upstream app_v2 { least_conn; server 10. 0. 0. 2:8080; }

server {
listen 443 ssl http2;
server_name api. example. com;

Кэш proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=apicache:256m max_size=10g inactive=10m use_temp_path=off;

location /v1/ {
proxy_set_header X-Forwarded-Proto https;
proxy_set_header X-Request-ID $request_id;
proxy_read_timeout 300ms; proxy_connect_timeout 100ms;

Weighted: 5% on v2 if canary = 1, otherwise 0%
set $backend app_v1;
if ($canary) { set $backend app_v2; }
proxy_pass http://$backend;
}

Static with cache location/assets/{
proxy_cache apicache;
proxy_cache_valid 200 10m;
add_header Cache-Control "public, max-age=600";
proxy_pass http://static_cluster;
}
}

11. 2 Envoy: header-routing, canary, outlier-ejection, mirroring

yaml static_resources:
clusters:
- name: svc_v1 type: STRICT_DNS lb_policy: LEAST_REQUEST outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s max_ejection_percent: 50
- name: svc_v2 type: STRICT_DNS lb_policy: LEAST_REQUEST
- name: mirror_svc type: STRICT_DNS

listeners:
- name: https filter_chains:
- filters:
- name: envoy. filters. network. http_connection_manager typed_config:
route_config:
virtual_hosts:
- name: api domains: ["api. example. com"]
routes:
- match:
prefix: "/v1"
headers:
- name: "X-Region"
exact_match: "eu"
route:
cluster: svc_v1 timeout: 350ms retry_policy:
retry_on: connect-failure,reset,5xx num_retries: 1 per_try_timeout: 200ms request_mirror_policies:
- cluster: mirror_svc runtime_key: mirror. enabled
- match: { prefix: "/v1" }
route:
weighted_clusters:
clusters:
- name: svc_v1 weight: 95
- name: svc_v2 weight: 5

11. 3 Traefik: rules + middleware

yaml http:
routers:
api:
rule: "Host(`api. example. com`) && PathPrefix(`/v1`)"
service: svc middlewares: [hsts, compress]
middlewares:
hsts:
headers:
stsSeconds: 31536000 stsIncludeSubdomains: true compress:
compress: {}
services:
svc:
weighted:
services:
- name: v1 weight: 95
- name: v2 weight: 5

11. 4 Kubernetes: Ingress + მანიფესტი კანისთვის (NGINX Ingress)

yaml apiVersion: networking. k8s. io/v1 kind: Ingress metadata:
name: api annotations:
nginx. ingress. kubernetes. io/canary: "true"
nginx. ingress. kubernetes. io/canary-weight: "5"
spec:
rules:
- host: api. example. com http:
paths:
- path: /v1 pathType: Prefix backend:
service:
name: svc-v1 port: { number: 8080 }

12) ტრანსფორმაციები და თავსებადობა

სათაურების/ტრასების ნორმალიზება, აღწერილობა „ლოკაცია“, მენეჯმენტი 'საკონტროლო'.
GRPC არის HTTP/JSON თარჯიმნების საშუალებით (grpc-json-transcoder).
WebSocket/HTTP2 upgrades: დარწმუნდით, რომ მარიონეტული გამოტოვებს 'Upgrade '/' Connection'.

13) ტესტირება და ქაოსის სცენარები

დატვირთული: ბუჩქები, გრძელი პლატოები, „გრძელი“ სხეულები (slow-POST).
შეფერხებების/ზარალის ინექცია - retries/timeout/outlier შემოწმება.
კანარის მეტრიკა: p95/p99, error-rate ახალი ვერსია ძველი; ავტომატური rollback SLO.
Shadow: პასუხების შედარება (ნიმუშები) და side-by-side-logics.

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

გლობალური რეაგირება, იდემპოტენტურობისა და ვადაგადაცილების გამოკლებით, ორმაგი და ქარიშხალი.
Sticky სესიები „ცხელი“ ხუმრობების კონტროლის გარეშე - დატვირთვა.
Health checks/outlier-ejection- ის არარსებობა არის „დამპალი“ ინსტანციები აუზში.
შეუზღუდავი სათაურები/სხეულები - უმარტივესი DoS.
ტრანსფორმაციებისა და უსაფრთხოების ნაზავი სქემების ვერსიის გარეშე არის მოულოდნელი რეგრესიები.
ერთი გლობალური ქეშის გასაღები 'Vary' - ს გარეშე არასწორი პასუხებია.

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

რეგიონალურობა: მარშრუტიზაცია მოთამაშის/ბრენდის იურისდიქციით; გადახდის ზონების იზოლაცია.
კრიტიკული მარშრუტები (დეპოზიტები/დასკვნები): მოკლე ტაიმაუტები, ერთი გამეორება, იდემპოტენტობა; ცალკეული მტევანი.
PSP/KYC: იზოლირებული upstream აუზები, მკაცრი პოლიტიკოსები retry/timeout, circuit-breaker, geo-pins.
AB არხები: უსაფრთხო ექსპერიმენტები გადახდებით/ლიმიტებით მხოლოდ read ბილიკისთვის; write - დროშებითა და მცირე პროცენტით.

16) მზადყოფნის სიის სია

  • TLS 1. 2+/1. 3, OCSP stapling, HSTS; სწორი 'X-Forwarded-'.
  • მარშრუტიზაციის მკაფიო წესები: host/path/header/cookie; დოკუმენტაცია.
  • ჯანმრთელობის შემოწმებები, outlier ejection, per-try timeout, შეზღუდული ჭრილობები.
  • Weighted/canary + shadow; ავტო-როლბაკი SLO/ალერტებისთვის.
  • კეში/კომპრესია/ETag; body/headers limites; request coalescing.
  • logs/trace 'id'; მეტრიკა RED + outlier/health; დაშბორდები per route/cluster.
  • WAF/bot ფილტრები/CORS; დაცვა oversize და slow-POST.
  • sticky/consistent hashing იქ, სადაც საჭიროა; ცხელი ხარდიების კონტროლი.
  • კონფისკაციები განახლებულია, მიგრაცია უსაფრთხოა, საიდუმლოებები KMS/Vault- ში.

17) TL; DR

გახეხილი TLS პერიმეტრზე და გადააკეთეთ L7- ზე host/path/header/cookie. გამოშვებისთვის - შაბათ-კვირას და shadow; სტაბილურობისთვის - health checks, outlier ejection, შეზღუდული retries per-try timeout- ით. გამოიყენეთ ქეში, შეკუმშვა და შეკუმშვა, სადაც ის აუმჯობესებს p95. გაზომეთ RED სიგნალები და მტევნების მდგომარეობა, შეინარჩუნეთ WAF და ზომების ლიმიტები. კრიტიკული საგადახდო გზებისთვის - ინდივიდუალური მტევანი, მოკლე SLA და მკაცრი რეაგირება/idempotenty.

Contact

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

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

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

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

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

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