تعدد الإيجارات وAzure Cosmos DB

في هذه الصفحة، نصف بعض ميزات Azure Cosmos DB المفيدة عندما تعمل مع أنظمة متعددة المستأجرين. نربط أيضا بالإرشادات والأمثلة حول كيفية استخدام Azure Cosmos DB في حل متعدد المستأجرين.

ميزات Azure Cosmos DB التي تدعم التشغيل المتعدد

التقسيم

باستخدام الأقسام مع حاويات Azure Cosmos DB، يمكنك إنشاء حاويات تتم مشاركتها عبر مستأجرين متعددين. عادةً ما تستخدم معرف المستأجر كمفتاح قسم، ولكن يمكنك أيضاً التفكير في استخدام مفاتيح أقسام متعددة لمستأجر واحد. تنفذ إستراتيجية التقسيم جيدة التخطيط نمط التقسيمبفاعلية. بفضل الحاويات الكبيرة، تنشر Azure Cosmos DB المستأجرين عبر عقد فعلية متعددة لتحقيق درجة عالية من النطاق.

نوصي باستكشاف استخدام مفاتيح الأقسام الهرمية لتحسين أداء الحل متعدد المستأجرين. تمكنك مفاتيح الأقسام الهرمية من إنشاء مفتاح قسم يتضمن قيما متعددة. على سبيل المثال، قد تستخدم مفتاح قسم هرمي يتضمن معرف المستأجر ونوع البيانات التي تقوم بتخزينها. يسمح لك هذا الأسلوب بالتوسع إلى ما بعد حد القسم المنطقي البالغ 20 جيجابايت لكل قيمة مفتاح قسم.

مزيد من المعلومات:

إدارة وحدات الطلب

يستند نموذج تسعير Azure Cosmos DB إلى عدد وحدات الطلب في الثانية التي تقوم بتوفيرها أو استهلاكها. وحدة الطلب هي عبارة عن تجريد منطقي لتكلفة عملية أو استعلام قاعدة البيانات. عادة، تقوم بتوفير عدد محدد من وحدات الطلب في الثانية لحمل العمل الخاص بك، والذي يشار إليه باسم معدل النقل. يوفر Azure Cosmos DB العديد من الخيارات لكيفية توفير معدل النقل. في بيئة متعددة المستأجرين، يؤثر التحديد الذي تقوم به على أداء موارد Azure Cosmos DB وسعرها.

يتضمن نموذج إيجار واحد ل Azure Cosmos DB نشر حاويات منفصلة لكل مستأجر داخل قاعدة بيانات مشتركة. يمكنك Azure Cosmos DB من توفير وحدات الطلب لقاعدة بيانات، وتشارك جميع الحاويات وحدات الطلب. إذا لم تتداخل أحمال عمل المستأجر عادة، يمكن أن يساعد هذا النهج في تقليل تكاليف التشغيل الخاصة بك. ومع ذلك، هذا الأسلوب عرضة لمشكلة الجيران الصاخبة لأن حاوية المستأجر الواحد قد تستهلك كمية غير متناسبة من وحدات الطلب المشتركة المقدمة. للتخفيف من هذه المشكلة، حدد أولا المستأجرين صاخبة. بعد ذلك، يمكنك اختياريا تعيين معدل النقل المقدم على حاوية معينة. تستمر الحاويات الأخرى في قاعدة البيانات في مشاركة إنتاجيتها، لكن المستأجر الصاخب يستهلك معدل النقل المخصص الخاصة به.

يوفر Azure Cosmos DB أيضا مستوى بلا خادم، وهو مناسب لأحمال العمل ذات نسبة استخدام الشبكة المتقطعة أو غير المتوقعة. بدلاً من ذلك، يمكّنك التحجيم التلقائي من تكوين النُهج لتحديد قياس معدل النقل المتوفرة. بالإضافة إلى ذلك، يمكنك الاستفادة من سعة اندفاع Azure Cosmos DB، ما يزيد من استخدام سعة معدل النقل المتوفرة، والتي كان معدلها محدودا بخلاف ذلك. في حل متعدد المستأجرين، يمكنك الجمع بين كل هذه الأساليب لدعم أنواع مختلفة من المستأجرين.

إشعار

عند التخطيط لتكوين Azure Cosmos DB، تأكد من مراعاة حصص الخدمة وحدودها.

لمراقبة التكاليف المرتبطة بكل مستأجر وإدارتها، تتضمن كل عملية تستخدم Azure Cosmos DB API وحدات الطلب المستهلكة. يمكنك استخدام هذه المعلومات لتجميع ومقارنة وحدات الطلب الفعلية التي يستهلكها كل مستأجر، ويمكنك بعد ذلك تحديد المستأجرين بخصائص أداء مختلفة.

مزيد من المعلومات:

المفاتيح التي يديرها العميل

قد يطلب بعض المستأجرين استخدام مفاتيح التشفير الخاصة بهم. يوفر Azure Cosmos DB ميزة مفتاح يديرها العميل. يتم تطبيق هذه الميزة على مستوى حساب Azure Cosmos DB، لذلك يجب نشر المستأجرين الذين يحتاجون إلى مفاتيح التشفير الخاصة بهم باستخدام حسابات Azure Cosmos DB المخصصة.

مزيد من المعلومات:

نماذج العزل

عند العمل مع نظام متعدد المستأجرين يستخدم Azure Cosmos DB، تحتاج إلى اتخاذ قرار بشأن مستوى العزل الذي تريد استخدامه. تشير التجارة إلى الأعمال (B2B) إلى البيع إلى شركة. يشير Business-to-consumer (B2C) إلى البيع مباشرة إلى عميل فردي يستخدم المنتج أو الخدمة. يدعم Azure Cosmos DB العديد من نماذج العزل:

الحاجة إلى حمل العمل مفتاح القسم لكل مستأجر الحاوية لكل مستأجر (معدل النقل المشترك) حاوية لكل مستأجر (معدل نقل مخصص) قاعدة بيانات لكل مستأجر حساب قاعدة البيانات لكل مستأجر
الاستعلامات عبر المستأجرين سهل (تعمل الحاوية كحد للاستعلامات) محدد محدد محدد محدد
كثافة المستأجر مرتفع (أقل تكلفة لكل مستأجر) متوسط منخفض منخفض منخفض
حذف بيانات المستأجر محدد سهل (إسقاط الحاوية عند مغادرة المستأجر) سهل (إسقاط الحاوية عند مغادرة المستأجر) سهل (إسقاط قاعدة البيانات عند مغادرة المستأجر) سهل (إسقاط قاعدة البيانات عند مغادرة المستأجر)
عزل أمان الوصول إلى البيانات يجب تنفيذها داخل التطبيق التحكم في الوصول استنادا إلى الدور في الحاوية التحكم في الوصول استنادا إلى الدور في الحاوية التحكم في الوصول استنادا إلى الدور في قاعدة البيانات RBAC
النسخ الجغرافي المتماثل النسخ المتماثل الجغرافي لكل مستأجر غير ممكن تجميع المستأجرين داخل حسابات قاعدة البيانات استنادا إلى المتطلبات تجميع المستأجرين داخل حسابات قاعدة البيانات استنادا إلى المتطلبات تجميع المستأجرين داخل حسابات قاعدة البيانات استنادا إلى المتطلبات تجميع المستأجرين داخل حسابات قاعدة البيانات استنادا إلى المتطلبات
منع الجيران المزعجين بلا بلا ‏‏نعم‬ نعم ‏‏نعم‬
زمن انتقال إنشاء مستأجر جديد فوري سريع سريع متوسط بطيء
مزايا نمذجة البيانات بلا موقع الكيان المشترك موقع الكيان المشترك حاويات متعددة لنمذجة كيانات المستأجر حاويات وقواعد بيانات متعددة لنمذجة المستأجرين
مفتاح التشفير نفس الشيء لجميع المستأجرين نفس الشيء لجميع المستأجرين نفس الشيء لجميع المستأجرين نفس الشيء لجميع المستأجرين المفتاح المدار من قبل العميل لكل مستأجر
متطلبات معدل النقل >0 RUs لكل مستأجر >100 RUs لكل مستأجر >100 وحدة طلب لكل مستأجر (مع مقياس تلقائي فقط، وإلا >400 وحدة طلب لكل مستأجر) >400 RUs لكل مستأجر >400 RUs لكل مستأجر
مثال على حالة (حالات) الاستخدام تطبيقات B2C عرض قياسي لتطبيقات B2B عرض مميز لتطبيقات B2B عرض مميز لتطبيقات B2B عرض مميز لتطبيقات B2B

مفتاح القسم لكل مستأجر

عند استخدام حاوية واحدة لعدة مستأجرين، يمكنك الاستفادة من دعم تقسيم Azure Cosmos DB. باستخدام مفاتيح أقسام منفصلة لكل مستأجر، يمكنك بسهولة الاستعلام عن البيانات الخاصة بمستأجر واحد. يمكنك أيضاً الاستعلام عبر مستأجرين متعددين، حتى لو كانوا في أقسام منفصلة. ومع ذلك، فإن الاستعلامات عبر الأقسام لها تكلفة وحدة طلب أعلى (RU) من استعلامات القسم الواحد.

يميل هذا الأسلوب إلى العمل بشكل جيد عندما تكون كمية البيانات المخزنة لكل مستأجر صغيرة. يمكن أن يكون اختياراً جيداً لإنشاء نموذج أسعار يتضمن مستوى مجانياً، ولحلول من شركة إلى مستهلك (B2C). بشكل عام، باستخدام الحاويات المشتركة، يمكنك تحقيق أعلى كثافة للمستأجرين وبالتالي أقل سعر لكل مستأجر.

من المهم مراعاة معدل النقل الحاوية الخاصة بك. سيشترك جميع المستأجرين في معدل نقل الحاوية، لذلك يمكن أن تتسبب مشكلة Noisy Neighbor في تحديات في الأداء إذا كان لدى المستأجرين أعباء عمل عالية أو متداخلة. يمكن أحياناً التخفيف من هذه المشكلة عن طريق تجميع مجموعات فرعية من المستأجرين في حاويات مختلفة، والتأكد من أن لكل مجموعة مستأجرين أنماط استخدام متوافقة. بدلا من ذلك، يمكنك التفكير في نموذج مختلط متعدد المستأجرين ومستأجر واحد. قم بتجميع المستأجرين الأصغر في حاويات مقسمة مشتركة، ومنح العملاء الكبار حاويات مخصصة. أيضا، هناك ميزات يمكن أن تساعد في التحكم في مشكلة الجوار المزعجة عند تصميم المستأجر حسب القسم، مثل إعادة تخصيص معدل النقل وسعة الاندفاع والتحكم في معدل النقل في Java SDK.

من المهم أيضاً مراعاة كمية البيانات التي تخزنها في كل قسم منطقي. يسمح Azure Cosmos DB لكل قسم منطقي بالنمو حتى 20 غيغابايت. إذا كان لديك مستأجر واحد يحتاج إلى تخزين أكثر من 20 غيغابايت من البيانات، ففكر في نشر البيانات عبر أقسام منطقية متعددة. على سبيل المثال، بدلاً من استخدام مفتاح قسم واحد Contoso، يمكنك تغيير مفاتيح الأقسام عن طريق إنشاء مفاتيح أقسام متعددة للمستأجر، مثل Contoso1 وContoso2وما إلى ذلك. عند الاستعلام عن بيانات المستأجر، يمكنك استخدام عبارة WHERE IN لمطابقة جميع مفاتيح الأقسام. يمكن أيضا استخدام مفاتيح الأقسام الهرمية لدعم المستأجرين الكبار، مع تخزين أكبر من 20 غيغابايت، دون الحاجة إلى استخدام مفاتيح الأقسام الاصطناعية أو قيم مفتاح القسم المتعددة لكل مستأجر.

ضع في اعتبارك الجوانب التشغيلية للحل الخاص بك، والمراحل المختلفة لدورة حياة المستأجر. على سبيل المثال، عندما ينتقل المستأجر إلى مستوى تسعير مخصص، من المحتمل أن تحتاج إلى نقل البيانات إلى حاوية مختلفة. عندما يتم إلغاء حق الوصول للمستأجر، فأنت بحاجة إلى تشغيل استعلام حذف على الحاوية لإزالة البيانات، وبالنسبة للمستأجرين الكبار، قد يستهلك هذا الاستعلام قدراً كبيراً من معدل النقل أثناء تنفيذه.

حاوية لكل مستأجر

يمكنك توفير حاويات مخصصة لكل مستأجر. تعمل الحاويات المخصصة بشكل جيد عندما يمكن دمج البيانات التي تقوم بتخزينها للمستأجر في حاوية واحدة. يوفر هذا النموذج عزل أداء أكبر من نموذج مفتاح القسم لكل مستأجر أعلاه، ويوفر أيضا عزل أمان الوصول إلى البيانات بشكل أكبر عبر Azure RBAC.

عند استخدام حاوية لكل مستأجر، يمكنك التفكير في مشاركة معدل النقل مع مستأجرين آخرين من خلال توفير معدل نقل على مستوى قاعدة البيانات. ضع في اعتبارك القيود والحدود حول الحد الأدنى لعدد وحدات الطلب لقاعدة البيانات والحد الأقصى لعدد الحاويات في قاعدة البيانات. ضع في اعتبارك أيضاً ما إذا كان المستأجرين يطلبون مستوى أداء مضموناً، وما إذا كانوا عرضة لمشكلة Noisy Neighbor. عند مشاركة معدل النقل على مستوى قاعدة البيانات، يجب أن يكون حمل العمل أو التخزين عبر جميع الحاويات موحدا نسبيا. وإلا قد يكون لديك مشكلة جار صاخبة، إذا كان هناك مستأجر واحد أو أكثر من المستأجرين الكبار. إذا لزم الأمر، فخطط لتجميع هؤلاء المستأجرين في قواعد بيانات مختلفة تستند إلى أنماط حمل العمل.

بدلاً من ذلك، يمكنك توفير معدل نقل مخصص لكل حاوية. يعمل هذا النهج بشكل جيد للمستأجرين الأكبر حجما والمستأجرين المعرضين لخطر مشكلة الجيران المزعجين. ومع ذلك، فإن معدل النقل الأساسي لكل مستأجر أعلى، لذلك ضع في اعتبارك الحد الأدنى من المتطلبات والآثار المترتبة على التكلفة لهذا النموذج.

إذا كان نموذج بيانات المستأجر يتطلب أكثر من كيان واحد، طالما أن جميع الكيانات يمكنها مشاركة نفس مفتاح القسم، يمكن تجميعها في نفس الحاوية. ومع ذلك، إذا كان نموذج بيانات المستأجر أكثر تعقيدا، ويتطلب كيانات لا يمكنها مشاركة مفتاح القسم نفسه، ففكر في نماذج قاعدة البيانات لكل مستأجر أو حساب قاعدة بيانات لكل مستأجر أدناه. ألق نظرة على مقالتنا حول كيفية نمذجة البيانات وتقسيمها على Azure Cosmos DB باستخدام مثال في العالم الحقيقي لمزيد من الإرشادات.

تكون إدارة دورة الحياة أبسط بشكل عام عندما تكون الحاويات مخصصة للمستأجرين. يمكنك نقل المستأجرين بسهولة بين نماذج معدل نقل مشتركة ومخصصة، وعند إلغاء حق الوصول للمستأجر، يمكنك حذف الحاوية بسرعة.

قاعدة بيانات لكل مستأجر

يمكنك توفير قواعد البيانات لكل مستأجر، في نفس حساب قاعدة البيانات. مثل نموذج الحاوية لكل مستأجر أعلاه، يوفر هذا النموذج عزل أداء أكبر من نموذج مفتاح القسم لكل مستأجر، ويوفر أيضا عزل أمان وصول أكبر إلى البيانات عبر Azure RBAC.

