Мувозинати сарборӣ ва нокомӣ
Мувозинати сарборӣ ва нокомӣ
1) Ҳадафҳо ва истилоҳот
Мувозинат трафикро дар ҳолатҳо/минтақаҳо/минтақаҳо барои иҷро ва устуворӣ тақсим мекунад.
Нокомӣ - нокомии назоратшаванда.
RTO/RPO - Ҳадафи вақти барқароршавӣ ва талафоти қобили қабул.
SLO: сатҳи мақсадноки мавҷудият/таъхир; ҳамчун "дарвоза" барои feilover худкор ва бозгашт хизмат мекунад.
2) Қабатҳои мувозинат
2. 1 L4 (TCP/UDP)
Тарафдор: иҷро, соддаӣ, гузариши TLS. Омӯз: Фаҳмиши масир/кукиҳо нест.
Мисолҳо: NLB/GLB, HAProxy/Envoy L4, IPVS.
2. 2 L7 (HTTP/GRPC)
Тарафдор: масири роҳ/сарлавҳаҳо, вазни канарӣ, часпанда. Омӯз: дар CPU/ниҳонӣ гаронтар аст.
Мисолҳо: NGINX/HAP .roxy/Envoy/Cloud ALB/API Gateway.
2. 3 Глобалӣ
DNS/GSLB: санҷиши саломатӣ + аксуламали гео/вазн.
Anycast/BGP: як IP дар саросари ҷаҳон, наздиктарин нуқтаи эълон.
CDN/Edge: Кэш/Feilover дар периметри.
3) Алгоритмҳои тақсимот
Мудаввар/вазн - асосӣ.
Пайвастҳои камтарин/таъхир - барои дархостҳои "вазнин".
Хэшинги пайваста - часпиши корбар/иҷорагир бидуни ҷаласаи марказӣ.
Маҳалли ҷойгиршавии ҳаш - барои кэшҳо ва хидматҳои давлатӣ.
4) Ҷаласаҳо ва часпак
Cookie-часпанда: L7 LB кукиеро барои бозгашт ба намуна муқаррар мекунад.
Src-IP часпанда: дар L4, бадтар бо NAT/CGNAT.
Хэшинги пайваста: барои кэш/чатҳои уфуқӣ беҳтар аст.
Мақсад: агар имкон бошад, хидмати бешаҳрвандиро иҷро кунед, вагарна - давлатро (ҷаласаҳо дар Редис/ДБ) барои содда кардани нокомӣ бардоред.
5) Эътимоднокӣ: санҷишҳои тиббӣ ва хориҷ кардан аз ротатсия
Санҷишҳои фаъол: HTTP 200/пробҳои амиқи тиҷорат (масалан, '/healthz/бозхонд 'бо вобастагӣ).
Пассив (муайянкунии берунӣ): ихроҷи ақиб дар 5xx/танаффус.
Гармкунӣ: ҳамворкунии намунаҳои нав (оҳиста-оҳиста).
Резиши зебо - Хориҷ кардан аз ҳавз → интизор шудани дархостҳо.
nginx upstream api {
zone api 64k;
least_conn;
server app-1:8080 max_fails=2 fail_timeout=10s;
server app-2:8080 max_fails=2 fail_timeout=10s;
keepalive 512;
}
proxy_next_upstream error timeout http_502 http_503 http_504;
proxy_next_upstream_tries 2;
Муайянкунии фиристодаи берунӣ (порча):
yaml outlier_detection:
consecutive_5xx: 5 interval: 5s base_ejection_time: 30s max_ejection_percent: 50
6) Идоракунии хатогиҳо: танаффус/такрорӣ/гардиш
Вақтсанҷҳо: аз танаффуси муштариён кӯтоҳтар; муайян кардани ҳар як масир.
Reties: 1-2 бо jitter ва idempotency; манъи бозпас гирифтани POST бидуни калидҳои idempotence.
Қатъи гардиш: маҳдуд кардани дархостҳо/хатогиҳои ҳамзамон; барқароршавии "нимтайёр".
Буҷетҳо: Маҳдудиятҳои бозгашт/якҷояшавии таркишҳо, то худидоракунии DDOS-ро ташкил накунанд.
7) Намунаҳои Кубернетес
Кластер/гиреҳ/порт/борбардор/Ingress - примитивҳои асосӣ.
Омодагӣ/Зиндагӣ: ҳаракати нақлиёт танҳо дар тахтаҳои тайёр.
Pod
HPA/VPA: миқёс аз рӯи ченакҳои CPU/RED, пайванд ба LB.
Хизматрасонии Топология/Топология Маслиҳатҳо: маҳал аз рӯи минтақа.
Навъи хидмат = Боркунӣ (минтақавӣ): ҳадди аққал 2 нусха дар ҳар як AZ.
yaml readinessProbe:
httpGet: { path: /healthz/dependencies, port: 8080 }
periodSeconds: 5 failureThreshold: 2
8) Ҳаракати фаромарзӣ ва байниминтақавӣ
Multi-AZ (дар дохили минтақа): баробар тақсим кунед (LB минтақавӣ), нигаҳдорӣ - нусхаҳои синхронӣ.
Бисёр минтақа:- Фаъол-фаъол: ҳарду минтақа ба ҳаракати нақлиёт хизмат мерасонанд; мураккабтар - ба шумо такрори маълумот, пайдарҳамӣ ва масири ҷуғрофӣ лозим аст.
- Фаъол-пассив: минтақаи асосӣ хизмат мекунад, захира мекунад - "гарм/гарм/хунук. "Осонтар, тезтар гузариш, аммо RPO баландтар.
- Geo-DNS (минтақаи наздиктарин).
- DNS вазн (канарейка/азнавтақсимкунӣ).
- Дар асоси ниҳонӣ (андозагирии РТТ).
- Failover = бо сигналҳои саломатӣ/мавҷудият (зондҳо аз якчанд нуқтаҳои интиқол).
9) Маълумот ва нокомӣ
Кэш/ҳолат: агар имкон бошад - минтақавӣ маҳаллӣ; барои фаъол-фаъол - CRDT/hashes пайваста.
DB:- Такрори синхронӣ = RPO паст, ниҳонии баландтар.
- Асинхронӣ = таъхири поёнӣ, аммо RPO> 0.
- Навбатҳо: мавзӯъҳои оинаӣ/бисёрҷанба; deduplication ҳодиса.
- Тарҳрезии idempotency амалиёт ва механикаи такрорӣ.
10) Периметр: DNS/Anycast/BGP/CDN
DNS: TTL кӯтоҳ (30-60s) + санҷиши саломатӣ аз шабакаи шумо.
Anycast: якчанд POP бо як IP - наздиктарин трафик мегирад, feilover дар сатҳи масир аст.
CDN/Edge: кэш ва "дарвоза" барои муҳофизат, статикӣ/ВАО ҳангоми афтидани пайдоиш хидмат мерасонанд; пайдоиш-сипар + per-POP саломатӣ.
11) Конфигуратсияҳои намуна
HAP-roxy L7:haproxy defaults timeout connect 2s timeout client 15s timeout server 15s retries 2 option redispatch
backend api balance leastconn option httpchk GET /healthz/dependencies http-check expect status 200 server app1 app-1:8080 check inter 5s fall 2 rise 2 slowstart 3000 server app2 app-2:8080 check inter 5s fall 2 rise 2 slowstart 3000
NGINX часпак po cookie:
nginx upstream api {
hash $cookie_session_id consistent;
server app-1:8080;
server app-2:8080;
}
Фиристодаи такрорӣ/танаффус (масир):
yaml route:
timeout: 2s retry_policy:
retry_on: 5xx,connect-failure,reset num_retries: 1 per_try_timeout: 500ms
12) Нокомии худкор: сигналҳо ва дарвозаҳо
Tech-SLI: 5xx-rate, p95/p99, пуррагӣ, дастони TLS, барқароркунии TCP.
Бизнес SLI: муваффақияти пасандозҳо/пардохтҳо, хатогиҳои пардохт дар PSP.
Дарвозаҳо: агар ҳадди ниҳоӣ зиёд бошад, минтақа/мисолро хомӯш кунед, вазни ҳавзи устуворро баланд кунед, GSLB-ро иваз кунед.
Китоби корӣ: дастури қадам ба қадам.
13) Санҷишҳо ва санҷишҳо (бетартибӣ ва рӯзҳои бозӣ)
Санҷишҳои бесарусомонӣ: хомӯш кардани AZ/минтақаҳо, таназзули DB/кэш, моделиронии талафоти пакет.
Рӯзи бозӣ: Омӯзиши Файловер, ки дорои гурӯҳҳои зангзанӣ мебошад.
Ташхис: пайгирӣ аз периметр ба ақиб, мувофиқати эзоҳҳо ва ченакҳо.
14) Бехатарӣ ва риояи
mTLS байни LB↔servisy, WAF/Меъёри периметри.
Минтақаҳои нокомӣ/сегментатсия: ҷудокунии таркиш-радиус.
Сиёсатҳо: манъи нуқтаи ягонаи нокомӣ (SPOF), талабот ба "нусхаҳои ҳадди ақали N/AZ".
15) Анти-намунаҳо
Як LB/як минтақа барои ҳама трафик (SPOF).
Санҷиши амиқи '/healthz 'нест (сабз - аммо DB/навбат дастрас нест).
Бозгашт бидуни idempotency → транзаксияҳои дукарата/пардохтҳо.
Як IP часпанда бо номутавозунии оммавии NAT →.
Feilover DNS бо TTL баланд (соат пеш аз гузариш).
Ҳангоми тамом шудани об резиши зебо нест - дархости танаффус.
16) Рӯйхати санҷиши амалисозӣ (0-45 рӯз)
0-10 рӯз
Интишори намунаҳо ба AZ ≥ 2; имкон медиҳад, ки омодагӣ/зинда будан, санҷиши саломатӣ.
Танзимоти L7-timeouts/retries (1 кӯшиш), муайянкунии берунӣ.
Фаъол кардани дренажи зебо ва оғози суст.
11-25 рӯз
Ворид кардани GSLB (geo/вазншуда) ё Anycast барои периметр.
Вазнҳои канарӣ/сиёсати масир; часпак тавассути куки/ҳаши пайваста.
Дарвозаҳои SLO барои худкори feilover (p95/5xx + business SLI).
26-45 рӯз
DR минтақавӣ: Фаъол-фаъол ё фаъол-пассив бо санҷиши тарҷума.
Рӯзҳои бетартибӣ бо AZ/минтақаҳо истироҳат мекунанд, хабар медиҳад RTO/RPO.
Дафтарчаи худкори 'ва (скриптҳои таваққуф/shift/rollback).
17) Нишондиҳандаҳои камолот
Фарогирии Multi-AZ ≥ 99% роҳҳои муҳим.
DNS/GSLB/Anycast барои нуқтаҳои ниҳоӣ амалӣ карда мешаванд.
MTTR вақте ки як AZ меафтад <5 дақиқа (p95).
RPO барои маълумоти муҳим ≤ ҳадаф (масалан, ≤ 30 сония).
Рӯзҳои семоҳаи бозӣ ва бомуваффақият ба нақша гирифташуда.
18) Хулоса
Мувозинати боэътимод ва нокомӣ як меъмории қабатист: L7-policies маҳаллӣ (вақт/retries/CB, санҷиши саломатӣ), часпидан ва хэш дуруст, устувории минтақаи фаромарзӣ ва периметр - GSLB/DNS/Anycast. Илова кардани дарвозаҳои SLO, idempotency, дренажи зебо ва озмоишҳои бетартибиҳои мунтазам - ва ҳама гуна аз даст додани гиреҳ, минтақа ё ҳатто минтақа як чорабинии идорашаванда бо RTO/RPO пешгӯишаванда хоҳад буд.