GH GambleHub

Amallar we Dolandyryş → Hyzmatlara garaşlylyk

Hyzmatlaryň garaşlylygy

1) Bu näme üçin zerur?

Islendik önümçilik platformasy graf: ulanyjylar → Edge/API → domen hyzmatlary → nobatlar/akymlar → BD/nagt pullar → daşarky üpjün edijiler (tölegler, KYC, oýun üpjün edijileri). Grafanyň bir gapyrgasyndaky ýalňyşlyk köplenç tutuş torda "aýlanýar": gijikdirmeler ösýär, retralar işleýär, nobatlar ýapylýar, kaskad şowsuzlyklary ýüze çykýar. Garaşlylygy dolandyrmak "partlaýjy radiusy" peseldýär we goýberilişleri öňünden aýdyp bolýar.

Maksatlar:
  • Jaňlaryň doly sütünini görmek we kimiň kime baglydygyna düşünmek.
  • Kaskad şowsuzlyklarynyň we "retraý tupanynyň" öňüni almak.
  • Gabat gelýänligi we SLO-propagandany göz öňünde tutup, goýberişleri meýilleşdiriň.
  • MTTR götermek: asyl esasy düwün tapmak (root cause).

2) Garaşlylygyň görnüşleri

Sinhron (RPC: REST/gRPC/GraphQL): gizlinlik/elýeterlilik boýunça berk baglanyşyk. Taýmautlar, breýkerler, retraýlaryň býudjeti gerek.
Asinkron (Event/Stream: Kafka/Rabbit/Pulsar): has durnukly baglanyşyk, ýöne lag/backlog we gowşuryş semantikasy (at-least-once, idempotency) bar.
Ammar (DB/Cache/Object store): bölünýän çeşmeler → kontenşn, konnektleriň çäkleri/IOPS, eviction, replikasiýa.
Daşarky üpjün edijiler (PSP/KYC/oýun üpjün edijileri): kwotalar, tölegli jaňlar, hyzmat penjireleri, kanuny SLA.
Operasiýa (relizler, fiçeflaglar, konfigalar): sazlamalar, syrlar, shema registry arkaly gytaklaýyn garaşlylyk.

3) Hyzmatlaryň katalogy we garaşlylyk grafalary

Katalogda näme ýazýarys (Backstage/Service Catalog/CMDB):
  • Eýeler (Squad/chat/On-call rota), repo, gurşaw, artefaktlar.
  • API şertnamalary (OpenAPI/AsyncAPI), wersiýalary, laýyklygy (back/forward).
  • Gelýän/çykýan garaşlylyk (upstream/downstream) (sync/async), kritiklik, SLO garaşmak.
  • Wagt/retraý býudjeti, breýkerler, bulkhead-howuzlar.
  • Daşarky integrasiýalaryň kwotalary we çäkleri hakynda maglumatlar.
Kartoçkanyň kiçi mysaly:
  • `service: payments-api`
  • Upstream: `user-profile` (sync), `risk-score` (async).
  • Downstream: `PSP-X` (sync, квота 2k RPS), `ledger` (async).
  • SLO: p99 ≤ 300 ms, 99. 9% uptime.
  • Wagtlar: 200 ms k 'PSP-X', 150 ms k 'user-profile'.
  • Retraýlar: 2 eksponensial gijikdirme, jitter.
  • Breýker: 5% ýalňyşlykda 30 s açyk/10 s.

4) SLO-propagandasy we "gizlinlik býudjeti"

Sinhron jaňlaryň zynjyrynda jemleýji SLO gijikdirmeleriň we şowsuzlyklaryň ähtimallygynyň jeminden emele gelýär.

Ýörelgeler:
  • Soragyň býudjeti ýokardan aşak bölünýär: öň SLO 500 ms → Edge 50 ms → API 150 ms → domen hyzmatlary 200 ms → üpjün ediji 100 ms.
  • Wagtlar "içinden has gysga": zombi çagyryşlary däl-de, çeşmeleri täzelemek üçin çagyryjynyň jemi içerki wagty az.
  • Diňe ygtybarly kodlar/kadadan çykmalar we jitter bilen retralar; dar ýerleriň wagtyna retraýasyz (ýogsam "tupan").

