سلام!سلام! سلام.
میخوام توی چند پست درمورد اولین بخش از طراحی سیستم (فارسی را پاس بداریم ) یا همون سیستم دیزاین که توی کتاب system design interview اومده صحبت کنم و مطلبی که خوندم رو با شما به اشتراک بذارم.
مقدمه:
چگونگی طراحی سیستمی که میتونه از یک کاربر تا میلیونها کاربر رو پشتیبانی کنه چالش برانگیزه و این موضوع برای هر توسعه دهنده ای که به دنبال ساخت برنامه مقیاس پذیره، ضروریه.
هر سفری با برداشتن اولین قدم آغاز میشه و ساخت یک سیستم پیچیده نیز از این قاعده مستثنی نیست. در ابتدای کار، همه چیز (وباپلیکیشن، کش، پایگاه داده و ...) بر روی یک سرور اجرا میشه. برای درک بهتر این موضوع، به روند اجرای یک درخواست در تصویر پایین توجه کنید:
رشد و پیچیدگی
با افزایش تعداد کاربران، دیگه یک سرور کافی نیست و به چند سرور مجزا نیاز داریم: یک سرور برای ترافیک وب/موبایل و ... و یک سرور برای پایگاه داده. جداسازی وبسرور و سرور پایگاه داده به سیستم ما اجازه میده که به صورت مستقل، مقیاسپذیر باشن.
انتخاب پایگاه داده مناسب
برای اکثر توسعهدهندها، پایگاههای داده رابطهای (SQL) بهترین گزینه هستن، زیرا از نظر تاریخی عملکرد خوبی داشتن. با این حال، اگر پایگاههای داده رابطهای برای موارد خاص شما مناسب نیستن، بررسی گزینههایی غیر از پایگاههای داده رابطهای (NoSQL) بسیار مهمه. اگر موارد پایین برای شما صدق میکنه پس استفاده از NoSQL برای شما مناسبه: