Multi-Tenancy چیست؟ یک نوع معماری است که در آن از منابع مشترک برای چندین مشتری در زمینهی رایانش ابری استفاده میشود. در این معماری، مشتریان خدمات ابری منحصربهفردی را دریافت کرده و محرمانگی دادههایشان کاملاً حفظ میشود.
تعریف Multi-Tenancy
Multi-Tenant Architecture یا معماری چند-مستأجری، بهمعنی استفادهی همزمان چند مشتری از منابع محاسباتی واحد و مشترک ابری (از راه دور و بهصورت آنلاین) است. برای مثال اگر دادههای چند شرکت مختلف، روی یک فضای ذخیرهسازی ابری مشترک ذخیره شود، به آن Multi-Tenancy میگویند. در واقع یک معماری نرمافزاری است که در آن یک نمونه از نرمافزار یا اپلیکیشن به چندین مشتری یا سازمان (به عنوان “مستاجر” یا Tenant) سرویس میدهد. هر مستاجر به دادهها و پیکربندیهای خاص خود دسترسی دارد، اما همه آنها از یک زیرساخت مشترک استفاده میکنند. به عبارت دیگر، یک نرمافزار واحد به طور همزمان به چندین کاربر یا سازمان خدمات میدهد، اما دادههای آنها از هم جدا نگه داشته میشود.
روشهای ایجاد سایت مولتی تننسی
به طور کلی، سه روش اصلی برای ایجاد یک معماری مولتی تننسی وجود دارد:

1.پایگاه داده مجزا (Separate Database):
در این روش، برای هر مستاجر یک پایگاه داده جداگانه ایجاد میشود و امنیت و جداسازی دادهها بسیار بالا است. که به راحتی میتوان برای هر مستاجر تغییرات خاصی در پایگاه داده ایجاد کرد و بک آپ گیری و بازیابی دادهها به صورت جداگانه انجام میشود.
روش پایگاه داده مجزا یک روش قدرتمند و ایمن برای پیادهسازی سیستمهای مولتی تننسی است، به خصوص اگر امنیت و جداسازی دادهها از اهمیت بالایی برخوردار است. با این حال، باید در نظر داشت که این روش هزینهبرتر و پیچیدهتر از سایر روشهاست و نیاز به برنامهریزی دقیق و زیرساخت قوی دارد.
2.پایگاه داده اشتراکی، جدول مجزا (Shared Database, Separate Table):
روش پایگاه داده اشتراکی، جدول مجزا یک رویکرد متعادل در معماری مولتی تننسی است. این روش هزینه کمتری نسبت به روش پایگاه داده مجزا دارد، مدیریت سادهتری را فراهم میکند و جداسازی دادهها را در سطحی قابل قبول تضمین میکند. با این حال، باید به محدودیتهای امنیتی و چالشهای سفارشیسازی آن توجه داشت. این روش برای بسیاری از برنامهها که نیاز به جداسازی کامل داده ها نیستند و هزینه از اهمیت بیشتری برخوردار است بسیار مناسب است. به طور کلی در این روش، همه مستاجران از یک پایگاه داده استفاده میکنند، اما هر مستاجر جداول خاص خود را دارد، مدیریت پایگاه دادهها سادهتر از روش پایگاه داده مجزا است و هزینهها کمتر از روش اول است.
3.پایگاه داده اشتراکی، سطر مجزا (Shared Database, Separate Row):
روش پایگاه داده اشتراکی، سطر مجزا سادهترین و کم هزینهترین روش برای پیادهسازی مولتی تننسی است، اما کمترین امنیت و انعطافپذیری را ارائه میدهد. این روش برای برنامههای کوچک و ساده با نیازهای امنیتی کم مناسب است. با این حال، اگر امنیت دادهها و عملکرد برنامه برای شما مهم است، بهتر است از روشهای دیگر استفاده کنید. در این روش، همه مستاجران از یک پایگاه داده و جداول مشترک استفاده میکنند، اما با یک شناسه مستاجر (Tenant ID) دادههای هر مستاجر مشخص میشوند.سادهترین روش برای مدیریت پایگاه داده است.
کاربردهای Multi-Tenancy چیست؟
توسعهی نرمافزارهای ابری، کاربرد اصلی Multi-Tenancy است. اما در بررسی دقیقتر، مهمترین کاربردهای این فناوری را میتوان در موارد زیر خلاصهی کرد:

پیادهسازی و ارائهی SaaS، PaaS و IaaS:
فناوریهای SaaS (نرمافزار بهعنوان سرویس)، PaaS (پلتفرم بهعنوان سرویس) و IaaS (زیرساخت بهعنوان سرویس)، از مدل Multi-Tenancy استفاده میکند تا بهصورت همزمان به چند مشتری یا سازمان سرویس دهد. برای مثال، سیستمهای مدیریت مشتری (CRM) مانند Salesforce و پلتفرمهای همکاری، مانند Microsoft Office 365 و Google Workspace از این مدل بهرهمند است.
محاسبات ابری خصوصی:
محاسبات ابری یا Cloud Computing میتواند تحت معماری Multi- Tenancy، اما بهصورت خصوصی انجام شود. یعنی تمام مشتریان مختلف یک سرور، زیرمجموعههایی از یک شرکت بزرگ واحد باشد.
نگهداری کانتینرها:
کانتینر واحد اجرایی نرمافزار است و برنامهی کاربردی، کتابخانهها، تنظیمات و… را بستهبندی میکند. هر کانتینر، عملکرد مستقلی دارد. بنابراین چند کانتینر مختلف که توسط مشتریان خدمات ابری ایجاد شده، میتواند روی یک سرویس از نوع Multi-Tenancy میزبانی شود.
پشتیبانی از مجازیسازی (Virtualization):
با معماری چند-مستأجری میتوان مجازیسازی را (برای ایجاد فضاهای مجازی مستقل برای هر مستأجر) پیاده کرد.
میزبانی ابزارهای همکاری:
ابزارهایی مانند Slack، Zoom و Microsoft Teams از Multi-Tenancy بهره میبرد تا سازمانها و تیمهای مختلف از منابع مشترک برای کارهای مستقل خود استفاده کنند.
پلتفرمهای تجارت الکترونیک:
Shopify و Magento بهعنوان پلتفرمهای کسبوکاری، از مدل Multi-Tenancy بهرهمند است تا فروشندگان مختلف بتوانند فروشگاه خود را در یک محیط مشترک مدیریت کنند.

مراحل کلی ایجاد سایت مولتی تننسی
1. برنامه ریزی و طراحی:
✔️انتخاب روش مناسب برای مولتی تننسی با توجه به نیازها و محدودیتها.
✔️طراحی معماری سیستم و پایگاه داده.
✔️تعیین مکانیزم احراز هویت و مجوز دسترسی به دادهها.
✔️برنامهریزی برای مدیریت مستاجران و پیکربندیهای آنها.
2. پیاده سازی:
✔️ایجاد ساختار پایگاه داده با توجه به روش انتخاب شده.
✔️ایجاد لایه میانی (middleware) برای جداسازی دادهها و مدیریت درخواستهای مستاجران.
✔️پیاده سازی منطق کسب و کار با در نظر گرفتن مولتی تننسی.
✔️پیاده سازی مکانیزم ثبت نام و مدیریت مستاجران.
3. تست و استقرار:
✔️تست کامل سیستم برای اطمینان از عملکرد صحیح و جداسازی دادهها.
✔️استقرار سیستم در محیط تولید.
4. مدیریت و نگهداری:
✔️پایش و مانیتورینگ عملکرد سیستم.
✔️مدیریت مستاجران و دادههای آنها.
✔️به روز رسانی و رفع اشکالات سیستم.
به طور کلی Multi-Tenanc یک معماری نرمافزاری که به چندین کاربر یا سازمان (مستأجر) این امکان را میدهد که از منابع مشترک بهصورت همزمان استفاده کنند. جالب آنکه بر اساس گزارشی از Gartner، امروزه حدود 70% از نرمافزارهای سازمانی از این معماری استفاده میکنند. این آمار میتواند نشاندهندهی پذیرش گستردهی این معماری در دنیای فناوری اطلاعات و موفقیت آن در تأمین امنیت دادههای مشتریان است