5) Şertnamalar we laýyklyk

API wersiýasy: Şertnamalar üçin SemVer; "optional" meýdanlary arkaly backward-compatible üýtgeşmeler, shemany giňeltmek; aýyrmak - diňe "deprekeýt döwri" arkaly.
Consumer-driven contracts (CDC): Sarp ediji synaglary (Pact-meňzeş) CI-de üpjün edijä garşy başlaýar; gabat gelmeýän ýagdaýynda goýberilýär.
Shema-registrler (Async): topikleriň/wakalaryň wersiýasy, shemalaryň ewolýusiýasy (Euro/JSON-Schema), "can-read-old/can-write-new" syýasaty.

6) Durnuklylygyň in engineeringenerçilik nusgalary

Timeouts: SLA biznesini tehniki garaşyşlardan aýyrýarys; her bir çykýan baglanyşyk - aç-açan wagt.
Retries + backoff + jitter: idempotentligi göz öňünde tutup, 2-3 synanyşykdan köp bolmaly däldir.
Circuit Breaker: downstream zaýalananda "çalt düşmek"; half-open synaglary.
Bulkhead (howuzlaryň izolýasiýasy): dürli daşarky akymlar üçin - akymlar/podlar/birikmeler üçin aýratyn howuzlar.
Rate-limit/Leaky-bucket: piklerde downstrimleri öldürmezlik üçin.
Idempotency & de duplication: haýyş/habar derejesinde idempotentlik açary; leýterler we retraý nobatlar.
Keş we follbekler: lokal/paýlanan keş, "stale-while-revalidate" statuslary, mazmunyň zaýalanmagy.

Psevdo- (pikir):

outbound:
psp-x:
timeout_ms: 200 retries: 2 retry_on: [5xx, connect_error]
backoff: exponential jitter: true circuit_breaker:
error_rate_threshold: 0. 05 window_s: 10 open_s: 30 pool: dedicated-psp (max_conns: 200)

7) Endikleriň syn edilmegi

