مقیاس پذیری بخش مهمی از هر کسب و کاری است .زمانی که فرآیند تولید نرم افزار به مرحلهProductionمیرسد و اپلیکیشن روی سرور میرود، چالشها و مخاطرات جدیدی برای ذی نفعان آن پروژه ایجاد میشود.
ما در عصری هستیم که استفاده از اینترنت به سبک زندگیمان تبدیل شده. بنابراین پس ازمعرفی اپلیکیشن یا وبسایت، کاربران آن به سرعت افزایش پیدا میکند. صد البته در اکثر موارد افزایش کاربران یک وبسایت، نوید بخش رشد یک کسب و کار و موفقیت آن است؛ اما زمانی فرا میرسد که سیستم دیگر توانایی هندل کردن حجم بازدیدکنندگان را ندارد.
در مواردی هم حجم ترافیک به حدی میرسد که سیستم قادر به هندل کردن آن نمی شود، زمان آن فرا رسیده که سیستم Scaleیا مقیاس پذیر شود.
فرآیند مقیاس پذیری به دو دسته کلی Vertical Scaleیا مقیاس پذیری عمودی و Horizontal Scaleیا مقیاس پذیری افقی تقسیم میشود.

vertical scale vs horizontal scale

vertical scale vs horizontal scale

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

مقیاس پذیری عمودی


مقیاس پذیری عمودی یا افزایش مقیاس، همانطور که به آن اشاره می شود، یک روش مقیاس بندی است که در آن منابع کامپیوتری مانند پردازنده، RAMاستوریج و غیره را به یک سرور موجود اضافه می کنیم.
هر زمان که تقاضا برای این منابع وجود داشته باشد این کار انجام می شود.به عنوان مثال، اگر یک پایگاه داده بزرگ وجود دارد که سرور شما باید آن را در خود جای دهد، می توانیدبه سادگی فضای ذخیره سازی بیشتری را به سرور خود اضافه کنید. به این ترتیب، سیستم شما می تواند تمام داده های جدید و اضافی را مدیریت کند.

 

مزایای مقیاس پذیری عمودی


نصب: شما ماشین های بیشتری را به تنظیمات موجود خود اضافه نمی کنید. شما فقط قطعات سخت افزاری را در مواقعی که نیاز دارید اضافه می کنید. این بدان معنی است که مدیریت و نصب سخت افزار برای شما یا تیم فنی شما آسان است.
مصرف برق: با توجه به اینکه تعداد ماشین ها واقعاً افزایش نیافته است، خواهید دید که افزایش مقیاس تأثیر زیادی بر مصرف برق یا نیازهای خنک کننده ندارد.
سازگاری: نرم افزارهای زیادی در بازار موجود است که به راحتی می توانند نیازها را افزایش دهند. بنابراین، شما نیازی به نگرانی زیادی در مورد سازگاری ندارید.

معایب مقیاس پذیری عمودی


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

Down time در صورتی که در ماشین فیزیکی مشکلی به وجود بیاید کلیه اپلیکیشن ها از کار می افتد و ممکن است خسارت زیادی به وجود بیارد و درنتیجه پروسه عیب یابی و Down timeافزایش می یابد

مقیاس پذیری افقی


مقیاس پذیری افقی اساساً اضافه کردن ماشین های بیشتری برای مقابله با افزایش ترافیک است. به این موضوع فکر کنید – مقیاس پذیری عمودی مانند اضافه کردن چند صندلی دیگر به ماشین شما است، در حالی که مقیاس افقی مانند خرید یک ماشین دیگر است.
مقیاس پذیری افقی، روشی برای مقیاسبندی است که در آن واحدهای پردازشی یا ماشینهای فیزیکی واقعی بیشتری برای مقابله با ترافیک بیشتر اضافه میکنید. این معمولاً شامل ایجاد شبکه ای از سرورها،افزایش تعداد گره ها در یک کلاستر و در نتیجه کاهش میزان استرسی است که هر سرور باید با آن مقابله کند.

scalability

scalability


در اصل یک سرور توزیع بار یا
Load Balancerوظیفه تقسیم بار پردازشی بین این سرورها را بر عهده دارد

سرور لود بالانسر وظیفه دارد تصمیم بگیرد که در لحظه ارسال درخواست یا Request توسط کاربر، کدام سرور وظیفه دارد پاسخگوی درخواست باشد. به این صورت پیچیدگی فرآیند را از نظر کاربر پنهان کرده و آن را یکپارچه نمایش می‌دهد.

مزایای مقیاس افقی

صرفه جویی در هزینه – شما پول زیادی را برای سرورهای مقیاس پذیر خرج نمی کنید. شما فقط ماشین ها را هر زمان که بخواهید اضافه می کنید.

تعمیر و نگهداری – از نظر یافتن خطاها در سرور، نگهداری آن آسان تر است. در تنظیمات عمودی، همه چیز در یک مکان است. بنابراین، اگر مشکلی پیش آمد، باید کل تنظیمات را خاموش کنید تا به دنبال راه حلی بگردید.

Down time : با یک تنظیم افقی، می توانید به راحتی عیب را به یک دستگاه محدود کنید و سپس از آنجا کار کنید. سرورهای دیگر کمی تحت فشار خواهند بود، اما همچنان کار خواهند کرد. این به این معنی است که شما به میزان قابل توجهی Down time  کمتری دارید.

 ارتقاها : می خواهید ارتقا دهید، مثلاً رم، در یک راه اندازی عمودی، همه چیز باید قبل از کار خاموش شود. در اینجا، می‌توانید بدون توقف هیچ‌گونه عملکرد یا فرآیندی، به سادگی ماشین‌ها را در لحظه اضافه و حذف کنید.

با مقیاس پذیری افقی، مقیاس پذیری «واقعی» را دریافت می کنید. هیچ محدودیتی برای تعداد سرورهایی که می توانید اضافه کنید وجود ندارد. شرکت های بزرگی که با حجم زیادی از داده ها سر و کار دارند (برای مثال گوگل و آمازون)، به مقیاس پذیری افقی متکی هستند. شرکت های هاستینگ پیشرو، به ویژه ارائه دهندگان VPS و ارائه دهندگان هاست اختصاصی، که ارقام uptime برای آنها اهمیت زیادی دارد، مقیاس افقی را نیز انتخاب می کنند.

معایب مقیاس پذیری افقی

پس از یک نقطه خاص، هزینه های آب و برق شما به طور قابل توجهی افزایش می یابد. خنک‌کردن اتاق سرور، قدرت خنک‌کننده زیادی را می‌طلبد و همه اینها بهایی دارد.

بهترین انتخاب

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

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