تعدد المستأجرين وذاكرة التخزين المؤقت Azure ل Redis
تستخدم ذاكرة التخزين المؤقت Azure ل Redis بشكل شائع لزيادة أداء الحل الخاص بك، لتقليل الحمل على قاعدة البيانات أو مكونات طبقة البيانات الأخرى، وتقليل مقدار الحالة التي تقوم بتخزينها على عقد الحوسبة. في هذه المقالة، نصف بعض ميزات Azure Cache for Redis المفيدة للحلول متعددة المستأجرين، ثم نقدم ارتباطات إلى الإرشادات التي يمكن أن تساعدك، عندما تخطط لكيفية استخدام Azure Cache ل Redis.
نماذج العزل
عند العمل مع نظام متعدد المستأجرين يستخدم ذاكرة التخزين المؤقت Azure ل Redis، تحتاج إلى اتخاذ قرار بشأن مستوى العزل الذي تريد استخدامه. تدعم ذاكرة التخزين المؤقت Azure ل Redis العديد من نماذج العزل.
يلخص الجدول التالي الاختلافات بين نماذج عزل الإيجار الرئيسية لذاكرة التخزين المؤقت Azure ل Redis:
الاعتبار | ذاكرة التخزين المؤقت المشتركة، قاعدة البيانات المشتركة | ذاكرة التخزين المؤقت وقاعدة البيانات المشتركة، قائمة التحكم بالوصول | ذاكرة التخزين المؤقت المشتركة، قاعدة البيانات لكل مستأجر | ذاكرة التخزين المؤقت لكل مستأجر |
---|---|---|---|---|
عزل البيانات | منخفض. استخدام بنيات بيانات Redis أو بادئات المفاتيح لتحديد بيانات كل مستأجر | عالٍ. يتم عزل البيانات استنادا إلى بادئات المفاتيح | منخفض. يتم فصل البيانات ولكن لا يتم توفير عزل أمني | درجة عالية |
عزل الأداء | منخفض. يشترك جميع المستأجرين في نفس موارد الحوسبة | منخفض. يشترك جميع المستأجرين في نفس موارد الحوسبة | منخفض. يشترك جميع المستأجرين في نفس موارد الحوسبة | درجة عالية |
تعقيد التوزيع | منخفض | منخفض متوسط | متوسط | متوسط-عال |
التعقيد التشغيلي | منخفض | منخفض متوسط | منخفض | متوسط-عال |
تكلفة المورد | منخفض | منخفض | منخفض | مرتفع |
مثال على السيناريو | حل كبير متعدد المستأجرين مع مستوى تطبيق مشترك | حل كبير متعدد المستأجرين مع هويات تطبيق مميزة تصل إلى ذاكرة التخزين المؤقت | ترحيل تطبيق مستأجر واحد ليكون على دراية متعددة المستأجرين | مثيلات التطبيق الفردية لكل مستأجر |
مثيل ذاكرة التخزين المؤقت المشتركة وقاعدة البيانات المشتركة
قد تفكر في نشر ذاكرة تخزين مؤقت واحدة، مع قاعدة بيانات Redis واحدة، واستخدامها لتخزين البيانات المخزنة مؤقتا لجميع المستأجرين. يستخدم هذا الأسلوب بشكل شائع عندما يكون لديك مثيل تطبيق واحد يشاركه جميع المستأجرين.
عند اتباع هذا الأسلوب، يكون التطبيق الخاص بك مسؤولا فقط عن الحفاظ على فصل بيانات المستأجر. يمكنك استخدام بادئات المفاتيح لتمييز البيانات عن المستأجرين المختلفين، ولكن يجب أن يكون التطبيق الخاص بك مجتهدا بشأن الوصول إلى البيانات للمستأجر الذي يعمل معه فقط. بدلا من ذلك، يمكنك التفكير في استخدام بنيات بيانات Redis، مثل المجموعات أو التجزئة، لبيانات كل مستأجر. يدعم كل من هذه النهج أعدادا كبيرة من المفاتيح، حتى يتمكنوا من التوسع إلى العديد من المستأجرين. ومع ذلك، تحتاج إلى إدارة التخويل داخل التطبيق الخاص بك بدلا من داخل ذاكرة التخزين المؤقت.
عند مشاركة مثيل ذاكرة التخزين المؤقت وقاعدة البيانات بين المستأجرين، ضع في اعتبارك أن جميع المستأجرين لديك يشتركون في نفس موارد الحوسبة الأساسية لذاكرة التخزين المؤقت. لذلك، يمكن أن يكون هذا النهج عرضة لمشكلة الجيران الصاخبة. تأكد من اتباع أفضل الممارسات لذاكرة التخزين المؤقت Azure ل Redis لتحقيق الاستخدام الأكثر فعالية لموارد ذاكرة التخزين المؤقت والتخفيف من أي تأثيرات جارة مزعجة. وتشمل أفضل المُمارسات ما يلي:
بالإضافة إلى ذلك، ضع في اعتبارك مراقبة موارد ذاكرة التخزين المؤقت، مثل وحدة المعالجة المركزية والذاكرة. إذا لاحظت ضغط الموارد، ففكر في عوامل التخفيف التالية:
- توسيع نطاق ذاكرة التخزين المؤقت SKU أو الطبقة مع مستويات أعلى من الموارد.
- قم بالتوسيع إلى ذاكرات تخزين مؤقت متعددة عن طريق تقسيم البيانات المخزنة مؤقتا. أحد الخيارات هو التقسيم حسب المستأجر، حيث يستخدم بعض المستأجرين ذاكرة التخزين المؤقت A والبعض الآخر يستخدم ذاكرة التخزين المؤقت B. أو يمكنك التقسيم حسب النظام الفرعي، حيث يقوم جزء واحد من الحل بتخزين البيانات مؤقتا لجميع المستأجرين لتخزين A مؤقتا، ويخزن جزء آخر من الحل في ذاكرة التخزين المؤقت B.
ذاكرة التخزين المؤقت وقاعدة البيانات المشتركة مع قوائم التحكم في الوصول
إذا كان مستوى التطبيق الخاص بك يستخدم هويات مميزة للوصول إلى ذاكرة التخزين المؤقت لكل مستأجر، فاستخدم قوائم التحكم في الوصول إلى Redis. تمكنك قوائم التحكم في الوصول من تقييد الوصول إلى معلومات المستأجرين إلى هويات محددة. يمكنك تحديد البيانات التي يسمح للهوية بالوصول إليها استنادا إلى أسماء المفاتيح أو البادئات. يمكن أن يكون هذا الأسلوب مناسبا عندما يكون لديك مثيلات تطبيق مميزة لكل مستأجر، أو إذا كان لديك تطبيق مشترك يستخدم هويات متعددة للوصول إلى خدمات انتقال البيانات من الخادم استنادا إلى سياق المستأجر.
على غرار نموذج العزل السابق، تعني مشاركة ذاكرة التخزين المؤقت وقاعدة البيانات أنك بحاجة إلى اتخاذ الاحتياطات لتجنب مشكلة الجيران المزعجة.
مثيل ذاكرة التخزين المؤقت المشتركة مع قاعدة بيانات لكل مستأجر
نهج آخر قد تفكر فيه هو نشر مثيل ذاكرة تخزين مؤقت واحدة، ونشر قواعد بيانات Redis الخاصة بالمستأجر داخل المثيل. يوفر هذا النهج درجة من العزلة المنطقية لبيانات كل مستأجر، ولكنه لا يوفر أي عزل للأداء أو حماية ضد الجيران المزعجين.
قد يكون هذا النهج مفيدا لسيناريوهات الترحيل. على سبيل المثال، لنفترض أنك تقوم بتحديث تطبيق مستأجر واحد غير مصمم للعمل مع عدة مستأجرين، وقمت بتحويله تدريجيا إلى متعدد المستأجرين عن طريق تضمين سياق المستأجر في جميع الطلبات. يمكنك الحصول على بعض كفاءات التكلفة باستخدام ذاكرة تخزين مؤقت مشتركة واحدة، ولا تحتاج إلى تحديث منطق التطبيق لاستخدام بادئات مفتاح المستأجر أو بنيات البيانات الخاصة بالمستأجر.
تفرض ذاكرة التخزين المؤقت Azure ل Redis حدودا على عدد قواعد البيانات التي يمكن إنشاؤها على ذاكرة تخزين مؤقت واحدة. قبل تنفيذ هذا النهج، ضع في اعتبارك عدد المستأجرين الذين تتوقع زيادة حجمهم.
بالإضافة إلى ذلك، لا يوفر هذا النهج أي فوائد لعزل الأمان للبيانات. في Azure Cache for Redis، يتم تنفيذ المصادقة والتخويل على مستوى مثيل ذاكرة التخزين المؤقت.
إشعار
يدعم Azure Cache for Redis قواعد بيانات متعددة على مستويات معينة، ولا يدعم قواعد بيانات متعددة عند استخدام مثيلات مجمعة.
مثيل ذاكرة التخزين المؤقت لكل مستأجر
قد تفكر في نشر مثيل منفصل من Azure Cache ل Redis لكل مستأجر. لا يوجد حد لعدد ذاكرات التخزين المؤقت التي يمكنك نشرها ضمن اشتراك Azure واحد. يوفر هذا النهج أقوى مستوى من عزل البيانات والأداء.
ومع ذلك، تتم فوترة كل ذاكرة تخزين مؤقت كمورد Azure منفصل، لذلك عند نموك إلى أعداد كبيرة من المستأجرين، قد تتحمل تكلفة أكثر. علاوة على ذلك، غالبا ما لا يستخدم هذا الأسلوب موارد كل ذاكرة تخزين مؤقت بكفاءة، لأن كل Azure Cache لمثيل Redis يدعم بشكل عام كميات كبيرة من الطلبات. من الأفضل مراعاة نهج العزل هذا فقط إذا كان لديك متطلبات صارمة للبيانات أو عزل الأداء.
ميزات Azure Cache for Redis التي تدعم تعدد المستأجرين
قوائم التحكم بالوصول
يوفر Azure Cache for Redis نظاما قويا للتحكم في الوصول استنادا إلى الدور، والذي يمكنك من إنشاء نهج شاملة للوصول إلى البيانات لفرض قواعد المصادقة والتخويل. يمكن تحديد هذه القواعد على مستويات مختلفة من النقاوة، بما في ذلك السماح للمستخدم بالوصول إلى مفاتيح ذاكرة التخزين المؤقت التي تتبع نمطا معينا. باستخدام الأنماط الرئيسية، يمكنك مشاركة مثيل ذاكرة تخزين مؤقت واحدة وقاعدة بيانات بين مستأجرين متعددين، لكل منها حسابات المستخدمين الخاصة بهم. يفرض Azure Cache for Redis عزل المستأجر للتأكد من أن المستخدم يمكنه فقط الوصول إلى مجموعة المفاتيح الخاصة به التي تتبع النمط.
على سبيل المثال، افترض أن لديك مستأجرا يسمى Fabrikam. يجب أن يكون مستوى التطبيق الخاص بك قادرا فقط على الوصول إلى بيانات ذاكرة التخزين المؤقت المتعلقة ب Fabrikam، وليس من المستأجرين الآخرين. يمكنك تحديد نهج وصول مخصص يسمح بقراءة وتعيين جميع مفاتيح ذاكرة التخزين المؤقت التي تبدأ ب Fabrikam
:
+@read +set ~Fabrikam*
يمكنك بعد ذلك تعيين النهج إلى هوية Microsoft Entra التي يستخدمها مثيل تطبيق Fabrikam. بعد تكوين ذاكرة التخزين المؤقت، يمكن لمستخدم Fabrikam الوصول إلى المفاتيح المسماة FabrikamData1
و FabrikamUserDetails
، ولكن ليس ContosoData1
.
النسخ الجغرافي النشط
يجب توزيع العديد من الحلول متعددة المستأجرين جغرافيا. يمكنك مشاركة طبقة تطبيق موزعة عالميا، مع قراءة مثيلات التطبيق الخاص بك من ذاكرة التخزين المؤقت القريبة والكتابة إليها للحفاظ على الأداء المقبول. يدعم مستوى المؤسسة في Azure Cache for Redis ربط ذاكرات تخزين مؤقت متعددة معا عبر المناطق، في تكوين نشط-نشط.
المساهمون
تحتفظ Microsoft بهذه المقالة. وهي مكتوبة في الأصل من قبل المساهمين التاليين.
الكتاب الرئيسيون:
مساهمون آخرون:
- كارل داكوستا | مدير هندسة البرامج الرئيسي، ذاكرة التخزين المؤقت Azure ل Redis
- كايل تيغاردن | مدير أول للبرنامج، ذاكرة التخزين المؤقت Azure ل Redis
- Arsen Vladimirskiy | مهندس العملاء الرئيسي، FastTrack for Azure
لمشاهدة ملفات تعريف LinkedIn غير العامة، سجل الدخول إلى LinkedIn.