Paýlanan ýollar (TraceID, Baggage): baglanyşyklar boýunça soragyň ýoluny görmek; 'peer' bellikleri bilen gidýän jaňlar üçin soraldy. service`, `retry`, `timeout`.
Метрики per-dependency: `outbound_latency_p99`, `outbound_error_rate`, `open_circuit`, `retry_count`, `queue_lag`.

Daşbordlar Upstream/Downstream:
  • SLO we nädogry gapyrgalaryň reňk görkezijisi bolan hyzmatlar kartasy.
  • Soňky hepde üçin "Problemaly endikleriň Top N".
  • "Blast radius" - X. güýzünde ejir çekjek hyzmatlaryň sanawy.
  • Baglanyşyk ýazgylary: 'trace _ id '/' span _ id' -ni magazinesurnallara goşuň.

8) Garaşlylygy göz öňünde tutup, goýberişleri dolandyrmak

Dependency-aware paýlaýynlary: sarp edijileriň CDC synaglary gyzyl bolsa, üpjün edijiniň goýberilmegi petiklenýär.
Kem-kemden açylýar: täze meýdanlar/endointler → 1% sarp ediji üçin → 10% → 100%.
Kanar relizleri: Esasy garaşlylygy we "gizlinlik býudjetini" traffigiň paýynda barlaýarys.
Shemalaryň laýyklygy: prodýuser "vNew" ýazýar, konsumerler "vOld/vNew" okaýarlar; geçenden soň - köne meýdanlaryň "zibil ýygnamak".

9) Sütün boýunça hadysalar we eskalasiýa

"Hakyky günäkäri" kesgitleýäris: alert-korrelasiýa - eger 'PSP-X' peseldilse, tutuş "töleg gyrymsy agajyny" däl-de, integrasiýanyň eýesini.
Awtodegradasiýa: fiçeflag "minimal re regimeim" (az agyr endpointler, kesilen bandllar, kritiki däl şekilleri ýapmak).
Kaskadlardan gardlar: paralelligi çäklendirýäris, gyzgyn şahada retralary öçürýäris, breýkeri öňünden açýarys (pre-open).

Runbook şablony:
  • Diagnostika: haýsy daşbordlar/metrikler, kwotalary/çäkleri nädip barlamaly.
  • Hereketler: RPS azaltmak, ätiýaçlyk üpjün edijä geçmek, wagtlaýyn nagt jogaplary açmak.
  • Yza gaýdyp gelmek we tassyklamak: parametrleri yzyna gaýtarmak, p95/p99 we error-rate kadasyna göz ýetirmek.

10) Endikleriň kritikligi matrisi

Oklar boýunça her baglanyşyga baha beriň:
JübütGörnüşiKritiklik (GGR/SLA)Aýlaw ýolyKwotalar/çäklerEýesi
`api → payments`syncÝokarybölekleýin awtonom goýum2k RPSsquad-payments
`payments → PSP-X`syncKritikiPSP-U/Token keşi1. 5k RPSintegrations
`bets → risk-score`asyncOrtadegrade to defaultrisk
Düzgünler:
  • "Kritikler" üçin - goşa prowaýding, breýkerler, aýratyn howuzlar, bulam-bujarlyk synaglary.
  • "Beýik" üçin - iň bolmanda pese gaçmak we çeňňegi öçürmek üçin "ýaşyl düwme".
  • "Orta/pes" üçin - retra çäkleri we nobatlaryň býudjeti.

11) Amal: inwentarizasiýadan işe çenli

1. Grafany kartlamak: katalogdan hakyky çagyryşlary (yzarlamalary) + deklaratiw garaşlylygy ýygnamak.
2. Eýeleri bellemek: her hyzmat we daşarky integrasiýa üçin - jogapkär on-call.
3. SLO we býudjetleri kesgitlemek: gizlinlik/ýalňyşlyklar, wagt/retrauslar/howuzlar.
4. Şertnamalary resmileşdiriň: OpenAPI/AsyncAPI, shemalar we CDC.
5. Durnuklylyk patternlerini öz içine al: timeouts/retries/circuit/bulkhead.
6. per-dependency dashbordlaryny we alertlerini sazla.
7. Goýberiş geýtlerini goýuň: CDC/gabat gelmek/kanareýka boýunça blok.
8. Yzygiderli oýun günleri: esasy gapyrgalaryň ýykylmagy üçin bulam-bujarlyk synaglary.
9. Aragatnaşyklara ünsi jemleýän postmortemalar: kaskady näme güýçlendirdi, radiusy nädip daraltmaly.

12) Alertler garaşlylykda (düzgünleriň ideýalary)

Synp downstrimleri:
  • `outbound_error_rate{to="X"} > 3% FOR 10m` → warning; `>5% FOR 5m` → critical.
  • `outbound_p99_latency{to="X"} > SLO1. 3 FOR 10m` → warning.
Circuit breaker:
  • ' circuit _ open {to =" X"} = = 1 FOR 1m' → page integrasiýa eýesine.
Retraýlar:
  • ' retry _ rate {to =" X"}> baseline2 FOR 5m' + 'outbound _ rps> 0' → tupan töwekgelçiligi.
Async:
  • `consumer_lag{topic="Y"} growth > threshold FOR 10m` + `hpa at max` → крит.
Daşarky kwotalar:
  • ' usage _ quota {provider =" PSP-X "}> 90% window '→ duýduryş, marşrutlary awto öçürmek.

13) Anti-patternler

"Ähli downstrimler üçin bir umumy akym howzy". Jemi: head-of-line blocking. Pullary bölüň.
Hiç wagt/tükeniksiz retralar. Şeýdip tupan döreýär.
Indempotent däl amallaryň kör retralary. Hasapdan çykarmalar/stawkalar.
Baglanyşyk nokady hökmünde gizlenen "umumy DB". Güýçli bäsdeşlik we blokirleme.
API wersiýasy CDC we deprekeýt meýilnamasy bolmazdan üýtgeýär. Köpçülikleýin güýzleri tutuň.
Diňe aragatnaşyklar boýunça däl-de, hyzmatlar boýunça syn edilýär. Zynjyryň nirede ýarylýandygy görünmeýär.

14) Daşbordlar: iň az toplum

Service Map: interaktiw hyzmat kartasy (latency/error/volume).
Upstream/Downstream Overview: hyzmatyň eýesi üçin - gelýän garaşlylyk (kim jaň edýär), çykýan (kime jaň edýäris), "top problemalar".
Dependency Drilldown: anyk aragatnaşyk kartoçkasy: p50/p95/p99, synplar boýunça ýalňyşlyklar, açyk brekeriň göterimi, retrasy, birikmeler howzy, kwotalar/kod.
Release Context: garaşlylyk grafiklerindäki relizleriň/fiçeflaglaryň düşündirişleri.

15) Girizmegiň çek-sanawy

  • Eýeler we şertnamalar bilen hyzmatlaryň katalogy (OpenAPI/AsyncAPI).
  • Yzarlamalardan doly garaşlylyk grafasy (her gün täzelenýär).
  • SLO hyzmaty we "gizlinlik býudjetleri" zynjyryň aşagyna.
  • Açyk wagtlar, jitter bilen retralar, brakerler, bulkhead-izolýasiýa.
  • CI-de CDC synaglary.
  • Daşbordlar per-dependency we hyzmat kartasy.
  • Esasy sebäbe görä gapyrgalardaky alertler + suppression.
  • Oýun-günler: üpjün edijiniň/klasteriň/topikanyň ýykylmagy we zaýalanmalary barlamak.
  • Pese gaçmak meýilnamasy: Haýsy çipleri öçürýäris, haýsy nagt pullary açýarys.
  • Baglanyşygy azaltmak boýunça hereketler bilen yzygiderli postmortemalar.

16) Endikleri dolandyrmagyň KPI hili

Dependency MTTR: kenar boýunça dikeldiş medianasy.
Blast Radius Index: Biri ýykylanda täsir eden hyzmatlaryň ortaça sany.
Coupling Score: hemmeleriň arasynda sync-endikleriň paýy; peselmek tendensiýasy.
CDC Pass Rate:% Şertnamalar bozulman çykarylýar.
Retry Storms/aý: Maksat bahasy → 0.
Cost of External Calls: 1k RPS üçin daşarky jaňlaryň bahasy (keş/follbekleriň täsirini görmek).

17) Çalt başlamak (defoltlar)

Taýmautlar: şahanyň býujetiniň 70-80%; haýyşyň ýokarky wagty <içerki jemi.
Retrailer: max 2, diňe indempotent 5xx/tor, s backoff + jitter.
Breýker: 10 s, open = 30 s, half-open synaglary üçin 5% ýalňyşlyk bosagasy.
Bulkhead: her downstream üçin bölünen howuzlar/baglanyşyk çäkleri.
CDC: ähli köpçülige açyk API we topikler üçin hökmanydyr.
Async-preferens: nirede - wakalara/nobatlara geçmek (wagt alyş-çalyş).

18) FAQ

Q: Has möhüm zat: retra ýa-da breýker?
A: Ikisi. Retraýalar gysga möhletli şowsuzlyklardan halas edýär, breýker hemişelik pese gaçmakdan we tupandan goraýar.

Q: Baglanyşygyň "gaty gowşakdygyna" nädip düşünmeli?
A: Ýokary ýalňyşlyklar, pes wagt aralygy, ýygy-ýygydan retralar, follbekleriň/nagt pullaryň ýoklugy, sinhron uzyn zynjyrlar.

Q: Integrasiýa synaglarymyz bar bolsa, CDC näme üçin?
A: CDC sarp edijiniň garaşyşlaryny düzedýär we gabat gelmeýän ýagdaýynda üpjün edijiniň goýberilişini bozýar - kod önüme girmezden ozal.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.