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.
- `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.
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`.
- 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).
- 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ň: 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 _ open {to =" X"} = = 1 FOR 1m' → page integrasiýa eýesine.
- ' retry _ rate {to =" X"}> baseline2 FOR 5m' + 'outbound _ rps> 0' → tupan töwekgelçiligi.
- `consumer_lag{topic="Y"} growth > threshold FOR 10m` + `hpa at max` → крит.
- ' 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.