در همین حین که مریدان آماده زنگ ورزش بودند که به مانند آهویی لگد زنان استراحتی کنند که شیخ وارد شد و گفت : خایله خب، برم سراغ 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 هستش.در زیر عکسی از روضه هایی که خواندم اوردم تا شاید پند بگیرید.
حالا بروید و بدرید و ورزش کنید که قسمت بعد همین است.