مقیاس پذیری یا Scaling چیست؟



visibility  
mode_comment   ۱

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

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

مقیاس پذیری چیست

مقیاس پذیری به زبان ساده یعنی توانایی یک سیستم یا اپلیکیشن برای مدیریت افزایش ترافیک بازدید کاربران. البته این مدیریت باید به طریقی انجام شود که کاربران متوجه هیچگونه تغییری در سیستم نشوند. یعنی این کار باید با حفظ کیفیت تجربه کاربری (UX) انجام پذیرد.

بخاطر رسیدن به مقیاس پذیری روش سیستم های توزیع شده یا Distributed Systems معرفی شد. با استفاده از این روش، مثلا با  10 برابر شدن تعداد بازدیدکنندگان باید منابع سیستم نیز 10 برابر شود و این کار به طریقی انجام شود که کاربران از بیرون متوجه تعدد سیستم ها نشوند. در واقع در سیستم های توزیع شده در ظاهر اینطور به نظر می رسد که فقط یک سرور پاسخگوی درخواست های کاربران است.

روش های مقیاس پذیری یا Scaling به دو دسته اصلی تقسیم می شوند:

  • مقیاس پذیری عمودی (Vertical Scaling)
  • مقیاس پذیری افقی (Horizontal Scaling)

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

مقیاس پذیری عمودی یا مقیاس پذیری به سمت بالا (Scaling Up)، زمانی انجام می شود که اپلیکیشن توان هندل کردن بار حجم بالای اطلاعات را نداشته باشد. تصور کنید که شما یک دیتابیس با 10 گیگابایت اطلاعات دارید اما سرور توانایی هندل کردن آن را ندارد. برای هندل کردن این بار اضافی، شما یک سرور گران قیمت جدید با حجم 2 ترا بایت را خریداری می کنید. حالا سرور شما می تواند اطلاعات بیشتری را در خود ذخیره کند! با این کار شما از روش مقیاس پذیری عمودی استفاده کرده اید.

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

horizontal scaling چیست

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

نتیجه گیری

در این مطلب به توضیح در مورد مقیاس پذیری یا Scaling پرداختیم. همانطور که گفته شد، پس از رفتن اپلیکیشن به مرحله Production، رفته رفته سیستم با چالش هایی مثل هندل کردن ترافیک بسیار بالا مواجه می شود که در صورت بی توجهی می تواند آسیب های جبران ناپذیری را برای کسب و کار شما وارد نماید. مقیاس پذیری فرآیند کنترل این ترافیک است. مقیاس پذیری، به دو نوع مقیاس پذیری افقی و عمودی تقسیم می شود که در این مطلب به معرفی اجمالی آن ها پرداختیم. آیا شما تجربه Scale کردن سایت ها یا اپلیکیشن های خود را داشته اید؟ از خواندن تجربیات شما در قسمت نظرات خوشحال می شویم!

7Learn Experts
comment دیدگاه کاربران
مجتبی صفدری replyپاسخ

thanks for such a good article
hope these type of articles to be continued
: )

add_circle ارسال دیدگاه

خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :