محمد رضا
3 سال پیش توسط محمد رضا مطرح شد
32 پاسخ

بحث در رابطه با پیاده سازی نرم افزار برای چندین نفر ب صورت کاملا جدا

سلام
اول طرح سوال رو کامل شفاف و باز کنمش
میخوام راجب پیاده سازی یک نرم افزار صحبت کنیم که به جایی که وقتی به چند نفر میفروشیمش و دیتا بیس و دامنه ی متفاوتی رو براشون ایجاد میکنیم ک هر کدوم از این نرم افزار یا سایت ما استفاده کنن ، همشون با یک دامنه و یک دیتابیس سرو کار داشته باشن
مثلا شما ی نرم افزار حسابداری طراحی میکنی
برای فروش میزاری هرکی خرید انلاین با یوزر پسی که میسازه بتونه راحت از نرم افزار استفاده کنه
خب این که تمامیه جدول ها برای هر فرد اطلاعاتی که دارن ذخیره میکنن فقط برای اون نفر هست و نفر دیگه ای نباید دسترسی داشته باشه و خب پیاده سازیش و بقیه مواردش بحث برانگیزه

شما وقتی یه نرم افزار میزاری به سه تا شرکت مختلف میفروشیش یا هرچی
هر کدوم از اونا ممکنه بخوان پنج تا ده تا کاربر با سطح دسترسی های مختلف تعریف کنن

بعد برای اینکه همه داده هاشون یه جا هست از نظر جستوجو و سرعت عملکرد سیستم مشکلاتی که ممکنه پیش بیاد چی؟

تجربه ی انجام چنین پروژه ای رو داشتید که به صورت عمومی برای خرید و استفاده عموم قرار داده باشیدش؟
چه چالش هایی پیش رو هست؟
آیا اینکه توی تمامی روابط و جدول هامون یه ارتباط با کاربر خریدار ایجاد کنیم و بگیم این اطلاعات برای این کاربر هست
و توی تمامی فراخوانی ها هم بگیم اطلاعات همین کاربر رو برگردون کافیه؟
چیزی که به ذهنم میرسه همینه که همه ی جدول ها ارتباط با کاربر یا یه جورایی خریدار اصلی بگیرن حتی کاربر هایی که توسط اون کاربر اصلی ایجاد میشن
@mohaligateway
@mhyeganeh
@ali.bayat
@hesammousavi
@mehdi.shahabbasian


ثبت پرسش جدید
مهدی شاه عباسیان
تخصص : برنامه نویس
@shahabbasian 3 سال پیش آپدیت شد
3

سلام
من یک سیستم اتوماسیون اداری نوشتم و دقیقا همین طوره که شما میگید و ازش نسخه های متفاوت ارائه میدیم
کاری که ما میکنیم برای هر خریدار یک دیتابیس جدا و سابدومین ایجاد میکنیم و در اختیارش قرار میدیم

چالش اینجاست که اگه همرو تو یک بانک داده نگهداری کنین، روزای اول، تا سال های اول شاید شما به مشکلی نخوری اما اگر زمانی بزرگ شد پروژه چی ؟
ممکنه پروژه و تعداد کاربراش به جایی برسه که نتونی رو یک سرور هندلش کنی و باید ببریشون رو سرور های مختلف اونوقت چی ؟
ممکنه یک مشتری 500 برابر بقیه مصرف داشته باشه، تکلیف این چی میشه ؟ باید مثل بقیه هزینه بده و اما 500 برابر بقیه منابع رو درگیر کنه ؟
اگر کارش رسید به جایی که باید یک سرور اختصاصی برای همون یک نسخه تهیه کرد، حالا چجوری جدا کنیمش ؟
اگر یکیشون اونقدر قوی بود یا دشمنی داشت یا هرچی که یک نفر که نباید به جداول دسترسی پیدا کرد، بقیه هم باید قربانی این مورد بشن ؟

و کلی اگر و داستانهای دیگه پیش روی شماست

پیشنهاد میکنم حتما دیتابیس های هر نسخه و حتی فایل های اونا رو جدا قرار بدید


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
2

من که ترجیح میدم حتی شده دستی دونه دونه رو بروز کنم
اما اطلاعات همه کاربرارو نریزم رو هم تو یک جدول 😄

قانع شدم
@mehdi.shahabbasian


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 3 سال پیش آپدیت شد
0

@salar.mohammad2013

تجربه بیشتر من با نرم افزارهای دسکتاپه خوب
سامانه های زیادی هم با وب نوشتم هم asp و هم php

کسی که آشنایی نسبی با ساخت نرم افزار دسکتاپ داشته باشه میتونه تمامی اینکارهای که شما الان میگی رو براش یک برنامه بسازه و کپی پیست کردن ها، ساخت دیتابیس و غیره که قرار توی سرور اختصاصی (ویندوزی) رو با یک دستور کامندلاین بسازه

و فقط کافیه وبسایت شما کامند رو اجرا کنه ، خودکار نرم افزار کارهای که براش گفته شده انجام میده


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

@juza66
شوخی میکنم
نه چون گفتی توی sqlserver و توی mysql نمیدونی گفتم که بعد پروفایلتون دیدم
اخه گیر اصلی این چالش سر خرید هاست و دامنه برای هر نفر به صورت جداست ک مشکل اصلیمونه
این که ب مشتری بگی دامنه بخرم یه جوریه جالب نی
خودتم بخری بعد یه سال صد تا دامنه و هاست داری


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 3 سال پیش آپدیت شد
0

اخه گیر اصلی این چالش سر خرید هاست و دامنه برای هر نفر به صورت جداست ک مشکل اصلیمونه

اگر شبکه بدونی میتونی با نرم افزارهای مثه VMware Workstation Server یک ویندوز سرور مجازی بسازیدو با داشتن آی پی ولیدهای مخلتف و پورت های مختلف سیستم مشتریانمون رو هندل کنیم.

این ها همه منوط به داشتن آشنایی کامل به سیستم عامل و شبکه و داشتن یک سرور اختصاصی ویندوزی هست

این ماجرا رو هرچی بری جلوتر فکر کنم تخصصی تره میشه ماجرا 😅


مهدی شاه عباسیان
تخصص : برنامه نویس
@shahabbasian 3 سال پیش آپدیت شد
1

وقتی میخوای رو یک پروژه ای جدی کار کنی و به کاربران زیادی خدمات بدی
هاست و فراموش کن به نظرم
با یک سرور مجازی شروع کنین و لازم نیست برای هر کاربر حتما هاست جدا ایجاد کنید (البته اگر قرار نیست پنل هاست رو تحویل بدید)
و جدا از اون با سرور مجازی SSH هم زیر دستته و artisan عزیز رو هم به راحتی در اختیار داری
کافیه یک فایل رو یک بار اپلود کنی و با کامند ران و نوشتن یک php ساده حتی همه فایل های مورد نیاز برای اپدیت شدن رو روی همه اعمال یا کپی کنی
و برای داستان دامنه هم یک دامنه خوب و کوتاه جور کن و به مشتریات اجازه بده خودشون سابدومین رو پیشنهاد بدن و یا بسازن

و در نهایت اگر هم خیلی واجب بود هاست رو تحویل بدی اما دامنه نخری برای هرکدوم به راحتی میتونین روی سابدومین هم هاست تعریف کنین

البته از git هم غافل نشید برای آپدیت کردن پروژه ها که زندگی برنامه نویس بدون git واقعا رو به تباهی میره 😄


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 3 سال پیش مطرح شد
0

البته از git هم غافل نشید برای آپدیت کردن پروژه ها که زندگی برنامه نویس بدون git واقعا رو به تباهی میره

عا والا خوب گفتی 😄


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

@mehdi.shahabbasian @juza66
در رابطه با سرور تا حالا کار نکردم و از نظر امنیت و پیاده سازی و لینوکس اطلاعی ندارم
ساب دامینم اره بد نی
فعلا از هاستی استفاده میکنم که پنج تا ادان دامین داره addon domain و میتونم برای همون هاست شش تا دامنه متصل کنم و عالیه
اگر در رابطه با پیاده سازی سرور ها لینک های اموزشی ای دارید ک معرفی کنید ممنون میشم
ولی در کل سرور ها گرونن
من یم هاست با امکان اتصال شش دامنه رو ماهی حدودا چهل دارم میدم
دو تا خریدم دوازده تا دامنه اصلی میتونم داشته باشم با ماهی کمتر از 100 تومن و خیلی برای من ک اول راهم خوبه از نظر هزینه و خب سرعتشم خوبه


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 3 سال پیش مطرح شد
0

خب چون اول راه هستین و هزینه ها رو هنوز نمیدونین چطوری باید جور کنید یا مدیریت کنید
پس با هرروشی که توی ذهن داری جلو برید بعدا انشاله در طی کار باتجربه تر میشین و با مسائل گوناگون آشنایی پیدا میکنید.

موفق باشید شبتون بخیر


مهدی شاه عباسیان
تخصص : برنامه نویس
@shahabbasian 3 سال پیش مطرح شد
0

سرور چیزی نیست که با یک یا دو آموزش و چند مقاله بشه باهاش کنار آمد
برای امنیت و بهینه بودن قطعا نیاز به یک کارشناس هست تا کانفیگ اولیه و بروز رسانی های دوره ای انجام بده
و بله هزینه بیشتری هم داره اما خب امکانات و راحتی های بیشتری هم داره


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
1

@juza66
@mehdi.shahabbasian
تشکر از هر دو دوست گرامی برای وقتی ک گذاشتید و راهنمایی های بسیار عالی و مفیدتون 🙏🙏


moha li
تخصص : توسعه دهنده لاراول و Vue
@mohaligateway 3 سال پیش مطرح شد
1

سلام
یه کم دیر اومدم ولی بحث خوبی ایجاد شده تشکر از دوست عزیزمون @salar.mohammad2013
یه چند تا مورد به ذهنم رسید درباره این بحث. اولا اینکه معمولا سیستم های بزرگ مثل بیمه و خدمات حساب داری و .... روی چند تا سرور به صورت parallel که replicate می کنن اجرا میشن و کاربرها معمولا با استفاده از یک خط امن مثل *** به این سرور ها دسترسی پیدا می کنن که توی مسیرشون چندتا firewall با دسترسی های متفاوت نیز ایجاد شده است.
ثانیا در زمینه دیتابیس اون چیزی که به ذهنم میرسه یک دیتابیس مرکزی میشه ایجاد کرد در کنار دیتا بیس های واسط. وظیفه دیتابیس مرکزی نگهداری از اطلاعات حساسی است که برای هر کدام از کاربرها مهم است و شامل اطلاعات اصلی هست. دیتابیس های واسط شامل اطلاعات دسته ای از کاربران است مثلا هر دیتابیس مختص به یکسری از کاربران مشخص تا حجم مشخصی از اطلاعات است مزیت این روش قرار دادن permission بر روی پایگاه داده های مختلف است به گونه ای که هر کاربر تنها مجوز دسترسی به دیتا بیس خودش را دارد.
در اینجا باید یکسری دسته وب سرور داشته باشیم و یکسری دسته دیتابیس سرور که هرکدام برای ورودی باید سرورهای load balancer داشته باشند و اطلاعات بین تمامی سرور ها replicate بشه. فکر کنم معمولا به این شکل سیستم را پیاده سازی می کنند برای داده های بزرگ
@mehdi.shahabbasian
@juza66


محمد رضا
تخصص : Full Stack Developer
@salar.mohammad2013 3 سال پیش مطرح شد
0

@mohaligateway
حس میکنم مقوله ایه که خارج از توان یک نفر هست و واقعا نیاز به تیم کارشناس در موارد مختلف داره

اخه میایی یه سایت طراحی میکنی یه برنامه مینویسی برای یه نفر مثلا فروشگاه یا رستوران یا هرجا
ولی امکان فروش عمده رو داره
حیفه که ادم وقت میزاره طراحی میکنه ولی نتونه به چند نفر حتی شهر های دیگه بفروشه
شما یه امکان جدید میزنی اصلا قدیمی ولی با ظاهری جذاب و عالی
کافیه تو یه پیج اینستاگرامی مثلا با بازدید بالا تبلیغشو بزاری
یهو صد نفر از کل کشور مشتری پیدا میشه
ب نظرم تا نشه فروش دسته ای رو هندل کرد درآمد خوب هم حاصل نمیشه متاسفانه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام