مقیاس پذیری (scalability) و ارتجاع  (elasticity) در سیستم های نرم افزاری برای مدیران

در این مقاله سعی کرده ام مفاهیم مقیاس پذیری (scalability) وارتجاع (elasticity) در سیستم های نرم افزاری را خیلی ساده و با مثال توضیح دهم.

تعریف مقیاس پذیری (scalability) و ارتجاع (elasticity)

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

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

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

قابلیت ارتجاع در سیستم های نرم افزاری بدان معنا است که سیستم در شرایط افزایش ناگهانی و نامنظم تعداد کاربران همچنان پاسخگو بماند و به خوبی عملکردهای مورد نظر را انجام می دهد. قابلیت ارتجاع یک سیستم نرم افزاری به زمان راه اندازی   (mean time to startup) آن بستگی دارد و هر چقدر که این زمان کوتاه تر باشد سیستم قابلیت ارتجاع بیشتری دارد.

مقایسه قابلیت مقیاس پذیری و ارتجاع در سیستم های نرم افزاری

فرض کنید سیستم فروش بلیط یک سیستم یکپارچه (monolithic layered) است و برای راه اندازی یک نمونه از آن به یک روز زمان نیاز است. به این معنی است که با افزایش تعداد کاربران بطور ناگهانی شما نمی توانید منابع مورد نیاز را به سرعت تامین کنید و در نتیجه قابلیت  ارتجاع مناسبی ندارید.

اما اگر سیستم فروش بلیط یک سیستم میکروسرویس (microservice) باشد که هر سرویس آن برای راه اندازی به چند ثانیه زمان نیاز دارند در صورت افزایش تعداد کاربران، شما به سرعت می توانید منابع مورد نیاز برای پاسخ دادن به درخواست ها را ایجاد کنید.

در تصویر زیر قابلیت مقیاس پذیری و ارتجاع چند معماری متفاوت مقایسه شده است.

مقایسه معماری های متفاوت از نظر قابلیت مقیاس پذیری و ارتجاع

برگرفته از

Software Architecture: The Hard Parts: Modern Tradeoff Analysis for Distributed Architectures by Neal Ford, Mark Richards, Pramod J. Sadalage, Zhamak Dehghani

دیدگاه خود را بنویسید:

آدرس ایمیل شما نمایش داده نخواهد شد.

محدودیت زمانی مجاز به پایان رسید. لطفا کد امنیتی را دوباره تکمیل کنید.