معماری multi-tenant یا multi-tenancy یک معماری نرم افزار است که در آن چند نمونه از یک برنامه روی یک سرور فیزیکی اجرا می شوند تا آن سرور بتواند به چندین مستاجر (tenant) خدمات ارائه کند.
Tenant واژه ای است برای توصیف گروهی از کاربران یا نرم افزار ها که همگی به یک منبع سخت افزاری دسترسی مشترک دارند. چندیدن tenant یا مستاجر همگی از یک ram و cpu در سرور استفاده میکنند. در مقابل multi-tenancy اصطلاح single-tenancy وجود دارد که در آن، سرور تنها یک نمونه از برنامه را اجرا می کند.
چند اجاره معماری است که در آن یک نمونه از یک برنامه نرمافزاری به چندین مشتری خدمات ارائه میدهد. به هر مشتری مستأجر گفته میشود. میتوان به مستأجران این امکان را داد که برخی از بخشهای برنامه مانند رنگ رابط کاربری یا قوانین تجاری را سفارشی کنند، اما نمیتوانند کد برنامه را سفارشی کنند.
در یک معماری چند مستأجر، چندین نمونه از یک برنامه در یک محیط مشترک کار میکنند. این معماری قادر به کار است زیرا هر مستأجر از نظر فیزیکی یکپارچه است اما از نظر منطقی از هم جداشده است. این بدان معناست که یک نمونه از نرمافزار بر روی یک سرور اجرا میشود و سپس به چندین مستأجر خدمات ارائه میدهد. به این ترتیب، یک برنامه نرمافزاری در یک معماری چند مستأجر میتواند یک نمونه اختصاصی از پیکربندیها، دادهها، مدیریت کاربر و سایر ویژگیها را به اشتراک بگذارد.
برنامههای چند اجارهای میتوانند همان کاربران، نمایشگرها، قوانین و طرحوارههای پایگاه داده را به اشتراک بگذارند. کاربران میتوانند قوانین را تا حدی و طرحوارههای پایگاه داده را سفارشی کنند.
چرا چند اجارهای مهم است؟
چند اجارهای یک ایده قدیمی است و ریشه در معماریهای اصلی کلاسیک دارد که در آن بسیاری از برنامهها و کاربران یک پلت فرم سختافزاری محاسباتی مشترک را به اشتراک میگذارند. با معرفی مجدد و پذیرش گسترده مجازیسازی مدرن به کمک سختافزار، توانایی به اشتراکگذاری سختافزار در میان چندین نمونه نرمافزاری – مانند ماشینهای مجازی (VM) و برنامههای کاربردی آنها – تأکید جدیدی بر قابلیتهای چند اجارهای داشت. این تکنیک در مراکز داده محلی و زیرساختهای میزبانیشده که معمولاً با مکانیابی و سایر خدمات فناوری اطلاعات مشترک مرتبط هستند محبوبیت پیدا کرد – همه به بسیاری از کاربران امکان میدهد زیرساختهای سختافزاری محدود یا مشترک را به اشتراک بگذارند.
اخیراً، چند اجارهای چشمگیرترین پذیرش خود را با رایانش ابری دیده است. معماریهای چند مستأجر هم در محیطهای ابر عمومی و هم در محیطهای ابری خصوصی یافت میشوند و امکان جدا کردن دادههای هر مستأجر از سایر مستأجران را فراهم میکنند. به عنوان مثال، در یک ابر عمومی چند مستأجر، سرورها یکسان در یک محیط میزبانیشده برای میزبانی چندین کاربر استفاده میشوند. به هر کاربر یک فضای منطقی جداگانه و ایدئال امن در آن سرورها داده میشود تا برنامهها را اجرا کند و دادهها را ذخیره کند.
چند اجارهای همچنین برای مقیاسپذیری ابرهای عمومی و خصوصی مهم است و به تبدیل چند اجاره به یک استاندارد کمک کرده است. معماری چند مستأجر همچنین میتواند به ارائه بازگشت سرمایه بهتر برای سازمانها و همچنین تسریع سرعت تعمیر و نگهداری و بهروزرسانی برای مستأجران کمک کند.
انواع معماری چند مستأجر
سه نوع اصلی مدل چند اجارهای وجود دارد که همگی دارای سطوح مختلف پیچیدگی و هزینه هستند. هر مدل بهطور سنتی ازنظر کاربرد و پایگاه داده – دادههای مورداستفاده توسط برنامه – روابط موردبحث قرار میگیرد.
۱. تک برنامه، پایگاه داده واحد
طرحواره پایگاه داده واحد و مشترک یک مدل چند اجارهای با یک پایگاه داده چند مستأجر است. این سادهترین شکل از بین سه نوع مدل است و به دلیل استفاده از منابع مشترک، هزینه نسبتاً پایینی برای مستأجران دارد. این فرم از یک برنامه و نمونه پایگاه داده برای میزبانی چندین مستأجر همزمان و ذخیره دادهها استفاده میکند. استفاده از یک طرحواره پایگاه داده واحد و مشترک، مقیاس بندی آسانتر را امکانپذیر میکند. بااینحال، هزینههای عملیاتی میتواند بالاتر باشد و اثرات همسایه پرسروصدا بهطور بالقوه میتواند بر عملکرد تأثیر بگذارد.
۲. تک برنامه، پایگاه داده چندگانه
این معماری چند مستأجر شامل استفاده از یک پایگاه داده واحد با طرحوارههای متعدد است. این سیستم مستأجر از یک نمونه برنامه واحد با پایگاه دادههای جداگانه برای هر مستأجر استفاده میکند. علاوه بر این، مقیاسبندی این معماری دشوارتر است و با هر پایگاه داده هزینه بالاتر و سربار بیشتری دارد. اینیک معماری ارزشمند است که دادههای مستأجران مختلف باید متفاوت رفتار شوند – مانند اینکه آنها باید مقررات متفاوتی را در هر منطقه جغرافیایی طی کنند. پایگاههای داده جداگانه همچنین به کاهش اثرات بالقوه همسایه پرسروصدا کمک میکنند.
این نوع معماری چند مستأجر میزبان دادهها در چندین پایگاه داده است. این مدل ازنظر هزینه، مدیریت و نگهداری نسبتاً پیچیده است، اما رویکرد ایمن است و مستأجران را میتوان با یک معیار انتخابی از هم تفکیک کرد.
سه مدل چند اجارهای وجود دارد و هرکدام سطح پیچیدگی و هزینه خاص خود رادارند.
مزایا و معایب چند اجارهای
تعدادی مزایا و معایب با تبدیلشدن به یک ارائهدهنده میزبان و مستأجر با چند اجاره وجود دارد. برخی از مزایا شامل موارد زیر است:
• در مقایسه با سایر معماریهای میزبانی مستأجر ارزانتر است.
• مدلهای قیمتگذاری پرداخت برای آنچه استفاده میکنید و پرداخت بهعنوان (PAYG) را ارائه میدهد.
• مستأجرانی که از نرمافزار ارائهدهنده استفاده میکنند، لازم نیست نگران بهروزرسانیها باشند، زیرا توسط ارائهدهنده میزبان بیرون رانده میشوند.
• مستأجران لازم نیست نگران سختافزاری باشند که دادههایشان روی آن میزبانی میشود.
• ارائهدهندگان فقط باید یک سیستم واحد را نظارت و مدیریت کنند.
• معماری بهراحتی مقیاسپذیر است.
برخی از معایب چند اجارهای شامل موارد زیر است
• برنامههای ارائهشده توسط یک ارائهدهنده نسبت به برنامههای موجود در سایر معماریهای مستأجر، مانند تک اجاره، انعطافپذیری کمتری دارند.
• برنامههای ارائهشده توسط یک ارائهدهنده نسبت به برنامههای موجود در سایر معماریهای مستأجر، مانند تک اجاره، انعطافپذیری کمتری دارند.
• برنامهها برای امنیت به احراز هویت و کنترلهای دسترسی سختگیرانِتری نیاز دارند.
• مستأجران باید نگران همسایگان پرسروصدا باشند، که ممکن است زمان پاسخگویی را برای سایر مستأجران که منابع مشابهی را به اشتراک میگذارند، کٌند کند.
• خرابی نیز بسته به ارائه دهنده ممکن است مشکلساز باشد. اثرات جانبی مانند یک مشکل سرور که بسیاری از کاربران را تحت تأثیر قرار میدهد نیز میتواند یک خطر نامطلوب باشد.
نمونههای چند اجارهای
نمونههای متعددی از چند اجاره وجود دارد که ازجمله آنها میتوان به موارد زیر اشاره کرد:
سختافزار – VM و کانتینر – چند اجارهای
مجازیسازی سختافزاری امکان ایجاد و میزبانی چندین VM و کانتینر مجازی را بر روی یک سرور مشترک فراهم میکند و هر VM یک برنامه یا سرویس جداگانه را اجرا میکند که توسط ذینفعان، بخش یا مشتری متفاوت مدیریت میشود. چند اجاره سختافزاری بهطور گسترده در مراکز داده مدرن و محیطهای colocation استفاده میشود و یک توانمند ساز اساسی برای همه رایانشهای ابری است.
ابر عمومی چند اجارهای
مشتریان از نمونههایی از منابع و خدمات برای جمعآوری زیرساخت مناسب برای میزبانی یک برنامه تجاری استفاده میکنند. اما هر منبع یا سرویس ابری سختافزار و پهنای باند شبکه را به اشتراک میگذارد. ابرهای عمومی میتوانند منابع اختصاصی را به مشتریان ارائه دهند، اما اینیک استثنا است تا یک قاعده.
ابر خصوصی چند اجارهای
یک ابر خصوصی همان مفاهیم چند اجارهای را بهعنوان یک ابر عمومی به اشتراک میگذارد، اما یک ابر خصوصی به یک سازمان یا گروه اختصاص داده شده است، درحالیکه یک ابر عمومی در خدمت منافع بسیاری از مشتریان یا گروهها است.
چند اجاره SaaS
اینیک نوع از چند اجاره ابر عمومی است زیرا ارائهدهندگان نرمافزار بهعنوان یک سرویس (SaaS) به طورکلی به عنوان ارائه دهندگان ابر طبقهبندی میشوند. به عنوان مثال، یک ارائه دهنده SaaS میتواند یک نمونه از برنامه خود را در یک نمونه از یک پایگاه داده اجرا کند و دسترسی به وب را برای چندین مشتری فراهم کند. در چنین سناریویی، دادههای هر مستأجر جداشده و برای سایر مستأجران نامرئی میماند. چند اجارهای را میتوان در دستگاههای چندلایه مانند سیستم SAP نیز پیادهسازی کرد.
چند اجاره بدون سرور
محاسبات بدون سرور یک سرویس ابری ارائه میدهد که از رویدادها برای بارگذاری و اجرای کد مشتری استفاده میکند و سپس هنگام اجرای کد، آن زیرساخت را رد میکند. بسیاری از برنامهها میتوانند عملکرد یکسانی را به اشتراک بگذارند و عملکرد بر روی هر زیرساخت سختافزاری مشترک موجود بارگیری و اجرا میشود.
پایگاه خبری تحلیلی برزن نیوز نخستین پایگاه تخصصی مطالعات میان رشته ای (برنامه ریزی شهری – منطقه ای)