Revers-internationalization
1) Revers-2019 դերը
Revers-2019-ը պլատֆորմի «առջևի գիծ» է, ընդունում է TTS-ը, բաժանում է դեղամիջոցները ապստրիմների միջև, օգտագործում անվտանգության և արտադրողականության քաղաքականությունները։ Նպատակը նվազագույն լատենտալությունն է, կանխատեսելի միկրոօրգանիզմն ու արագ մեկուսացումը դիֆերենցիալ instans/գոտիների։
2) Շերտեր և արձանագրություններ
L4: TCP/UDP proxy (SNI-based TLS passthrough, QUIC). Ցածր գինը, առանց HTTP-ի հասկանալու։
L7: HTTP/1. 1–2–3, gRPC, WebSocket. Հարուստ միկրոօրգանիզացիա (host, path, headers, cookies), փոխակերպման և քեշի։
TMS մոդելը 'terminate (NGINX/Envoy), ներսում mTSA/mesh։ MSI-ն թույլ է տալիս վիրտուալ հանրակացարաններ մեկ IP-ում։
3) Ուղղորդման ռազմավարությունը (L7)
1. Host-based: ալյումինի ("api. brand. com '07 կլաստեր «brand api»)։
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. Weighted/Canary: International տոկոսը նոր տարբերակով (1-5 տոկոսը 100%)։
6. Geo/ASN 'երկրում/ASN ուղարկում ենք մոտակա ROR/տարածք։
7. Consistent hashing: ստեղնը (user _ id/tenium _ id) դեպի instansu kash-lokalitet/likalitet։
8. Shadow/Mirroring: Մենք պատճենում ենք «ստվերային» apstrim-ը առանց պատասխանելու (ռելեային թեստերի համար)։
4) Հավասարակշռություն և հաստատակամություն
Ալգորիթմներ ՝ round-robin, least-request, random, ring-hash (consistent)։
Health-winks: ակտիվ (HTTP/TCP) + պասիվ (կոդերով/թայմաուտներով)։
Medier ej.ru: Ժամանակավորապես «նետել» կոմպոզիցիան բարձր սխալությամբ/լատենտով։
Retries: սահմանափակ, per-try timeout-ի և ջիթերի հետ։ չվնասել անապահով մեթոդները առանց կուռքի։
Connational pooling: պահել warm-puls դեպի apstriams, սահմանափակել առավելությունները։
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/բոտ ֆիլտրեր 'մինչև ապպի ուղղությունը։
MSS/CSP/Fetch-Metadata: քաղաքական գործիչների համաձայն։
Header-гигиена: `X-Forwarded-For/Proto`, `Forwarded`, `traceparent`; պաշտպանություն header-inject-ից և oversize-ից։
Body/headers limits: վաղ 413/431 DoS-պաթոգենների համար։
MTSA-ը ինտեգրման և ներքին API-ի համար։
7) Deploy: canary/blue-green/տարբերակները
Weighted routing на level-7 (1%, 5%, 25%, 50%, 100%).
Header-gate: ներառել դրոշի ֆիչին/վերնագիր (wwww.al/testing)։
Blue-green 'ամբողջ RNA/rope, արագ rollback։
Shadow 'նոր տարբերակի զուգահեռ պրոթոնը, որը ձայնագրում է մետրիկ/լոգոն։
8) Sticky-նստաշրջանները և hash-միկրոօրգանիզացիան
Cookie-stickiness (`Set-Cookie: SRV=shard-a; Path=/; DirectOnly ') ստատեֆուլ բեռի համար։
Ring-hash/consistent-ով 'user _ id/tenium _ id "- քեշի խաչաձև հաշմանդամության նվազումը։
Նախազգուշացումը 'խուսափել «հավերժական» լիպոտից write-berry wwww.hot-spot-ի համար։ օգտագործեք քվոտայի ֆիքսված ստենանտը։
9) Արբիտրաժային և գեո-միկրոակտիվացում
Anycase + geo-IV-ը մոտակա POP-ի ընտրության համար։
Header-override (օրինակ ՝ «X-Region») թեստերի և կարգաբերման համար։
Համաձայնվել տվյալների կանոնավոր տեղայնացման հետ (rope/իրավասություն)։
10) Դիտողությունն ու վերահսկողությունը
RED: RPS, error-rate (դասարաններում), latency p95/p99 per-rope/cluster։
Delier/health: ejects/կրկնվող միացությունների քանակը, slow-call-rate։
Լոգները 'կառուցվածքային, առանց PII; Կորլացիա 'trace _ id _ id '/« բանաձև _ id »։
Թրեյսինգը (OTel) 'ingress prouter supstream։ 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 + մանիֆեստ canary (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) Փոխակերպումներ և համատեղելիություն
Վերնագրերի/հետքերի նորմալացումը, «Cache-Systel» -ը, «Cache-Systel» -ի կառավարումը։
GRPC-ը HTTP/JSON-ն է հեռարձակողների միջոցով (grpc-json-transcoder)։
Windows Socket/HTTP2 upgrades: Համոզվեք, որ թիմը բաց է թողնում «Upgrade »/« Connect»։
13) Փորձարկումներ և քաոս սցենարներ
Բեռները 'փոթորիկներ, երկար սարահարթ, «երկար» մարմիններ (slow-POST)։
Ուշացումների/դեղորայքների միգրացիան կատարվում է retries/timeout/medier ստուգմամբ։
Canary-metriks: p95/p99, error-rate նոր տարբերակը vs հին; ավտոմատ rollback SLO-ով։
Shadow: Պատասխանների համեմատություն (սեմպիլացիա) և side-by-side տրամաբանություն։
14) Անտիպատերնի
Համաշխարհային retray առանց հաշվի առնելու idempotenty և dedeline windows-ը։
Sticky-նստաշրջանները առանց «տաք» շարդների վերահսկման, բացատրում են բեռի խաչմերուկը։
Health-winks/www.ier-ej.ru-ի բացակայությունը փամփուշտի մեջ «փխրուն» instans է։
Անսահմանափակ վերնագրերը/մարմինները ամենապարզ DoS-ն են։
Փոխակերպումների և անվտանգության խառնուրդը առանց սխեմաների տարբերակի անսպասելի ռեգրեսիա է։
Միակ գլոբալ քեշի բանալին առանց «Vary» -ը սխալ պատասխաններ է տալիս։
15) iGaming/ֆինանսական առանձնահատկությունները
Ինտենսիվությունը 'խաղացողի/բրենդի իրավասության միկրոակտիվացում; տարածքների մեկուսացում։
Քննադատական երթուղիներ (դեպոզիտներ/եզրակացություններ) 'կարճ թայմաուտներ, մեկ խոհարար, գաղափարախոսություն։ առանձին կոմպոզիցիաներ։
PMS/KYC: առանձնացված upstream-pula, խիստ քաղաքականություններ retry/timeout, circuit-breaker, geo-pins։
AB ալիքները 'անվտանգ փորձարկումներ վճարումների/սահմանափակումների հետ միայն read-ի համար։ write - դրոշների և փոքր տոկոսների միջոցով։
16) Չեկ-թուղթ պատրաստակամության համար
- TLS 1. 2+/1. 3, OCSP stapling, HSTS; ճիշտ 'X-Forwarded- "։
- Ուղղման հստակ կանոնները ՝ host/path/header/cookie; Եվգենի։
- Health-winks, www.ier-ej.ru, per-try timeout, սահմանափակված գետեր։
- Weighted/canary + shadow; Avto-rollback SLO/alertam։
- Քաշ/ագրեսիա/ETag; լիմիտներ body/headers; request coalescing.
- Logs/treiss 'trace _ id'; RED + medier/health մետրերը; dashbords per-rome/cluster.
- WAF/բոտ ֆիլտրեր/MSS; պաշտպանություն oversize և slow-POST-ից։
- Sticky/consistent hashing այնտեղ, որտեղ անհրաժեշտ է. hot-shards վերահսկողությունը։
- Դելիգները տարբերակվում են, անվտանգ, գաղտնիքները KFC/Vance-ում։
17) TL; DR
TRC-ը պարագծի վրա և ուղղեք L7-ով host/path/header/cookie-ով։ Առյուծների համար 'weighted canary և shadow; կայունության համար 'health-winks, www.ier-ej.ru, սահմանափակ retries per-try timeout։ Օգտագործեք քեշը, ագրեսիան և consistent hashing-ը, որտեղ դա բարելավում է p95-ը։ Չափեք RED ազդանշանները և կլաստերների վիճակը, պահպանեք WAF-ը և չափի սահմանաչափերը։ Քննադատական արբիտրաժային ճանապարհների համար կան առանձին կոմպոզիցիաներ, կարճ SLA և ռետրերի խիստ կառավարում/idempotenty։