Amallar we Dolandyryş → Operasiýa infrastrukturasyny giňeltmek
Operasiýa infrastrukturasyny giňeltmek
1) Näme üçin we näme üçin "masştab" hasaplamaly?
Ulalmak, SLO-ny ýitirmezden we gözegçilik edilýän çykdajy bilen platformanyň kuwwatyny (RPS/TPS, konnektler, IOPS, throughput) we maglumatlaryň göwrümini artdyrmak üçin ulgamlaýyn ukybydyr. iGaming/fintech üçin bu gönüden-göni pul hakda: goýumlaryň/stawkalaryň öwrülişigi, live-oýunlar we hasaplaşyklar.
Maksatlar:- X gezek ýük ýokarlananda we möwsümleýin iň ýokary derejelerde SLO saklamak.
- Çak edilýän ölçeg wagtyny üpjün et (minutes, not hours).
- Ykdysadyýeti tygşytlamak: cost/RPS, cost/geleşik, cost/1k wakalar.
2) Giňeldilýän platformanyň ýörelgeleri
1. Gorizontal-ilki bilen: ownuk, stateless-hyzmatlara bölünmek; döwlet - maglumat toplularynda.
2. Back-pressure we nobatlar: partlamalary tekizlemek, "tupandan" goramak.
3. Ähli gatlaklarda kesmek: client/edge/service/DB.
4. Idempotentlik we gaýtalanma: howpsuz retralar, outbox, dedup.
5. Çäklendirmeler bilen garaşlylyk: wagt, breýkerler, bulkhead-izolýasiýa, rate-limits.
6. Kuwwat signallary boýunça syn edilişi: headroom, p95/p99, lag, konnektler, kwotalar.
7. HPA/VPA/Cluster Autoscaler + stop şertleri.
8. Multi-region by design: garaşsyz blast-zonalar, lokal maglumatlar, durnukly feýler.
3) Capacity planning: "näçeräk gerek"
Modeliň girelgeleri: maksatly iň ýokary TPS, traffigiň profili (sagatlyk), "kritiki ýollar", keş-hitleriň koeffisiýentleri, ortaça payloadlar, SLO we üpjün edijileriň çäkleri.
Çalt çaklamalar (rule-of-thumb):- RPS → CPU/pod: 'pod = RPS p99_time/täsirli _ CPU _ pod' (30-50% ätiýaçlyk bilen).
- Nobatlar: 'iň pes _ tizlik _ konsumerler ≥ iň ýokary _ tizlik _ prodýuserler 1. 2`.
- DB-baglanyşyklar: 'max _ conns = active _ polar _ services orta _ pool _ size 1. 3`.
- Nagt pul: ölçegi = "N minutda gyzgyn working-set" + 20-30% ätiýaçlyk.
- Egress/CDN: iň ýokary egress = iň ýokary soraglar orta jogap ölçegi (gysyşy göz öňünde tutuň).
Headroom: Maksat 20-40% iň ýokary (gatlaklara görä). Aşakda 15% → "capacity uplift" tetigi.
4) Ölçegleriň gatlaklary we nagyşlary
4. 1 Edge / CDN / WAF
Gyrada kesmek (TTL + SWR), geo-balans, gysyş, HTTP/2/3.
IP/JWT/açar boýunça perimetrde rate-limits, partlamalardan goramak.
Brokerler/pub/sub kanallary arkaly wakalaryň janköýerligi (jekpotlar, live-duýduryşlar).
4. 2 API şlýuzy/Backend-for-Frontend
Statles-pod boýunça gorizontal masştablamak, downstrimlere howuzlar dedicated.
HPA iş metrleri boýunça: RPS, p99, work-howuzda nobat - diňe bir CPU däl.
4. 3 Asinkron nobatlar/akym (Kafka/Rabbit/Pulsar)
Partiýa we konsumerler boýunça masştab; skew (açarlar we paýlanmalar) -dan gaça duruň.
Lag-alertler + konsumerleriň awto-masştablary; DLQ we retry-topikler.
SLA rekonsilýasiýa we repleýiň aşagyndaky retention.
4. 4 Nagt pullar (Redis/Memcached)
Klaster reimesimleri, göçürmeler, ewiction-syýasatlar (LFU), multiget, pipeline.
Hot-key 'i we fon meselelerini bölmek, müşderileriň çäkleri we max-memory policy.
4. 5 Maglumat bazalary
Okamak we okamak üçin marşrut, connection pooling.
Sebit/tenant/açar diapazony boýunça şardlamak.
CQRS: ýazgylar - master/leader, okamak - replika.
Indekslemek we betch ýazmak işleri (outbox → stream → sink).
Arhiw we gyzgyn/sowuk maglumatlar (tiering).
4. 6 Faýl/obýekt ammarlary
Köp akym, multipart-ýüklemek, CDN-front, asinhron üýtgemeleri.
Üpjün edijiniň kwotalary, "guýruklary" arassalamak we egress býudjeti.
4. 7 Üpjün edijiler (PSP/KYC/studiýalar)
Kwotalar/SLO/bahasy boýunça köp satyjy we marşrut.
Her bir üpjün ediji üçin circuit breaker + rate-limit, retraýlaryň nobaty, "grace-rechimes".
5) Awto-masştab we gard-relsler
Kubernetes:- HPA: метрики `rps_per_pod`, `queue_depth`, `p99_latency`; `targetAverageValue`.
- VPA: çeşmeler boýunça teklipler; iň ýokary derejeden daşarda täzelemek.
- Cluster Autoscaler: nod-topar profilleri (spot + on-demand).
- PodDisruptionBudget/TopologySpreadConstraints: zonalar boýunça birmeňzeşlik.
- LimitRange/ResourceQuota: "serhoş" deplolardan goramak.
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler spec:
scaleTargetRef: {apiVersion: apps/v1, kind: Deployment, name: api-gw}
minReplicas: 8 maxReplicas: 200 metrics:
- type: Pods pods:
metric:
name: rps_per_pod target:
type: AverageValue averageValue: "120"
- type: Pods pods:
metric:
name: p99_latency_ms target:
type: AverageValue averageValue: "280"
behavior:
scaleUp:
stabilizationWindowSeconds: 90 scaleDown:
stabilizationWindowSeconds: 300
Guardrails (mysallar):
- "Pause & Rollback", eger kanareýkada p99> 1. 3 × baseline 10 minut.
- "Freeze scale-down" prime-time, diňe scale-up.
- "Stop retries" -de 'open _ circuit = 1' dar ýerlere.
6) Multi-region: aktiw/aktiw we aktiw/passiw
Blast-izolirlenen sebitler: garaşsyz toparlar, ýerli syrlar/kwotalar.
Global routing: latency-/geo-based, health-probes, el override.
- Gyzgyn - ýerli + eventual replikasiýa (akym).
- Kritiki amallar - domen boýunça ylalaşylan (ledger/balanslar).
- "Failover" pleýbuklary: çeşmäniň ädimme-ädim üýtgemegi, TTL, kesşiň gyzmagy.
- Maşk düzgünleri (DR): RTO/RPO maksatlary bilen çärýekleýin maşklar.
7) Tor we hyzmat patternleri
Service Mesh: mTLS, retry/breaker, outlier detection, per-downstrim limitleri.
eBPF/Observability L4/L7, baglanyşyk çäkleri, head-of-line gorag.
S2S üçin içerki API şlýuzlary, umumy rate-limit we audit.
VPC/blast-zonalar boýunça kiçi torlar, NAT/Egress gözegçiligi, wendorlar bilen peering.
8) Öndürijilik: synaglar we subutnamalar
Esasy wagt profiline ýükle & stress + worst-case.
Soak (uzyn) - ýat/deskriptorlaryň syzmagy, latency ösüşi.
Chaos/game-days: brokeriň/üpjün edijiniň/zonanyň ýykylmagy, "haýal üpjün ediji".
CI-de perf regressiýalar: salgylanma ssenarileriniň we awtomatiki girtleriň toplumy.
9) Maglumatlar we ammar: ösüş strategiýalary
"Potoloka" çenli dik ösüş → gorizontal/şarding.
Okamak → replikalar/kesmek; → batchi/asinhron/magazineurnal.
Shemalaryň göçmegi: expand → migrate → contract, global bloksyz.
Arhiw: sowuk bölekler arzan ammarda + on-demand re-gidrasiýa.
Gözleg: aýratyn indeksler (OpenSearch/Solr).
10) Üpjün edijileri we kwotalary dolandyrmak
Kwota kartoçkasy (TPS, penjireler, bahasy); alerty 'usage _ ratio> 0. 9`.
Bahasy/hili boýunça marşrut (smart routing).
OLA SLO şertnamalary we kwotalary ýokarlandyrmak prosesi.
Alternatiwalar howuzy we "gyzgyn" geçiş.
11) Synlamak we masştabyň signallary
Metrikler (iň az):- Capacity headroom по слоям; `queue_lag/backlog growth`; `kafka ISR`; `db connections`/`repl lag`; `redis evictions`; `open_circuit`/`retry_rate`; `quota_usage`.
- Iş metrikleri: success rate/depozit öwrülişigi, oýnuň başlanýan wagty.
- Bahasy: cost/RPS, cost/1k calls.
- Capacity Overview (headroom, top-töwekgelçilikler, burn-rate SLO).
- Stream & Queue Panel (lag/backlog, consumer saturation).
- DB & Cache (p99, konnektler, hit/evictions).
- Providers & Quotas (TPS, timeouts, bahasy, geçiş).
- Change Safety (çykmazdan öň/soň, kanareýa, awtogeýtler).
ALERT HeadroomLowAPI
IF capacity_headroom{layer="api"} < 0. 15 FOR 10m
ALERT KafkaBacklogAtRisk
IF (consumer_lag > 5e6 AND rate(consumer_lag[5m]) > 5e4) AND (hpa_desired == hpa_max) FOR 10m
ALERT DBConnectionsNearMax
IF active_conns / max_conns > 0. 85 FOR 5m
ALERT ProviderQuota90
IF usage_quota_ratio > 0. 9 FOR 5m
12) FinOps: masştably
Netijelilik koeffisiýentleri: cost/RPS, cost/depozit, cost/1k wakalar.
Right-sizing: VPA/teklipler, "over-provisioned" boýunça hasabatlar.
Kritiki däl üçin Spot/Preemptible; Esasy ýük üçin reserved/committed.
Egress-býudjet we kesh, CDN/edge-ofload.
Loglary gymmatlyk derejesine görä ýygnamak we arhiwlemek (hot vs cold).
Duýduryş kwotalary (soft-cap) we giňeltmek üçin awto-biletler.
13) Prosesler we adamlar
Change Management: kanareýalar, ficheflaglar, regressiýa duralgalary.
Taýynlyk hadysasy: runbook 'i "kuwwaty nirede goşmaly", "sebiti nädip üýtgetmeli".
Iň ýokary derejeleri meýilleşdirmek: oýunlaryň/ýaryşlaryň/kampaniýalaryň senenamasy we üpjün edijileriň penjireleri.
Yzygiderli game-days we DR-maşklar.
Eýeçilik matrisi: Feýlowerde "düwmä" kim basyp biler/kwotalaryň köpelmegi.
14) Girizmegiň çek-listleri
Esasy ululygy başlamak (2-4 hepde):- Möhüm ýollaryň we çäkleriň kartasy (gatlaklara görä), headroom maksady ≥ 30%.
- HPA + Cluster Autoscaler; PDB/SpreadConstraints.
- Gyzgyn ýollarda nobatlar, idempotency-keys, outbox.
- Nagt pullar: hit maksatlar ≥ 90%, evictions syýasaty, esasy görkezijiler.
- DB: read-replikalar, konnektler howzy, çarding meýilnamasy.
- Üpjün edijiler: köp satyjy, kwotalar, breýkerler/retraýlar.
- "Capacity/Stream/DB/Providers" daşbordlary, § 11-den alertler.
- Kanareýa we awtogeýtler "çykmazdan öň/soň".
- DR-pleýbuk we bir bölekleýin feýlower okuwy.
- Nagt pullary gyzdyrmak, HPA/ASG deslapky skail, warm-standby replikasy.
- Üpjün edijileriň kwotalaryny ýokarlandyrmak, smart-routing-i goşmak.
- Kritiki däl alertler üçin gijeki re modeimleri açmak.
- "safe mode" ficheflagy derrew açmaga taýýar.
15) Anti-patternler
Gorizontal ýerine "iň ýokary" dik täzelenme.
Ähli downstrimlerde akymlaryň/birikmeleriň umumy howuzy (head-of-line).
Dar ýerleriň wagtynyň retrausy, jitteriň ýoklugy → tupan.
Alertlerde we scale syýasatlarynda gisterezis ýok → "kesmek".
Maglumatlary tertipleşdirmezden we lokallaşdyrmazdan ýeke global DB.
Wagt/retraut/gözegçilik edilmezden satyjynyň SDK-syna kör ynam.
DR maşklarynyň ýoklugy: feýlower "diňe kagyz ýüzünde".
16) KPI ululygy
SLO-iň iň ýokary derejesi (p95/p99, success rate).
Esasy wagt gatlaklary boýunça Headroom.
MTTS (Mean Time To Scale) - goşmaça çeşmeler peýda bolýança.
Backlog/Lag Resolution Time - iň ýokary derejeden soň nobatlaryň ýykylan wagty.
Işjeň ösüş döwri üçin Change Failure Rate.
Cost/RPS we cache/CDN/edge-ofloaddan tygşytlamak.
DR Readiness: Maşklarda RTO/RPO.
17) "Çalt" şablonlaryň mysallary
Kafka: konsumerleriň (ideýalaryň) partiýa ýerleşdirilmegi we awtoskeýli:
partitions(topic="bets") = ceil(peak_msgs_per_sec / target_msgs_per_partition)
consumers = min(partitions, max_pods); rebalance_on: skew > 1. 5x scale_up_if: lag > 5e5 && rate(lag[5m]) > 5e4
PostgreSQL:
max_connections = poolers pool_size 1. 3 read_routing: primary (write), replicas (read majority)
shard_key: tenant_id or region_id
Redis:
maxmemory-policy: allkeys-lfu cluster-replicas: 1 evict-alert: rate(evictions[5m]) > 0 && used_mem/limit > 0. 8
Kanareýç awtogeýt syýasaty (gysgaça maglumat):
guardrails:
- metric: api_p99_ms, threshold: 1. 3 baseline_1d, window: 10m, action: pause_and_rollback
- metric: error_rate, threshold: 2 baseline_1d, window: 5m, action: pause max_step: 10%
step_interval: 15m
18) FAQ
S: Ilki näme ulalmaly?
A: Dashbordlaryň maglumatlary boýunça dar ýerler: nobatlar/keş/DB okamak. Gyzgyn ýollar (goýum/stawka/oýny başlamak) - ileri tutulýan ugur.
Q: Awto-masştabyň "hasam erbetleşdirýändigine" nädip düşünmeli?
A: Baglanyşyga serediň: scale-up ↑, p99/ýalňyşlyklar gowulaşmaýar - meseläni "ulaldyp" bilersiňiz (dar aşak/kwota). Arakesmeleri/zaýalanmagy açyň.
Q: Hemişe ikinji üpjün ediji gerekmi?
A: Möhüm ýollar üçin - hawa. Otherwiseogsam, iň bolmanda ýönekeýleşdirilen ssenariýa we keş bilen "safe mode".
Q: Active-active или active-passive?
A: Eger RTO boýunça talaplar pes bolsa we sebitleýin oýunçylar köp bolsa - active-active. Otherwiseogsam, işledilen feýler bilen active-passive bilen başlaň.