الانتقال إلى المحتوى
akitoo
مقالات تقنية

المعمارية متعددة المستأجرين في SaaS: ثلاث مقاربات ومعايير الاختيار

كيف تُفصل بيانات كل عميل عن غيره في منتج SaaS؟ مقارنة بين مقاربات المخطط المشترك والمخطط المنفصل وقاعدة البيانات المنفصلة من حيث العزل والتكلفة والتشغيل.

Alpمدة القراءة: 2 د

في منتجات SaaS يخدم تطبيق واحد عددًا كبيرًا من العملاء. يُسمّى كل عميل "مستأجرًا" (tenant) ويجب ألا يرى بياناته أحد سواه. وكيفية فصل بيانات المستأجرين قرار معماري يؤثر لسنوات في تكلفة المنتج وأمانه وعبء تشغيله.

ثلاث مقاربات أساسية

1. قاعدة بيانات مشتركة ومخطط مشترك

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

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

2. قاعدة بيانات مشتركة ومخطط منفصل لكل مستأجر

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

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

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

المقارنة

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

ما الذي يحدد الاختيار؟

  • نوعية العملاء: هل ستخدمون آلاف الشركات الصغيرة أم عددًا قليلًا من المؤسسات الكبيرة؟
  • متطلبات العقود والتشريعات: هل يشترط العملاء حفظ بياناتهم منفصلة ماديًا؟
  • مستوى التخصيص: هل سيغيّر المستأجرون الإعدادات فقط، أم سيطلبون حقولًا وسير عمل خاصة بهم؟
  • قدرة الفريق: هل لديكم القدرة التشغيلية على مراقبة عدد كبير من قواعد البيانات وتحديثها؟

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

يمكن أيضًا استخدام المقاربات معًا. ومن الترتيبات الشائعة حفظ عملاء الباقات المعيارية في مخطط مشترك وتقديم قاعدة بيانات منفصلة للعملاء المؤسسيين. ولكي يكون ذلك ممكنًا يجب أن تُحمَل معلومة المستأجر في كل طبقة من طبقات التطبيق منذ البداية.

ما يجب التفكير فيه خارج قاعدة البيانات

  • الهوية والصلاحيات: يجب أن يُعرف على وجه اليقين المستأجر الذي تنتمي إليه كل جلسة؛ وإذا كان المستخدمون يستطيعون الانضمام إلى أكثر من مستأجر، فيجب تصميم الانتقال بينها بصورة آمنة.
  • تقاسم الموارد: يجب ألا يُبطئ الاستخدام الكثيف من مستأجر واحد الآخرين. ولهذا الغرض تُستخدم حدود الطلبات وحصص لكل مستأجر للمهام التي تعمل في الخلفية.
  • الملفات والتخزين المؤقت: يجب تحقيق العزل لا في قاعدة البيانات وحدها، بل في تخزين الملفات والتخزين المؤقت وفهرس البحث أيضًا.
  • المراقبة: يجب أن تتضمن سجلات الأخطاء والأداء معلومة المستأجر؛ وإلا بقي سؤال "أي عميل تأثر؟" بلا جواب.
المخطط المشترك هو البداية الصحيحة لمعظم منتجات SaaS؛ والمهم أن يُصمَّم على نحو لا يمنع الانتقال إلى قاعدة بيانات منفصلة مستقبلًا.

للتخطيط معًا لمعمارية منتجكم، يمكنكم الاطلاع على خدمتنا في تطوير منتجات SaaS.

المزيد

محتوى ذو صلة

مقالات تقنية

تطبيق ويب أم تطبيق جوال أم PWA: أيها ومتى؟

الحاجة نفسها يمكن تلبيتها بتطبيق ويب يعمل في المتصفح، ويمكن تلبيتها أيضًا بتطبيق جوال يُنزَّل من المتجر. نقاط القوة والضعف في المقاربات الثلاث ومعايير الاختيار.

مقالات تقنية

ما هو تكامل API؟ الطرق وما يجب الانتباه إليه

كيف تتخاطب الأنظمة فيما بينها؟ مقاربات الطلب اللحظي وWebhook والنقل على دفعات وطابور الرسائل؛ والمسائل التي يجب التفكير فيها منذ البداية من أجل تكامل موثوق.

تواصل معنا

هل لديكم فكرة؟لنحوّلها معًا إلى واقع.

لنتحدث عن مشروعكم
لنتحدث عن مشروعكم