ارزش اقتصادی افزایش عملکرد در سیستم های نرم افزاری

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

تحقیقات زیادی ثاثب کرده اند که تاخیر در زمان پاسخ دهی به کاربران می تواند تاثیر زیادی بر روی (کاهش) درآمد شرکت های نرم افزاری و نحوه تعامل آنها با کاربران و مشتریان داشته باشد.

گوگل

آزمایشاتی که گوگل انجام داده است نشان داده است که تاخیر بارگذاری و نمایش نتایج جستجو به اندازه نیم ثانیه می تواند میزان جستجو و استفاده از جستجوی گوگل را به ندازه 20% کاهش دهد. این بدان معناست که گوگل می تواند با بارگذاری سریع تر صفحه نتایج می تواند میزان استفاده از سرویس جستجو را افزایش دهد.

آکامای

تحقیقاتی که توسط آکامای (شرکت معتبر آمریکایی و فعال در زمینه خدمات CDN) انجام شده است نشان داد که تاخیر به اندازه 100 میلی ثانیه می تواند تعداد خریدها در سایت های فروشگاهی را به اندازه 7% کاهش دهد.

پینترست

تحقیق دیگری که توسط پینترست صورت گرفته است ثابت کرد که کاهش 40% زمان انتظار کاربر برای بارگذاری صفحات می تواند 15% نرخ ثبت نام در این سرویس اینترنتی را افزایش دهد.

شاید این آمارها تا حدودی نشان دهنده وضعیت شرکت شما هم باشد و شما هم به این روش در حال از دست دادن سود هستید!!!!

شرکت هایی مشابه شرکت های بالا برای بهبود عملکردشان چه می کنند؟

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

نظارت برعملکرد در سیستم های نرم افزاری کوچک

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

نظارت بر عملکرد در سیستم های نرم افزاری بزرگ

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

اما بهبود زیرسیستم ها و برنامه ها کوچک تر تا حدود کمی می تواند عملکرد سیستم های بزرگ را بهبود دهد. به خصوص اگر با یک سیستم توزیع شده روبرو باشیم که این در اینصورت به ابزارها و روش های نوین تر و پیچیده تری نیاز دارد.

ردگیری توزیع شده (Distributed tracing) از جمله روش هایی است که به این منظور استفاده می شود. سیستم ها و پروژه های زیادی هستند که با استفاده از آنها می توانید چنین سیستم را ایجاد کنید اما یکی از ساده ترین آنها ELK (الستیک) است.

با استفاده از چنین ابزارهایی می توانید درخواست های کاربران را در کل یک سیستم توزیع شده ردگیری کنید و عملکرد هر بخش را زیر نظر داشته باشید.

مانیتور  کردن عملکرد با ELK
نظارت بر عملکرد با ELK

منابع:

کتاب  Distributed tracing in practice

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *