Мувозинати сарборӣ
1) Чаро ва дар куҷо он дар меъморӣ
Тавозун як "турник" байни муштарӣ ва парки пушти сар аст. Ҳадафҳои он инҳоянд:- мавҷудият (бидуни як нуқтаи нокомӣ), ниҳонӣ (p95 поён), миқёс (уфуқӣ), амният (TLS/WAF), идоракунии озодкунӣ (канарӣ/кабуд-сабз).
- Edge/Global: Anycast, GSLB/Geo
- L4 (TCP/UDP): NLB, маглев, прокси бе қатъкунӣ.
- L7 (HTTP/2, GRPC, WebSocket, QUIC): масири масир/сарлавҳаҳо/штампҳо, кэш/фишурдасозӣ/бозсозӣ.
- Маълумот-сатҳ: DB-proksi (Тақсимоти Kafka.
2) Моделҳо ва алгоритмҳои мувозинат
Мудаввар-Робин (RR): либоси оддӣ.
Пайвастҳои камтарин (LC): Хуб барои пайвастҳои дароз (WS, GRPC).
Дархости камтарин/Қувваи барқ (P2C): Муқоисаи ду тасодуфӣ тавозуни хуби суръат/сифат аст.
Вазни RR/LC: вазнҳо барои гиреҳҳои канарӣ/гарм.
Хэшинги пайваста (CH): часпидани сессия бидуни миз (ароба, Редис).
Maglev/Flow-hash: тақсимоти зуд L3/L4 бо муқовимати печида.
Огоҳии дермонӣ: Интихоб бо sliding p50/p95.
EWMA: Таърихи таъхирро ба назар мегирад.
Тавсия: бо нобаёнӣ (дархости камтарин) дар L7; барои давлатӣ/кэшҳо - хэш пайваста; dlya WS/gRPC - пайвастҳои камтарин.
3) Саломатии болооб: санҷишҳо ва "кӯчдиҳӣ"
Санҷишҳо дар соҳаи тандурустӣ: TCP, HTTP 200/匹配 tela, ҳолати GRPC; фосилаҳо/вақтҳо/ҳадди хато.
Ejection Outlier: истисно ба таври автоматикӣ аз ҳолатҳои "ғавғо" (пайдарпай-5xx, муваффақият-сатҳи-ejection).
Оҳиста-оҳиста оғоз ва гармӣ: воридшавии мулоими ҳолатҳои нав (афзоиши тадриҷии вазн).
Дренажи пайвастшавӣ: ҳангоми хомӯш кардан/барқарор кардан - "пур кардани" пайвастҳои фаъол бе қатъ.
4) Ҷаласаҳо ва часпидан (часпидан)
Куки-часпак (L7): 'Set-Cookie: lb = <id>; Ҳамон сайт; Бехатар '.
CH аз рӯи калид: 'hash (user
IP-hash - танҳо дар шабакаҳои пӯшида (танаффуси NAT).
TTL часпидан + паст шудан дар кӯчонидани nodal.
Муҳим: кам кардани эҳтиёҷот ба часпидан → нигоҳ доштани давлат берун аз ин ҳолат (Redis/DB/JWT).
5) Тавозуни глобалӣ (GTM/GSLB)
Anycast + санҷиши саломатӣ: як IP, трафик ба наздиктарин ТҶ; feilover худкор.
GeodNS/Latency-DNS: Ҷавоби Geo/Latency.
Кластерҳои минтақавӣ: "маълумоти резидентӣ" дар минтақа боқӣ мемонанд (GDPR); нокомии байниминтақавӣ бо такрорӣ.
Сиёсатмадорон: гео-блокҳо, "stickeregion" аз рӯи ҳисоб/токен.
6) Протоколҳо ва хусусиятҳо
HTTP/2: мултиплекс, афзалиятҳо; ба ҳавзи пайвасти салоҳиятдор барои болооб ниёз дорад.
GRPC: ҷараёнҳои дарозумр → пайвастҳои камтарин, санҷиши хашмгинонаи саломатӣ.
Web-Socket/SSE: часпидан дар пайвастшавӣ, танаффуси азими бекорӣ, нигоҳдории TCP.
QUIC/HTTP/3: оғози зуд, муқовимат ба талафот; монитор MTU/patch-MTU.
TLS-қатъкунӣ/mTLS: қатъ кардани edge/L7-LB; MTLS/шахсияти шифоҳӣ (SPIFFE).
7) Назорати изофабор
Меъёри маҳдудият: барои як IP, барои як калид, барои як масир; burst + устуворӣ.
Мувофиқати мутобиқшавӣ (фиристанда) - маҳдудияти динамикии дархостҳои ҳамзамон.
Queue/Surge-buffer: андозаи маҳдуди навбат бо радди одилона 503.
Хеджинг/Мусобиқаҳои параллелӣ: такрори дархостҳои суст (танҳо idempotent).
Буҷаи вақт: пайвасти алоҳида/хондан/навиштан.
Backpressure: '503 + Retry-After', бозгашти экспоненсиалии муштарӣ.
Муҳофизати оҳиста-лорис: танаффуси хондан/навиштан, суръати ҳадди аққал.
8) Релизҳо ва идоракунии трафик
Канарӣ (вазн): 1-5-10-25-50-100% с посбон (с95, 5xx, танаффус).
Кабуд-Сабз: калиди фаврӣ, гардиш - DNS/LB.
Соя/Зеркало: нусхаи дархостҳо бидуни таъсир ба посух; Ниқоби PII.
Сарлавҳа/Масири даъво: 'X-Canary: 1' ili 'JWT. даъво мекунад. минтақа/нақш '.
9) Автоскализатсия ва дренаж
HPA/ASG po CPU + RPS + p95 + чуқурии навбат.
Қалмоқе пеш аз Stop: Интизор шавед, ки пайвастшавӣ ба анҷом расад.
Ҳавзи гарм/истифодаи дубора: кӯтоҳ кардани сармо оғоз меёбад.
Банақшагирии иқтидор: 'истифодаи мақсадноки 60-70%' дар p95 муқаррарӣ аст.
10) Мушоҳида ва SLO
Нишондиҳандаҳои LB: RPS, p50/p95/p99, 4xx/5xx, пайвастҳои кушод, навбат-лен, ихроҷ, такрорӣ, кэш-таносуби хит.
Пайгирӣ: 'traceparent/x-request-id' тавассути LB → хидматҳо → пойгоҳи додаҳо.
Гузоришҳо: ниқобҳои сохторӣ, PII/PAN, таносуб бо болооб.
Масири SLO: масалан, 'таъхири p95 ≤ 300 ms', 'дастрасӣ ≥ 99. 9% ',' 5xx ≤ 0. 5%`.
Огоҳиҳо: бо роҳи инҳироф (суръати сӯхтан SLO, суръати ихроҷ, афзоиши 5xx/вақт).
11) Мувозинати маълумот ва кэшҳо
Postgre- SQL/My-SQL:- Тақсимотро хонед/нависед (Proxy/SQL/pgpool) + хондан-нусхабардорӣ; часпанда-txn.
- Нокомӣ: нусхаи синхронӣ барои RPO = 0 (гаронтар).
- Redis Cluster + hash-слот; барои ҷаласаҳо - CH; Вақтсанҷҳо/Хатогиҳои барқароршаванда.
- Тавозун тавассути тақсимот ва гурӯҳҳои истеъмолкунандагон; бо HTTP-LB ошуфта нашавед.
- Нигаҳдории объект (S3/Min-IO): нокомии бисёр минтақа через GSLB/нусхабардорӣ.
12) K8s ва абрҳои LB
Хизматрасонӣ (Cluster
Ingress/Gateway API - масири L7, вазнҳои канарӣ, TLS.
AWS: NLB (L4, фарохмаҷрои баланд), ALB (L7, WAF, часпанда, масири сарлавҳа).
GCP: Global LB (L7/HTTP (S) s Anycast), TCP/UDP прокси LB.
Azure: Дари пеши (глобалӣ), Gateway Application (L7), Balancer Load (L4).
13) Намунаҳои конфигуратсия
13. 1 NGINX (L7, least_conn, часпанда, канарӣ)
nginx upstream api_pool {
least_conn;
server api-1:8080 max_fails=3 fail_timeout=10s;
server api-2:8080 max_fails=3 fail_timeout=10s;
sticky cookie lb_id expires=30m path=/ secure httponly;
}
map $http_x_canary $dst {
default api_pool;
1 canary_pool;
}
upstream canary_pool {
least_conn;
server api-canary:8080 weight=1;
}
server {
listen 443 ssl http2;
location /api/ {
proxy_read_timeout 5s;
proxy_connect_timeout 1s;
proxy_set_header X-Request-Id $request_id;
proxy_pass http://$dst;
}
}
13. 2 ГАП рокси (P2C, саломатӣ, сустшавӣ, мизи часпанда)
haproxy backend api balance leastconn option httpchk GET /health default-server inter 3s fall 3 rise 2 slowstart 10s server s1 10. 0. 0. 11:8080 check server s2 10. 0. 0. 12:8080 check stick-table type ip size 100k expire 30m http-request track-sc0 src rate limit per IP http-request deny deny_status 429 if { sc_http_req_rate(0) gt 50 }
13. 3 Фиристанда (P2C, берунӣ, такрорӣ, мувофиқати мутобиқшавӣ)
yaml load_assignment: {... }
lb_policy: LEAST_REQUEST least_request_lb_config: { choice_count: 2 }
outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s typed_extension_protocol_options:
envoy. extensions. filters. http. adaptive_concurrency. v3. AdaptiveConcurrency:
gradient_controller_config:
sample_aggregate_percentile: PERCENTILE_50 retry_policy:
retry_on: "5xx,reset,connect-failure"
num_retries: 2 per_try_timeout: 1s
13. 4 Кубернетес (дарвозаи API, канари вазн)
yaml apiVersion: gateway. networking. k8s. io/v1 kind: HTTPRoute spec:
rules:
- matches: [{ path: { type: PathPrefix, value: /api }}]
backendRefs:
- name: api-v1 weight: 90 port: 8080
- name: api-v2-canary weight: 10 port: 8080
14) Рӯйхати санҷишҳо
Пеш аз барориши LB/масир
- Алгоритми интихобшуда (P2C/LC/CH) барои навъи трафик.
- Санҷишҳо ва ҳудудҳои ихроҷ танзим карда мешаванд.
- Оҳиста-оҳиста, гармӣ, пайвастшавӣ-дренаж фаъол аст.
- TLS/MTLS, HSTS, рамзҳои бехатар; HTTP/2/3 агар лозим бошад.
- Часпанда/CH танҳо дар ҳолати зарурӣ; TTL и паст.
- Меъёри маҳдудият/таркиш, танаффус, такрори буҷет, мувофиқати мутобиқшавӣ.
- Журналҳо/роҳҳо: 'пайгирӣ-ид' партофта мешавад; Ниқоби PII.
- SLO/огоҳиҳо бо p95/5xx/elections/queue-len.
- Вазнҳои канарӣ + нақшаи бозгашт; соя бо тағироти калон.
Барои хатсайрҳои пардохт/мувофиқат
- Idempotency-Калид.
- Нокомӣ дар байни PSP; чекҳои якхела.
- Рамзҳои хато муқаррар карда мешаванд; ETA/сабабҳо барои як муштарӣ.
Барои DB/Caches
- RW-тақсим/нусхабардорӣ; танаффус, такрори шабака.
- CH/slot-hash барои Редис; муҳофизат аз "калидҳои гарм".
- Мониторинг ва такрори ақибмонӣ.
15) Нишондиҳандаҳои сифат (ҳадди аққал)
Latency p50/p95/p99 бо маршрут/усул.
Суръати хатогӣ 4xx/5xx, вақт/вақти зиёд.
Пайвастҳои кушода/фаъол, умқи навбат, ҳисобкунии такрорӣ.
Хуруҷҳо ва сабабҳои берунӣ.
Таносуби хит/таносуби хит кэш.
GSLB: тақсимоти минтақавӣ, faylovers, мавҷудияти PO.
16) Анти-намунаҳо
Як LB монолитии муҳофизатнашуда.
Ҷаласаҳои часпанда "барои ҳама чиз", ба ҷои баровардани давлат.
Навбатҳои ҷаҳонии беохир (мушкилотро пинҳон кунед, p99 афзоиш диҳед).
Retrai бе jitter/буҷа як "тӯфони" дархостҳост.
Trust 'X-Forwarded-For' without рӯйхати шахсони боэътимод.
Набудани резиши об дар вақти фарсудашавии → WS/GRPC.
Ҳангоми autoscale ба назар нагирифтани пайвастҳои дарозмуддат.
17) Хусусияти IGaming
Қуллаҳо ва мусобиқаҳо: микро-кэш дар феҳристҳо/рӯйхатҳо (1-5 с), дар навбати худ худкор.
Бозиҳои зинда/ҷараёнҳо: LC барои пайвастҳои дароз, афзалияти наздиктарин POP.
Пардохтҳо: масири гео/асъор/маблағ/провайдер; танаффуси қатъӣ ва беақлӣ.
Бозии масъулиятнок ва мутобиқат: афзалият барои гузарондани дархостҳо барои маҳдудиятҳо/қулфҳо ҳатто бо таназзул (бо сиёсат ноком-кушода/пӯшида).
18) Раванди татбиқ (4 спринт)
1. Харитаи ҳаракат: протоколҳо, борҳои p95/p99, хатсайрҳои муҳим.
2. Конфигуратсияи LB: алгоритмҳо, саломатӣ/берунӣ, TLS, маҳдудиятҳо/вақтҳо, мушоҳида.
3. GSLB/Edge: Anycast/Geo
4. Стратегияи озодкунӣ: канарӣ/соя, огоҳиҳои SLO, autoscale + дренаж, таҳлили пас аз ҳодиса.
Варақаи ниҳоии фиреб
Алгоритми навъи трафик (P2C/LC/CH) ва давомнокии пайвастшавиро интихоб кунед.
"Солим" -и болооби худро нигоҳ доред: санҷишҳои тиббӣ + outlier + оҳиста-оҳиста + дренаж.
Идоракунии сарбории баландтарин: меъёри маҳдудият, мувофиқати мутобиқшавӣ, навбатҳо бо нокомӣ.
GSLB/Anycast-ро барои мавҷудияти ҷаҳонӣ ва мувофиқат аз рӯи минтақа истифода баред.
Мушоҳида ва SLO ҳатмӣ мебошанд; релизҳо - тавассути канария/соя бо нақшаи бозгашт.
То ҳадди имкон, сессияро аз ҳолатҳо ва часпидан аз LB хориҷ кунед.