Parsa Rezaei
Parsa Rezaei
خواندن ۲ دقیقه·۹ ماه پیش

معرفی Django Tenant به زبان ساده

سلام!

یکی از تجربیات جالبی که داشتم Django-Multi-Tenant هستش..یعنی چی؟

به طور ساده بخوام بگم: یک کد بیس شما دارید که میتونید خدماتی رو به مشتریاتون ارائه بدید، ولی قرار نیست همه مشتری ها داخل یک گروه قرار بگیرن! به فرض شما با شرکت آمازون قرارداد دارید که خدماتی بهشون ارائه بدید، کارمند های آمازون داخل یک tenant مجزا قرار میگیرن و هیچ کاربر دیگه ای نمیتونه به دیتای این tenant دسترسی داشته باشه و شخص کارمند آمازون با وارد کردن اطلاعاتش، وارد tenant خودش میشه. به صورت کلی هر tenant دیتا مجزایی داره ولی داخل یک پایگاه داده قرار میگیرن.


حالا تفاوت بین یک سیستم multi tenant و single tenant چیه؟

همونطور که داخل عکس میبینید، مشخص هستش که یک پروژه single tenant به عبارتی ساده تر هستش پیاده سازیش..که خب هدف شما اگر تنها یک گروه خاصی از افراد یا یک سازمان باشه میتونه گزینه خوبی باشه ولی یک مشکل اساسی داره! اونم اینه که تمام دیتاها داخل یک جا قرار میگیرن. خلاصه که امنیتش رو باید خوب حواستون باشه.

و Multi tenant پیاده سازیش سخت تر هستش هم هزینه بیشتری رو احتمال داره که شما باهاش برخورد کنید. هر سازمان به صورت جدا از هم داخل tenant خودشون قرار میگیرن و خب برای نگهداری دیتاهاشون باید ساختار خوبی رو در نظر بگیرید. از لحاظ امنیت هم مزیت بالاتری داره در مقابل single tenant.

در آخر تا یک قسمتی میتونیم امنیت رو بالا ببریم..دروغ چرا:)


منابع خوبی بابت tenant هستش که میتونین استفاده کنین و بخونین هم بابت این معماری هم اینکه چطوری میشه داخل جنگو استفاده کرد:

داکیومنت برای پیاده سازی Django tenant
داکیومنت IBM برای Multi tenant


سوال آخر

دیتا سازمان ها و کاربر ها داخل جنگو و دیتابیسی که ساخته شده قرار هست ذخیره بشه، اگه هدف این باشه که جنگو فقط نقش API request داشته باشه و دیتاها توی سیستم دیگه ای خارج از جنگو باشن چطور؟

تلاشمو میکنم یکی از راه حل هاشو بزودی براتون پست بذارم.

امیدوارم که این پست براتون مفید بوده باشه و اگر تجربه یا راه حل بهتری بابت این مسئله داشتید، خوشحال میشم که منم همراه تجربیاتتون بشم:)


djangosaas
یه برنامه نویس ساده که جنگو کار میکنه و جدیدا هم تصمیم گرفته راه دواپس رو پیش ببره:)
شاید از این پست‌ها خوشتان بیاید