مثل نموذج الحساب لكل مستأجر أدناه، يمنح هذا النهج أعلى مستوى من عزل الأداء، ولكنه يوفر أقل كثافة للمستأجر. ومع ذلك، فإن هذا الخيار هو الأفضل عندما يتطلب كل مستأجر نموذج بيانات أكثر تعقيدا مما هو ممكن في نموذج الحاوية لكل مستأجر. أو، يجب اتباع هذا النهج عندما يكون من متطلبات إنشاء مستأجر جديد أن يكون سريعا و/أو خاليا من أي نفقات عامة لإنشاء حسابات المستأجر مقدما. قد يكون الأمر كذلك، بالنسبة لإطار عمل تطوير البرامج المحدد المستخدم، أن قاعدة البيانات لكل مستأجر هي المستوى الوحيد لعزل الأداء المعترف به في هذا الإطار. لا يتم دعم عزل مستوى الكيان (الحاوية) وتحديد موقع الكيان عادة في مثل هذه الأطر.

حساب قاعدة البيانات لكل مستأجر

يمكنك Azure Cosmos DB من توفير حسابات قاعدة بيانات منفصلة لكل مستأجر، ما يوفر أعلى مستوى من العزل، ولكن أقل كثافة. مثل نماذج الحاوية لكل مستأجر وقاعدة بيانات لكل مستأجر أعلاه، يوفر هذا النموذج عزل أداء أكبر من نموذج مفتاح القسم لكل مستأجر. كما يوفر المزيد من عزل أمان الوصول إلى البيانات عبر Azure RBAC. بالإضافة إلى ذلك، يوفر هذا النموذج عزل أمان تشفير قاعدة البيانات على مستوى المستأجر عبر المفاتيح المدارة من قبل العميل.

حساب قاعدة بيانات واحد مخصص للمستأجر، ما يعني أنه لا يخضع لمشكلة الجوار المزعجة. يمكنك تكوين موقع حساب قاعدة البيانات وفقا لمتطلبات المستأجر. يمكنك أيضا ضبط تكوين ميزات Azure Cosmos DB، مثل النسخ المتماثل الجغرافي ومفاتيح التشفير التي يديرها العميل، لتناسب متطلبات كل مستأجر. عند استخدام حساب Azure Cosmos DB مخصص لكل مستأجر، ضع في اعتبارك الحد الأقصى لعدد حسابات Azure Cosmos DB لكل اشتراك Azure.

إذا كنت تستخدم هذا النموذج، يجب أن تفكر في مدى سرعة تطبيقك في أن يكون قادرا على إنشاء مستأجرين جدد. قد يستغرق إنشاء الحساب في Azure Cosmos DB بضع دقائق، لذلك قد تحتاج إلى إنشاء حسابات مقدما. إذا لم يكن هذا الأسلوب ممكنا، ففكر في نموذج قاعدة البيانات لكل مستأجر.

إذا سمحت للمستأجرين بالترحيل من حساب مشترك إلى حساب Azure Cosmos DB مخصص، ففكر في نهج الترحيل الذي ستستخدمه لنقل بيانات المستأجر بين الحسابات القديمة والجديدة.

النُهج المختلطة

يمكنك التفكير في مجموعة من الأساليب المذكورة أعلاه لتناسب متطلبات المستأجرين المختلفة ونموذج الأسعار الخاص بك. على سبيل المثال:

  • قدم جميع عملاء الإصدار التجريبي المجاني داخل حاوية مشتركة، واستخدم معرف المستأجر أو مفتاح قسم المفتاح الاصطناعي.
  • تقديم مستوى Bronze مدفوع بتوزيع حاوية مخصصة لكل مستأجر، ولكن مع معدل نقل مشترك على قاعدة بيانات.
  • اعرض مستوى Silver أعلى يوفر معدل النقل مخصصة لحاوية المستأجر.
  • قدم مستوى Gold الأعلى، ووفر حساب قاعدة بيانات مخصصاً للمستأجر، والذي يسمح أيضاً للمستأجرين بتحديد المنطقة الجغرافية لتوزيعهم.

المساهمون

تحتفظ Microsoft بهذه المقالة. وهي مكتوبة في الأصل من قبل المساهمين التاليين.

الكتاب الرئيسيون:

مساهمون آخرون:

لمشاهدة ملفات تعريف LinkedIn غير العامة، سجل الدخول إلى LinkedIn.

الخطوات التالية

راجع أساليب التخزين والبيانات للشركات المتعددة الاستئجار.

تعرف على المزيد حول تعدد المستأجرين وAzure Cosmos DB:

راجع بعض سيناريوهاتنا المعمارية الأخرى في Cosmos DB: