حسین بیگی
حسین بیگی
خواندن ۲ دقیقه·۲ سال پیش

حکایت شیخ و مریدان : SystemDesign قسمت دوم

حکایت شیخ و مریدان : SystemDesign قسمت دوم
حکایت شیخ و مریدان : SystemDesign قسمت دوم

در همین حین که مریدان آماده زنگ ورزش بودند که به مانند آهویی لگد زنان استراحتی کنند که شیخ وارد شد و گفت : خایله خب، برم سراغ Vertical scaling vs Horizontal scaling

مریدان که همگی شلوار آبی که کنارش سه خط سفید آدیداس بود که آن را هم روی شلوار لی پوشیده و منتظر زنگ ورزش بودند ، قفل کردند!

شیخ ادامه داد : شما برای افزایش منابع سیستمتان دو راه دارید :

1- Vertical scaling

خب این یعنی ما برای سرور هایی که الان داریم منابع بیشتری در نظر بگیریم!یعنی اگر 5 تا سرور داریم، رم و CPU و... را افزایش دهیم. که به آن اصطلاحا Scale-up هم میگویند.

2- Horizontal scaling

این یعنی تعداد سرور هایی که داریم را افزایش دهیم! که به آن اصطلاحا Scale-out هم میگویند.

مریدی گفت : یا شیخ از کجا بفهمیم که کدامش برای ما لازم است؟؟؟

شیخ گفت : اگر ترافیک سیستم کم است بروید سراغ Vertical scaling اصلا همین سادگی که دارد، واقعاااااا جذابش کرده. اما خب اگر سادگی دارد مطمئن باشید که محدودیت هم دارد مثلا:

- افزایش هم حداکثری دارد شما که نمیتوانید نامحدود رم و CPU داشته باشید. میشود؟؟؟

- نقطه ضعف این حالت این است Failover و redundancy خوبی ندارد، اگر سرور بره یغما برود، سایت به یغما رفته و این یعنی پول بی پول.

و خب طبعا Horizontal scaling برای برنامه هایی که بزرگ هستند و نمیتوانند با محدودیت های Vertical scaling کنار بیایند، بهتر است.

در قسمت قبل شروع به طراحی سیستمی کردیم، اگر سرور آفلاین شود دیگر کاربر بدبخت به سایت دسترسی ندارد، حال اگر تعداد زیادی کاربر به سرور متصل شوند و درخواست ها زیاد شود، سرور کند شده و گند میخورد به تجربه کاربری مثلا سایت انتخاب واحد دانشگاه ها(خدا لعنتت کنه ناد که پیرم کردی).دوای درد این مسئله Load Balancer هستش.در زیر عکسی از روضه هایی که خواندم اوردم تا شاید پند بگیرید.

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

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