عزل المستأجر وحدوده
عزلة المستأجر وحدوده هي أساس العمارة متعددة المستأجرين. الغرض: بحيث لا تؤثر إجراءات أحد المستأجرين أبدًا على البيانات والأمن و SLO للآخر، ويتم توزيع الموارد بشكل عادل ويمكن التنبؤ به. فيما يلي خريطة عملية للحلول من مستوى البيانات إلى تخطيط الحوسبة وإدارة الحوادث.
1) نموذج التهديد والأهداف
تهديدات
تسرب البيانات بين المستأجرين (منطقي/عن طريق المخبأ/عن طريق السجلات).
«الجار الصاخب»: تدهور الأداء بسبب الارتفاعات الكبيرة في عميل واحد.
تصعيد الامتياز (خطأ في سياسة الوصول).
انحراف الفواتير (عدم تطابق الاستخدام والرسوم).
سيناريوهات Cascade الآمنة من الفشل (تؤدي حادثة واحدة إلى توقف العديد).
الأهداف
عزل صارم للبيانات والأسرار.
الحدود الهامشية/الحصص والتخطيط العادل.
المراجعة الشفافة وقابلية الملاحظة وإعداد الفواتير.
توطين الحوادث والإنعاش السريع لكل مستأجر.
2) مستويات العزل (نموذج من طرف إلى طرف)
1. البيانات
'مستأجر _ id' في المفاتيح والفهارس، Row-Level Security (RLS).
التشفير: التسلسل الهرمي → مفتاح المستأجر (KEK) → مفاتيح البيانات (DEK).
مخططات منفصلة/مصرف التنمية ذات متطلبات عالية (Silo)، وهي مجموعة مشتركة مع RLS للكفاءة (مجمع).
سياسات الاحتفاظ و «الحق في النسيان» لكل مستأجر، مفاتيح تمزيق التشفير.
2. حسابات
حصص وحدة المعالجة المركزية/ذاكرة الوصول العشوائي/IO، وتجمعات العمال لكل مستأجر، وقوائم الانتظار المرجحة.
عزل GC/كومة (حاويات/إعدادات JVM/وقت التشغيل)، حدود التوازي.
لكل مستأجر تجهيز تلقائي + ضغط خلفي.
3. شبكة
التجزئة: نقاط النهاية الخاصة/VPC، ACL بواسطة 'المستأجر _ id'.
تحديد الأسعار وحدود الاتصال لكل مستأجر على الحدود.
الحماية من DDoS/الروبوتات، مع مراعاة الخطة/الأولوية.
4. العمليات والعمليات
هجرات المستأجرين، النسخ الاحتياطية، DR، أعلام الميزات.
الحوادث - «نصف قطر الانفجار الصغير»: الاندماج بواسطة 'المستأجر _ id'.
3) مراقبة الوصول وسياق المستأجر
AuthN: OIDC/SAML ؛ الرموز تحمل "مستأجر _ معرف"، "org _ id'،" خطة "،" نطاقات ".
AuthZ: RBAC/ABAC (الأدوار + سمات المشروع، الإدارة، المنطقة).
السياق على الحدود: تقوم بوابة API باستخراج سياق المستأجر والتحقق من صحته، والمكملات بحدود/حصص، وتكتب إلى المسارات.
مبدأ «القفل المزدوج»: التحقق من سياسة الخدمة/قاعدة البيانات + RLS.
4) البيانات: مخططات، مخبأ، سجلات
المخططات:- المخطط المشترك (مستوى الصف): مطلوب أقصى قدر من الكفاءة، RLS صارم.
- لكل مخطط: مقايضة العزل/التشغيل.
- Per-DB/cluster (Silo): for VIP/regulated.
ذاكرة التخزين المؤقت: مستأجر البادئات الرئيسية: {معرف}:... ، TTL من خلال الخطط، حماية التدافع المخبأ (قفل/تحديث مبكر).
Logs/metadata: الاسم المستعار الكامل لـ PII، المرشحات بواسطة 'المستأجر _ id'، حظر «لصق» سجلات المستأجرين المختلفين.
5) الحد من حركة المرور والعمليات
ميكانيكا أساسية
Token Bucket: رشقات نارية منعشة، و parameterization «معدل »/« انفجار».
Leaky Bucket: إنتاجية التثبيت.
النافذة الثابتة/النافذة المنزلقة: حصص بسيطة/دقيقة على نافذة الوقت.
حدود التزامن: الحدود القصوى للطلبات/اللكمات المتزامنة.
مكان التقديم
عند الحدود (بوابة L7/API) - الحماية الأساسية و «الفشل السريع».
في النواة (في الخدمات/قوائم الانتظار) - للدائرة الثانية و «حصة عادلة».
السياسات
حسب المستأجر/الخطة/نقطة النهاية/نوع التشغيل (واجهات برمجة التطبيقات العامة، الصادرات الثقيلة، الإجراءات الإدارية).
إدراك الأولوية: يحصل كبار الشخصيات على المزيد من «الانفجار» والوزن في التحكيم.
مفاتيح الخصوصية للتراجع الآمن.
عينات (مفاهيم)
المبتدئ: 50 req/s، burst 100، 2 صادرات متوازية.
الأعمال: 200 req/s، burst 400، 5 صادرات.
Enterprise/VIP: 1000 req/s، burst 2000، عمال متفانون.
6) الحصص والتخطيط العادل (الإنصاف)
حصص الموارد: التخزين، الأشياء، الرسائل/الدقائق، الوظائف/الساعة، حجم قائمة الانتظار.
الطابور العادل المرجح/جولة العجز روبن: الوصول «المرجح» إلى العمال المشتركين.
حمامات السباحة لكل مستأجر: عزلة صارمة للعملاء الصاخبين/المهمين.
مراقبة القبول: الفشل/التدهور قبل التنفيذ عند استنفاد الحصص.
Backoff + jitter: تأخيرات أسية للحفاظ على الانفجارات خارج المزامنة.
7) إمكانية الملاحظة والفواتير لكل مستأجر
البطاقات المطلوبة هي «مستأجر _ معرف»، «خطة»، «منطقة»، «نقطة النهاية»، «حالة».
SLI/SLO لكل مستأجر: p95/p99 زمن الوصول، معدل الخطأ، التوافر، الاستخدام، التشبع.
مقاييس الاستخدام: تشغيل وحدة المعالجة المركزية/عدادات البايت/العدادات الثانية → فواتير → المجمع.
الفواتير: لقطات على الحدود، والحماية من الشطب المزدوج/فقدان الأحداث.
لوحات القيادة في القطاعات: VIP/المستأجرين المنظمين/الجدد.
8) الحوادث والتدهور و DR «حسب المستأجر»
الدمج بواسطة «المستأجر _ id»: الإغلاق الطارئ/الاختناق لمستأجر معين دون التأثير على الباقي.
التحلل الرشيق: وضع القراءة فقط، قوائم انتظار الصناديق الرملية، المهام المؤجلة.
RTO/RPO لكل مستأجر: أهداف الاسترداد والخسارة لكل خطة.
التدريبات: «أيام اللعبة» العادية مع قطع المستأجر الصاخب وفحص DR
9) الامتثال (الإقامة والخصوصية)
تثبيت المستأجر في المنطقة ؛ قواعد واضحة للتدفق عبر الأقاليم.
مراجعة المفتاح/الوصول إلى البيانات، تسجيل الدخول الإداري.
إدارة الاحتفاظ بالبيانات وتصديرها لكل مستأجر.
10) مرجع مصغر: كيفية تجميعه معًا
تدفق الطلب
1. Edge (بوابة API): TLS → استخراج «المستأجر _ id» → التحقق من صحة الرمز → تطبيق معدل/حصص → مسارات وضع.
2. المحرك السياسي: السياق «المستأجر/المعرف/الخطة/الميزات» → قرار حول المسار والحدود.
3. الخدمة: التحقق من الحقوق + الملصقات «المستأجر _ id» → العمل مع قاعدة بيانات تحت RLS → ذاكرة التخزين المؤقت مع البادئة.
4. جمع الاستخدامات: عدادات العمليات/البايت → التجميع → الفواتير.
البيانات
المخطط/مصرف التنمية حسب الاستراتيجية (مستوى الصف/لكل مخطط/لكل مصرف إنمائي).
KMS: مفاتيح المستأجر، التناوب، تمزيق التشفير عند الحذف.
الحوسبة
قوائم انتظار مع الأوزان، وحمامات سباحة من العمال لكل مستأجر، وحدود قصوى بالتزامن.
القياس التلقائي بمقاييس لكل مستأجر.
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) قائمة مرجعية قبل البيع
- مصدر واحد للحقيقة 'المستأجر _ id' ؛ في كل مكان يتم رميها وتسجيلها.
- تمكين RLS/ACL في مستوى DB + فحص الخدمة (قفل مزدوج).
- مفاتيح التشفير لكل مستأجر، تمزيق التشفير موثق.
- الحدود/الحصص على الحدود وداخلها ؛ اختبرت رشقات نارية و «انفجار».
- عمال الانتظار العادل و/أو المتفانون من كبار الشخصيات ؛ الحدود القصوى на المتزامنة.
- كل مستأجر SLOs والتنبيهات ؛ لوحات القيادة حسب الجزء.
- جمع الاستعمال غير اختياري ؛ تم التحقق من فوترة rollup.
- يتم تحديد موقع DR/الحوادث للمستأجر ؛ الدمج بأعمال 'المستأجر _ id'.
- تقسم النقدية/جذوع الأشجار حسب المستأجر ؛ PII مقنعة.
- إجراءات الهجرة/الدعم/التصدير قائمة على المستأجرين.
13) أخطاء نموذجية
تم تعطيل RLS/تجاوزه من قبل مستخدم «الخدمة» - خطر التسرب.
محدد عالمي واحد → «جار صاخب» وانتهاك SLO.
مخابئ/قوائم انتظار مشتركة بدون بادئات → تقاطع البيانات.
تحسب الفواتير حسب جذوع الأشجار المفقودة في القمم.
نقص اندماج المستأجر - سقوط السلسلة التعاقبية.
الهجرات «بضربة واحدة» دون القدرة على إيقاف «المستأجر _ هوية» الإشكالية.
14) اختيار الإستراتيجية السريع
المنظمة/VIP: بيانات الصومعة (لكل DB)، والعمال المتفانين، والحصص الصارمة والإقامة.
Mass SaaS: مخطط مشترك + RLS، حدود قوية على الحدود، طابور عادل في الداخل.
الحمل «صاخب/نابض»: «انفجار» كبير + قبعات متزامنة صلبة وضغط خلفي وأولويات وفقًا للخطط.
استنتاج
يتعلق عزل المستأجرين والحدود بالحدود والعدالة. مسح «المستأجر _ المعرف» من خلال المكدس و RLS والتشفير على البيانات، والحد من الحصص والحصص على الحدود وفي الجوهر، والجدول الزمني العادل، وقابلية الملاحظة وتوطين الحوادث - كل هذا معًا يوفر الأمان والجودة المتوقعة والفواتير الشفافة لكل مستأجر، حتى مع نمو النظام الأساسي القوي.