أنماط التصميم لتطبيقات SaaS متعددة المستأجرين وAzure الذكاء الاصطناعي Search

التطبيق متعدد المستأجرين هو التطبيق الذي يوفر نفس الخدمات والقدرات لأي عدد من المستأجرين الذين لا يمكنهم رؤية أو مشاركة بيانات أي مستأجر آخر. تتناول هذه المقالة استراتيجيات عزل المستأجر للتطبيقات متعددة المستأجرين التي تم إنشاؤها باستخدام Azure الذكاء الاصطناعي Search.

مفاهيم Azure الذكاء الاصطناعي Search

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

خدمة البحث والفهارس والحقول والمستندات

قبل مناقشة أنماط التصميم، من المهم فهم بعض المفاهيم الأساسية.

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

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

قابلية التوسع

يمكن لأي الذكاء الاصطناعي خدمة البحث Azure في مستوى التسعير القياسي أن يتوسع في بعدين: التخزين والتوافر.

  • يمكن إضافة أقسام لزيادة تخزين خدمة البحث.
  • يمكن إضافة النسخ المتماثلة إلى خدمة لزيادة معدل نقل الطلبات التي يمكن لخدمة البحث معالجتها.

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

هناك عدد قليل من مستويات التسعير المختلفة في Azure الذكاء الاصطناعي Search، ولكل من المستويات حدود وحصص مختلفة. بعض هذه الحدود على مستوى الخدمة، وبعضها على مستوى الفهرس، وبعضها على مستوى القسم.

كثافة S3 عالية

في مستوى تسعير Azure الذكاء الاصطناعي Search S3، هناك خيار لوضع الكثافة العالية (HD) المصمم خصيصا للسيناريوهات متعددة المستأجرين. في كثير من الحالات، من الضروري دعم عدد كبير من المستأجرين الأصغر ضمن خدمة واحدة لتحقيق فوائد البساطة وكفاءة التكلفة.

يسمح S3 HD بتعبئة العديد من الفهارس الصغيرة تحت إدارة خدمة بحث واحدة من خلال تداول القدرة على توسيع الفهارس باستخدام الأقسام من أجل القدرة على استضافة المزيد من الفهارس في خدمة واحدة.

تم تصميم خدمة S3 لاستضافة عدد ثابت من الفهارس (بحد أقصى 200) والسماح لكل فهرس بالتحجيم أفقيا عند إضافة أقسام جديدة إلى الخدمة. تؤدي إضافة أقسام إلى خدمات S3 HD إلى زيادة الحد الأقصى لعدد الفهارس التي يمكن للخدمة استضافتها. يبلغ الحد الأقصى المثالي لحجم فهرس S3HD الفردي حوالي 50 إلى 80 غيغابايت، على الرغم من عدم وجود حد للحجم الثابت لكل فهرس يفرضه النظام.

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

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

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

  • تكلفة موارد السحابة: كما هو الحال مع أي تطبيق آخر، يجب أن تظل حلول البرامج تنافسية من حيث التكلفة كمكون لتطبيق متعدد المستأجرين.

  • سهولة العمليات: عند تطوير بنية متعددة المستأجرين، فإن التأثير على عمليات التطبيق وتعقيده هو اعتبار مهم. يحتوي Azure الذكاء الاصطناعي Search على اتفاقية مستوى خدمة بنسبة 99.9٪ .

  • البصمة العالمية: غالبا ما تحتاج التطبيقات متعددة المستأجرين إلى خدمة المستأجرين الذين يتم توزيعهم في جميع أنحاء العالم.

  • قابلية التوسع: يحتاج مطورو التطبيقات إلى النظر في كيفية التوفيق بين الحفاظ على مستوى منخفض بما فيه الكفاية من تعقيد التطبيق وتصميم التطبيق لتوسيع نطاقه مع عدد المستأجرين وحجم بيانات المستأجرين وعبء العمل.

يوفر Azure الذكاء الاصطناعي Search بعض الحدود التي يمكن استخدامها لعزل بيانات المستأجرين وعبء العمل.

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

  • فهرس واحد لكل مستأجر: لكل مستأجر فهرسه الخاص داخل خدمة بحث تتم مشاركتها مع المستأجرين الآخرين.

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

  • مزيج من كليهما: يتم تعيين خدمات مخصصة للمستأجرين الأكبر والأكثر نشاطا بينما يتم تعيين فهارس فردية للمستأجرين الأصغر ضمن الخدمات المشتركة.

الطراز 1: فهرس واحد لكل مستأجر

تصوير لنموذج الفهرس لكل مستأجر

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

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

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

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

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

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

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

الطراز 2: خدمة واحدة لكل مستأجر

تصوير لنموذج الخدمة لكل مستأجر

في بنية الخدمة لكل مستأجر، لكل مستأجر خدمة بحث خاصة به.

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

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

كما توفر الخدمة لكل نموذج مستأجر فائدة نموذج تكلفة ثابت يمكن التنبؤ به. لا يوجد استثمار مقدما في خدمة بحث بأكملها حتى يكون هناك مستأجر لملئها، ولكن التكلفة لكل مستأجر أعلى من نموذج الفهرس لكل مستأجر.

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

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

النموذج 3: مختلط

نمط آخر لنمذجة تعدد المستأجرين هو خلط استراتيجيات الفهرس لكل مستأجر والخدمة لكل مستأجر.

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

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

تحقيق نقاوة أدق

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

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

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

يمكن استخدام هذا الأسلوب لتحقيق وظائف حسابات المستخدمين المنفصلة ومستويات الأذونات المنفصلة وحتى تطبيقات منفصلة تماما.

إشعار

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

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

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