Tenantlaryň izolýasiýasy we çäkleri
Tenantlaryň we çäkleriň izolýasiýasy köp tenant arhitekturasynyň esasyny düzýär. Maksat: bir kärendeçiniň hereketleri hiç haçan beýlekisiniň maglumatlaryna, howpsuzlygyna we SLO-syna täsir etmez we çeşmeler adalatly we öňünden aýdyp boljak paýlanar. Aşakda - maglumatlaryň derejesinden hasaplamalary meýilleşdirmäge we hadysalary dolandyrmaga çenli çözgütleriň amaly kartasy.
1) Howplaryň we maksatlaryň nusgasy
Howplar
Kärendeçileriň arasynda maglumatlaryň syzmagy (logiki/kesh arkaly/logi arkaly).
"Noisy neighbor": bir müşderiniň köpelmegi sebäpli öndürijiligiň pese gaçmagy.
Artykmaçlyklaryň güýçlenmegi (giriş syýasatynda ýalňyşlyk).
Billing-drift (ulanmagyň we hasaplamalaryň laýyk gelmezligi).
Kaskad şowsuzlyga çydamly ssenariýalar (biriniň hadysasy köpleriň aşak gaçmagyna getirýär).
Maksatlar
Maglumatlaryň we syrlaryň berk izolýasiýasy.
Per-tenant çäkleri/kwotalary we adalatly meýilleşdiriş.
Aç-açan audit, gözegçilik we billing.
Wakalary lokallaşdyrmak we çalt dikeldiş per tenant.
2) Izolýasiýa derejeleri (ahyrky model)
1. Maglumat
Açarlarda we indekslerde 'tenant _ id', Row-Level Security (RLS).
Şifrlemek: KMS iýerarhiýasy → kärendeçiniň açary (KEK) → maglumat açary (DEK).
Ýokary talaplar üçin aýratyn shemalar/BD (Silo), netijelilik üçin RLS bilen umumy klaster (Pool).
Retenşna syýasaty we "ýatdan çykarmak hukugy" per tenant, crypto-shredding açarlary.
2. Hasaplamalar
CPU/RAM/IO kwotalary, tenant üçin worker howuzlary, "deňagramly" nobatlar.
GC/heap izolýasiýasy (JVM/Runtime konteýnerleri/sazlamalary), parallelism çäkleri.
Per-tenant autoscaling + backpressure.
3. Tor
Segmentasiýa: private endpoints/VPC, ACL 'tenant _ id'.
Serhetdäki rate limiting we per-tenant connection caps.
DDoS/botlardan gorag
4. Amallar we amallar
Kärendeçi göçmeler, bellikler, DR, feature-flags.
Hadysalar - "mikro-blast-radius": 'tenant _ id' boýunça fýuzing.
3) Kireýine alyjynyň elýeterliligine we kontekstine gözegçilik etmek
AuthN: OIDC/SAML; bellikleri 'tenant _ id', 'org _ id', 'plan', 'scopes' göterýär.
AuthZ: RBAC/ABAC (rollar + taslamanyň, bölümiň, sebitiň atributlary).
Serhetdäki kontekst: API-şlýuz tenantyň kontekstini çykarýar we tassyklaýar, çäkler/kwotalar bilen doldurýar, treýslere ýazýar.
"Goşa gulplama" ýörelgesi: RLS hyzmatynda/DB syýasatynda barlag.
4) Maglumatlar: shemalar, nagt pul, ýazgylar
Shemalar:- Shared-schema (row-level): iň ýokary netijelilik, berk RLS hökmanydyr.
- Per-schema: izolýasiýa/operasiýa barlyşygy.
- Per-DB/cluster (Silo): VIP/düzgünleşdirilýänler üçin.
Kesiş: açar prefiksleri 'tenant: {id}:...', TTL meýilnama boýunça, cache-stampede (lock/early refresh) garşy gorag.
Girişler/meta-maglumatlar: PII-iň doly lakamlaşdyrylmagy, 'tenant _ id' boýunça süzgüçler, dürli kärendeçileriň ýazgylarynyň "ýelmeşmegini" gadagan etmek.
5) Traffigi we amallary çäklendirmek
Esasy mehanikler
Token Bucket: tekizlenen bökdençlikler, 'rate '/' burst' parametrleri.
Leaky Bucket: throughput.
Fixed Window/Sliding Window: wagt penjiresinde ýönekeý/takyk kwotalar.
Concurrency limits: caps bir wagtyň özünde soraglara/joblara.
Nirede ulanmaly
Serhetde (L7/API-şlýuz) - esasy gorag we "çalt şowsuzlyk".
Merkezde (hyzmatlarda/nobatlarda) - ikinji kontur we "fair share" üçin.
Syýasatlar
Tenant/meýilnama/endpoint/amal görnüşi boýunça (köpçülige açyk API, agyr eksportlar, administratiw hereketler).
Priority-aware: VIP has uly 'burst' we arbitra inda agram alýar.
Ygtybarly retraýalar üçin idempotency-keys.
Profilleriň mysaly (düşünjeler)
Starter: 50 req/s, burst 100, 2 paralel eksport.
Business: 200 req/s, burst 400, 5 eksport.
Enterprise/VIP: 1000 req/s, burst 2000, saýlanan workerler.
6) Kwotalar we adalatly meýilleşdiriş (fairness)
Çeşmeler boýunça kwotalar: ammar, obýektler, habarlar/min, tabşyryklar/sagat, nobatlaryň ululygy.
Weighted Fair Queuing/Deficit Round Robin: umumy workerlere "deňagramly" giriş.
Per-tenant worker pools: şowhunly/tankydy müşderiler üçin berk izolýasiýa.
Admission control: kwotalar gutarandan öň şowsuzlyk/pese gaçma.
Backoff + jitter: partlamalary sinhronlaşdyrmazlyk üçin eksponensial gijikdirmeler.
7) Gözegçilik we billing per tenant
Hökmany bellikler: 'tenant _ id', 'plan', 'region', 'endpoint', 'status'.
SLI/SLO per tenant: p95/p99 latency, error rate, availability, utilization, saturation.
Usage-metrikler: CPU amallary/baýtlary/sekundlary boýunça hasaplaýjylar → agregator → invoýslar.
Billingiň idempotentligi: serhetdäki snapshotlar, goşa hasapdan çykarylmakdan/wakalaryň ýitmeginden goramak.
Daşbordlar segmentlerde: VIP/düzgünleşdirilen/täze kärendeçiler.
8) "Kärendeçiler boýunça" hadysalar, zaýalanma we DR
'tenant _ id' boýunça fýuzing: galanlaryna täsir etmezden belli bir kärendeçiniň gyssagly ýapylmagy/trottling.
Graceful Degradation: read-only re modeim, "Sandbox" nobatlar, yza süýşürilen meseleler.
RTO/RPO per tenant: her meýilnama üçin dikeldiş we ýitgileriň maksatlaýyn bahalary.
Maşklar: şowhunly kärendeçini öçürmek we DR barlagy bilen yzygiderli "oýun günleri".
9) Talaplara laýyk gelmek (residency, gizlinlik)
Pinning tenanta sebite; sebitleýin akymlaryň anyk düzgünleri.
Açarlara/maglumatlara girmegiň barlagy, administratiw amallaryň žurnallaşdyrylmagy.
Maglumatlary retenşn we eksport dolandyryşy per tenant.
10) Mini-salgylanma: nädip bir ýere jemlemeli
Soragyň akymy
1. Edge (API-şlýuz): TLS → aýyrmak 'tenant _ id' → belgi tassyklamak → rate/quotas ulanmak → söwda etmek.
2. Polisiýa hereketlendirijisi: kontekst 'tenant _ id/plan/features' → ugry we çäkleri barada karar.
3. Hyzmat: Hukuklary barlamak + bellikler 'tenant _ id' → RLS aşagyndaky DB bilen işlemek → prefiks bilen keş.
4. Usage-ýygnamak: amallaryň/baýtlaryň hasaplaýjylary → agregator → billing.
Maglumat
Strategiýa boýunça shema/DB (row-level/per-schema/per-DB).
KMS: kärendeçi üçin açarlar, aýlaw, aýyrylanda crypto-shredding.
Hasaplamalar
Agramly nobatlar, per tenant, caps concurrency boýunça workerleriň pullary.
Per-tenant metriklere görä autoscaling.
11) Pseudo-syýasatlar (ugrukdyrmak üçin)
yaml limits:
starter:
req_per_sec: 50 burst: 100 concurrency: 20 exports_parallel: 2 business:
req_per_sec: 200 burst: 400 concurrency: 100 exports_parallel: 5 enterprise:
req_per_sec: 1000 burst: 2000 concurrency: 500 exports_parallel: 20
quotas:
objects_max: { starter: 1_000_000, business: 20_000_000, enterprise: 100_000_000 }
storage_gb: { starter: 100, business: 1000, enterprise: 10000 }
12) Azyk önüminden öň çek-sanawy
- Ýeke-täk hakykat çeşmesi 'tenant _ id'; hemme ýerde zyňylýar we logotip edilýär.
- RLS/ACL DB + hyzmat barlagy (goşa gulplama) derejesinde bar.
- Şifrlemek açarlary per tenant, aýlaw/aýyrmak resminamalaşdyryldy (crypto-shredding).
- Serhetdäki we içindäki çäklendirmeler/kwotalar; partlamalar we "burst" synagdan geçirildi.
- Fair-queuing we/ýa-da VIP üçin saýlanan workerler; caps на concurrency.
- Per-tenant SLO we alertler; segmentler boýunça daşbordlar.
- Usage-ýygnamak idempotenten; billing bilen maglumat barlandy.
- DR/hadysalar kärendeçiden öň lokallaşdyrylýar; 'tenant _ id' boýunça fýuzing işleýär.
- Nagt pul/tölegler kärendeçiler boýunça bölünýär; PII gizlenendir.
- Migrasiýa/bellikler/eksport proseduralary - kärende boýunça.
13) Adaty ýalňyşlyklar
RLS "hyzmat" ulanyjy tarapyndan öçürildi/ýapyldy - syzmak töwekgelçiligi.
Bitewi global limiter → "noisy neighbor" we SLO-nyň bozulmagy.
Prefikssiz umumy keşler/nobatlar → maglumatlaryň geçişi.
Billing, iň ýokary nokatlar bilen ýitýän ýazgylary sanaýar.
Kärendeçi fýuzingiň ýoklugy - kaskad ýykylmagy.
Kynçylykly 'tenant _ id' -ni aýak basmak mümkinçiligi bolmazdan "bir aýlawda" göçmek.
14) Strategiýany çalt saýlamak
Düzgünleşdirilen/VIP: Silo-data (per-DB), bölünip berlen workerler, berk kwotalar we residency.
Köpçülikleýin SaaS: Shared-schema + RLS, serhetdäki güýçli çäkler, içinde fair-queuing.
"Şowhunly/titremeli" ýük: uly 'burst' + gaty concurrency-caps, backpressure we meýilnamalar boýunça ileri tutulýan ugurlar.
Netije
Tenantlaryň we çäkleriň izolýasiýasy serhetlere we adalata degişlidir. Yığını, RLS we maglumatlary şifrlemek, serhetde we özende çäklendirmek we kwotalar, adalatly meýilleşdiriji, hadysalara syn etmek we lokalizasiýa etmek arkaly aýdyň 'tenant _ id' - bularyň hemmesi bilelikde platformanyň agressiw ösmegi bilen hem her bir kärendeçi üçin howpsuzlygy, öňünden aýdyp boljak hilini we aç-açan billing berýär.