GH GambleHub

جداسازی مستاجر و محدودیت

جداسازی مستاجر و محدودیت ها پایه و اساس معماری چند مستاجر است. هدف: به طوری که اقدامات یک مستاجر هرگز بر داده ها، امنیت و SLO دیگر تاثیر نمی گذارد و منابع به طور عادلانه و قابل پیش بینی توزیع می شوند. در زیر یک نقشه عملی از راه حل ها از سطح داده ها برای محاسبه برنامه ریزی و مدیریت حوادث است.

1) مدل تهدید و اهداف

تهدید ها

نشت داده بین مستاجران (منطقی/توسط حافظه پنهان/از طریق سیاهههای مربوط).
«همسایه پر سر و صدا»: کاهش عملکرد به دلیل سنبله در یک مشتری.
افزایش امتیاز (خطای سیاست دسترسی).
رانش صورتحساب (عدم تطابق استفاده و اتهامات).
سناریوهای خرابی آبشار (حادثه یکی منجر به خرابی بسیاری می شود).

اهداف

جداسازی دقیق داده ها و اسرار.
محدودیت ها/سهمیه های حاشیه ای و برنامه ریزی عادلانه.
حسابرسی شفاف، قابلیت مشاهده و صدور صورت حساب.
محلی سازی حادثه و بهبود سریع در هر مستاجر.

2) سطح عایق (مدل پایان به پایان)

1. داده ها

'tenant _ id' in keys and indexes, Row-level Security (RLS).
رمزگذاری: سلسله مراتب KMS → کلید مستاجر (KEK) → کلید داده ها (DEK).
طرح های جداگانه/DB با نیازهای بالا (سیلو)، یک خوشه مشترک با RLS برای بهره وری (استخر).
سیاست های نگهداری و «حق فراموش کردن» در هر مستاجر، کلید های خرد کردن رمزنگاری.

2. محاسبه ها

CPU/RAM/IO سهمیه، استخر کارگر در هر مستاجر، صف وزن.
جداسازی GC/heap (ظروف/تنظیمات JVM/Runtime)، محدودیت های موازی.
در هر مستاجر autoscaling + فشار پشتی.

3. شبکه سازی

تقسیم بندی: نقاط انتهایی خصوصی/VPC، ACL توسط 'tenant _ id'.
محدودیت نرخ و کلاه اتصال هر مستاجر در مرز.
حفاظت در برابر DDoS/رباتها، با توجه به طرح/اولویت.

4. عملیات و فرآیندها

مهاجرت مستاجر، پشتیبان گیری، DR، پرچم ویژگی.
حوادث - «میکرو انفجار شعاع»: fusing توسط «tenant _ id».

3) کنترل دسترسی و زمینه مستاجر

AuthN: OIDC/SAML ؛ توکنها حامل 'tenant _ id'، 'org _ id'، 'plan'، 'scopes' هستند.
AuthZ: RBAC/ABAC (نقش ها + ویژگی های پروژه، بخش، منطقه).
زمینه در مرز: API دروازه عصاره و اعتبار زمینه مستاجر، مکمل با محدودیت/سهمیه، می نویسد: به مسیرهای پیاده روی.
اصل «قفل دوگانه»: چک کردن در سرویس + RLS/سیاست پایگاه داده.

4) داده ها: طرح ها، کش، سیاهههای مربوط

طرح ها:
  • Shared-schema (سطح ردیف): حداکثر کارایی، RLS سخت مورد نیاز است.
  • Per-schema: معامله جداسازی/عملیات.
  • Per-DB/خوشه (سیلو): برای VIP/تنظیم شده است.

کش: مستأجر پیشوندهای کلیدی: {id}:... '، TTL توسط برنامه ها، حفاظت از حافظه پنهان (قفل/تجدید اولیه).

سیاهههای مربوط/ابرداده: pseudonymization کامل PII، فیلتر توسط 'tenant _ id'، ممنوعیت «چسباندن» سیاهههای مربوط به مستاجران مختلف.

5) محدود کردن ترافیک و عملیات

مکانیک پایه

Token Bucket: انفجار صاف، پارامتری «نرخ »/« پشت سر هم».
سطل نشتی: توان تثبیت کننده.
پنجره ثابت/پنجره کشویی: سهمیه ساده/دقیق در پنجره زمان.
محدودیت همزمانی: کلاه برای درخواست/JABS به طور همزمان.

از کجا درخواست کنید

در مرز (دروازه L7/API) - حفاظت اساسی و «شکست سریع».
در هسته (در خدمات/صف) - برای مدار دوم و «سهم عادلانه».

سیاست ها

توسط مستاجر/طرح/نقطه پایانی/نوع عملیات (API های عمومی، صادرات سنگین، اقدامات مدیر).
اولویت آگاه: VIP می شود بیشتر «پشت سر هم» و وزن در داوری.
کلید های idempotency برای عقب نشینی امن.

پروفایل نمونه (مفاهیم)

شروع کننده: 50 req/s، پشت سر هم 100، 2 صادرات موازی.
کسب و کار: 200 req/s، پشت سر هم 400، 5 صادرات.
شرکت/VIP: 1000 req/s، پشت سر هم 2000، کارگران اختصاص داده شده است.

6) سهمیه ها و برنامه ریزی عادلانه (انصاف)

سهمیه منابع: ذخیره سازی، اشیاء، پیام ها/دقیقه، شغل/ساعت، اندازه صف.
وزن صف عادلانه/کسری رابین دور: «وزن» دسترسی به کارگران به اشتراک گذاشته.
استخر کارگر در هر مستاجر: جداسازی سفت و سخت برای مشتریان پر سر و صدا/بحرانی.
کنترل پذیرش: شکست/تخریب قبل از اجرای زمانی که سهمیه ها خسته می شوند.
Backoff + jitter: تاخیرهای نمایشی برای حفظ انفجار از همگام سازی.

7) مشاهده و صدور صورت حساب در هر مستاجر

برچسب های مورد نیاز 'tenant _ id', 'plan', 'region', 'endpoint', 'status'.
SLI/SLO در هر مستاجر: تاخیر p95/p99، میزان خطا، در دسترس بودن، استفاده، اشباع.
معیارهای استفاده: CPU operation/byte/second counters → aggregator → فاکتورها.
idemotence صدور صورت حساب: عکس های فوری در مرز, حفاظت در برابر دو نوشتن آف/از دست دادن حوادث.
داشبورد در بخش: VIP/مستاجران تنظیم شده/جدید.

8) حوادث، تخریب و DR «توسط مستاجر»

Fusing by «tenant _ id»: خاموش/خاموش کردن اضطراری یک مستاجر خاص بدون تأثیر بر بقیه.
تخریب برازنده: حالت فقط خواندنی، صف ماسهبازی، وظایف معوق.
RTO/RPO در هر مستاجر: اهداف بازیابی و از دست دادن برای هر برنامه.

مته: به طور منظم «روز بازی» با مستاجر پر سر و صدا قطع و DR بررسی می شود

9) انطباق (اقامت، حریم خصوصی)

پیوستن مستاجر به منطقه ؛ قوانین جریان روشن بین منطقه ای.
ممیزی دسترسی کلید/داده، ورود به سیستم مدیریت.
مدیریت نگهداری و صادرات داده ها در هر مستاجر.

10) مرجع کوتاه: نحوه قرار دادن آن با هم

درخواست جریان

1. Edge (API gateway): TLS → extract 'tenant _ id' → token validation → apply rate/quota → put trails.
2. موتور سیاسی: زمینه 'tenant _ id/plan/features' → تصمیم گیری در مورد مسیر و محدودیت ها.
3. سرویس: چک کردن حقوق + برچسب 'tenant _ id' → کار با پایگاه داده تحت RLS → کش با پیشوند.
4. Usage-collection: شمارنده عملیات/بایت → جمع کننده → صدور صورت حساب.

داده ها

Schema/DB by Strategy (سطح ردیف/per-schema/per-DB).
KMS: کلیدهای مستاجر، چرخش، خرد کردن رمزنگاری در حذف.

محاسبات

صف با وزن، استخر کارگران در هر مستاجر، کلاه توسط همزمانی.
Autoscaling توسط معیارهای هر مستاجر.

11) شبه سیاست (برای جهت گیری)

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) چک لیست پیش فروش

  • تنها منبع حقیقت 'tenant _ id' ؛ همه جا پرتاب و ثبت شده است.
  • RLS/ACL در سطح DB + بررسی سرویس (قفل دوگانه) فعال شده است.
  • کلید های رمزگذاری در هر مستاجر، رمزنگاری خرد شده مستند شده است.
  • محدودیت/سهمیه در مرز و داخل ؛ آزمایش انفجار و «پشت سر هم».
  • عادلانه صف و/یا کارگران VIP اختصاص داده شده; کپ ها на همزمانی
  • SLO ها و هشدارها ؛ داشبورد توسط بخش.
  • استفاده از جمع آوری idempotent است ؛ صورتحساب رول آپ تایید شده است.
  • DR/حوادث به مستاجر محلی ؛ آمیخته شدن با کارهای 'tenant _ id'
  • نقدی/سیاهههای مربوط توسط مستاجر تقسیم; PII ماسک زده است.
  • روش های مهاجرت/پشتیبان گیری/صادرات مبتنی بر مستاجر است.

13) خطاهای معمول

RLS غیر فعال/دور زدن توسط «سرویس» کاربر - خطر نشت.
محدود کننده جهانی تنها → «همسایه پر سر و صدا» و نقض SLO.
حافظههای نهان/صف مشترک بدون پیشوند → تقاطع دادهها.
شمارش صورتحساب توسط سیاهههای مربوط که در قله از دست داده است.
عدم تلفیق مستاجر - آبشار آبشار.
مهاجرت «در یک سقوط سقوط کرد» بدون توانایی متوقف کردن مشکل «مستاجر _ id».

14) انتخاب استراتژی سریع

تنظیم شده/VIP: داده های سیلو (در هر DB)، کارگران اختصاصی، سهمیه های سخت و اقامت.
SaaS توده: طرح مشترک + RLS، محدودیت های قوی در مرز، صف بندی عادلانه در داخل.
بار «پر سر و صدا/ضربان دار»: پشت سر هم بزرگ + سخت همزمانی کلاه، فشار به عقب و اولویت با توجه به برنامه.

نتیجه گیری

جداسازی مستاجران و محدودیت ها در مورد مرزها و عدالت است. پاک کردن 'tenant _ id' از طریق پشته، RLS و رمزگذاری بر روی داده ها، محدود کردن و سهمیه بندی در مرز و در هسته، زمانبندی منصفانه، قابلیت مشاهده و محلی سازی حوادث - همه اینها با هم، امنیت، کیفیت قابل پیش بینی و صورتحساب شفاف را برای هر مستاجر، حتی با رشد پلت فرم تهاجمی.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.