Tenantlarni izolyatsiya qilish va limitlar
Tenantlar va limitlarni izolyatsiya qilish ko’p tenant arxitekturaning poydevoridir. Maqsad: bir ijarachining xatti-harakatlari hech qachon ikkinchisining ma’lumotlari, xavfsizligi va SLOlariga ta’sir qilmasligi, resurslar esa adolatli va oldindan aytib bo’ladigan tarzda taqsimlanishi. Quyida - ma’lumotlar darajasidan hisoblash va hodisa-menejmentni rejalashtirishgacha bo’lgan amaliy yechimlar xaritasi.
1) Tahdidlar va maqsadlar modeli
Tahdidlar
Ijarachilar o’rtasida ma’lumotlar tarqalishi (loglar orqali mantiqiy/kesh).
«Noisy neighbor»: bitta mijozning o’sishi tufayli unumdorlikning buzilishi.
Imtiyozlarning kuchayishi (kirish siyosatida xatolik).
Billing-drift (foydalanish va hisoblashlarning nomuvofiqligi).
Kaskadga chidamli stsenariylar (bitta hodisa ko’pchilikni olib keladi).
Maqsadlar
Ma’lumotlar va sirlarni qat’iy izolyatsiya qilish.
Per-tenant limitlar/kvotalar va adolatli rejalashtirish.
Shaffof audit, kuzatuv va billing.
Hodisalarni mahalliylashtirish va per tenant tezda tiklash.
2) Izolyatsiya darajalari (uzluksiz model)
1. Maʼlumotlar
’tenant _ id’, Row-Level Security (RLS).
Shifrlash: KMS ierarxiyasi → ijarachi kaliti (KEK) → maʼlumotlar kaliti (DEK).
Yuqori talablarda alohida sxemalar/BD (Silo), samaradorlik uchun RLS bilan umumiy klaster (Pool).
Retenshn siyosati va «unutish huquqi» per tenant, crypto-shredding kalitlari.
2. Hisoblash
CPU/RAM/IO kvotalari, tenant uchun vorker pullari, «tortilgan» navbatlar.
GC/heap izolyatsiyasi (konteynerlar/JVM/Runtime sozlamalari), parallelism limitlari.
Pertenant autoscaling + backpressure.
3. Tarmoq
Segmentatsiya: private endpoints/VPC, ACL po’tenant _ id’.
Chegarada rate limiting va per-tenant connection caps.
Reja/ustuvorlikni hisobga olgan holda DDoS/botlar himoyasi.
4. Operatsiyalar va jarayonlar
Poarendator migratsiyasi, bekaplar, DR, feature-flags.
Hodisalar - «mikro-blast radius»: fyuzing bo’yicha’tenant _ id’.
3) Foydalanishni nazorat qilish va ijarachining konteksti
AuthN: OIDC/SAML; tokenlar’tenant _ id’,’org _ id’,’plan’,’scopes’.
AuthZ: RBAC/ABAC (rollar + loyiha, bo’lim, mintaqa atributlari).
Chegaradagi kontekst: API-shlyuz tenant kontekstini chiqaradi va validatsiya qiladi, limitlar/kvotalar bilan to’ldiradi, treyslarga yozadi.
«Ikki qulf» tamoyili: servisda + RLS/DB siyosatini tekshirish.
4) Ma’lumotlar: sxemalar, kesh, loglar
Sxemalar:- Shared-schema (row-level): maksimal samaradorlik, qat’iy RLS majburiy.
- Per-schema: izolyatsiya/operativlik murosasi.
- Per-DB/cluster (Silo): VIP/tartibga solinadiganlar uchun.
Kesh: kalit prefikslari’tenant: {id}:...’, reja boʻyicha TTL, cache-stampede (lock/early refresh) dan himoya qilish.
Logi/meta ma’lumotlar: PIIni to’liq taxalluslashtirish,’tenant _ id’bo’yicha filtrlar, turli ijarachilarning loglarini «yopishtirish» taqiqlanadi.
5) Trafik va operatsiyalarni limitlash
Tayanch mexaniklar
Token Bucket: tekislangan portlashlar, parametrlash’rate ’/’ burst’.
Leaky Bucket: throughput barqarorlashuvi.
Fixed Window/Sliding Window: Vaqt oynasi boʻyicha oddiy/aniq kvotalar.
Concurrency limits: caps bir vaqtning oʻzida soʻrovlar/joblar uchun.
Qayerda qo’llash kerak
Chegarada (L7/API-shlyuz) - asosiy himoya va «tezkor rad etish».
Markazda (servislarda/navbatlarda) - ikkinchi kontur va «fair share» uchun.
Siyosat
Tenant/reja/endpoint/operatsiya turi bo’yicha (ommaviy API, og’ir eksportlar, ma’muriy harakatlar).
Priority-aware: VIP arbitrajda katta’burst’va og’irlik oladi.
Xavfsiz retrajlar uchun idempotency-keys.
Profillar (tushunchalar) namunasi
Starter: 50 req/s, burst 100, 2 parallel eksport.
Business: 200 req/s, burst 400, 5 eksport.
Enterprise/VIP: 1000 req/s, burst 2000, ajratilgan vorkerlar.
6) Kvotalar va adolatli rejalashtirish (fairness)
Resurslar bo’yicha kvotalar: ombor, obyektlar, xabarlar/min, topshiriqlar/soat, navbatlar miqdori.
Weighted Fair Queuing/Deficit Round Robin: umumiy mashg’ulotlarga «muvozanatli» kirish.
Per-tenant worker pools: shovqinli/tanqidiy mijozlar uchun qattiq izolyatsiya.
Admission control: kvotalar tugagunga qadar muvaffaqiyatsiz/tanazzul.
Backoff + jitter: portlashlarni sinxronlashtirmaslik uchun eksponensial kechikishlar.
7) Kuzatish va billing per tenant
Majburiy teglar:’tenant _ id’,’plan’,’region’,’endpoint’,’status’.
SLI/SLO per tenant: p95/p99 latency, error rate, availability, utilization, saturation.
Usage-metriklar: CPU operatsiyalari/baytlari/sekundlari bo’yicha hisoblagichlar → agregator → invoyslar.
Billingning idempotentligi: chegaradagi snapshotlar, ikki marta hisobdan chiqarish/hodisalarni yo’qotishdan himoya qilish.
Dashbordlar segmentlarda: VIP/tartibga solinadigan/yangi ijarachilar.
8) Noxush hodisalar, degradatsiya va «ijarachilar bo’yicha» DR
Fyuzing bo’yicha’tenant _ id’: aniq ijarachini boshqalarga ta’sir qilmasdan avariya holatida uzib qo’yish/trottling.
Graceful Degradation: read-only rejimi, qum qutisidagi navbatlar, kechiktirilgan vazifalar.
RTO/RPO per tenant: har bir reja uchun maqsadli tiklash va yoʻqotish qiymatlari.
Mashqlar: shovqinli ijarachini o’chirish va DR tekshirish bilan muntazam «game days».
9) Talablarga muvofiqlik (residency, maxfiylik)
Pinning tenanta mintaqaga; kross-mintaqaviy oqimlarning aniq qoidalari.
Kalit/ma’lumotlardan foydalanish auditi, ma’muriy operatsiyalarni jurnallashtirish.
per tenant maʼlumotlarining retenshni va eksportini boshqarish.
10) Mini-referens: qanday qilib yig’ish kerak
Soʻrov oqimi
1. Edge (API-shlyuz): TLS → olish’tenant _ id’→ token validatsiyasi → rate/quotas qo’llash → treyslarni qo’yish.
2. Politsi-dvigatel: kontekst’tenant _ id/plan/features’→ yo’nalish va limitlar to’g "risidagi qaror.
3. Xizmat: huquqlarni tekshirish +’tenant _ id’→ DB bilan RLS ostida ishlash → prefiksli kesh.
4. Usage-yig’ish: operatsiyalar/baytlar hisoblagichlari → agregator → billing.
Maʼlumotlar
Strategiya bo’yicha sxema/DB (row-level/per-schema/per-DB).
KMS: ijarachiga kalitlar, rotatsiya, olib tashlashda crypto-shredding.
Hisoblash
Tarozilar bilan navbatlar, per tenant vorkerlar pullari, concurrency bo’yicha caps.
Per-tenant metriklar bo’yicha autoscaling.
11) Soxta siyosat (yo’naltirish uchun)
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) Oziq-ovqat mahsulotlari oldidagi chek-varaq
- Yagona haqiqat manbai’tenant _ id’; Hamma joyga tashlanadi va logotip qilinadi.
- RLS/ACL DB + Service Control (ikki tomonlama qulf) darajasida yoqilgan.
- Shifrlash kalitlari per tenant, rotatsiya/oʻchirish (crypto-shredding) hujjatlashtirilgan.
- Chegara va ichki limitlar/kvotalar; portlashlar va «burst» sinovdan o’tkazildi.
- Fair-queuing va/yoki VIP uchun ajratilgan vorkerlar; caps на concurrency.
- Per-tenant SLO va alertlar; segmentlar bo’yicha dashbordlar.
- Usage-yig’im idempotenten; billing bilan ma’lumot tekshirildi.
- DR/hodisalar ijarachidan oldin mahalliylashtiriladi; fyuzing’tenant _ id’ni ishlab chiqadi.
- Kesh/loglar ijarachilar bo’yicha bo’lingan; PII niqoblangan.
- Migratsiya/backap/eksport tartib-taomillari - ijarachi.
13) Tipik xatolar
RLS «xizmat» foydalanuvchisi tomonidan o’chirilgan/o’chirilgan - sizib chiqish xavfi.
Yagona global limiter → «noisy neighbor» va SLO buzilishi.
Prefikssiz umumiy kesh/navbatlar → maʼlumotlar kesishishi.
Billing cho’qqilarda yo’qoladigan o’rmonlarni sanaydi.
Ijarachi fyuzing yo’qligi - kaskadli pasayishlar.
Muammoli’tenant _ id’ni to’xtash imkoniyati bo’lmagan holda «bir marta» migratsiya qilish.
14) Strategiyani tez tanlash
Tartibga solinadigan/VIP: Silo-data (per-DB), ajratilgan vorkerlar, qat’iy kvotalar va residency.
Ommaviy SaaS: Shared-schema + RLS, chegarada kuchli limitlar, ichkarida fair-queuing.
Shovqinli/pulsatsiyali yuk: katta’burst’+ qattiq concurrency-caps, backpressure va rejalar bo’yicha ustuvorliklar.
Xulosa
Tenant va limitlarni izolyatsiya qilish - bu chegaralar va adolat haqida. Stek orqali aniq’tenant _ id’, RLS va maʼlumotlarni shifrlash, chegarada va oʻzagida limitlash va kvotalar, adolatli rejalashtiruvchi, hodisalarni kuzatish va mahalliylashtirish - bularning barchasi, hatto platforma agressiv oʻsgan taqdirda ham, har bir ijarachi uchun xavfsizlik, bashorat qilinadigan sifat va shaffof billing beradi.