بهروز
بهروز
خواندن ۳ دقیقه·۵ سال پیش

Stackify یا چگونه ضربان قلب نرم افزار را بگیریم؟

تاریخ انتشار نسخه اصلی مارس 6, 2017
امروزه بسیاری از شرکتهای نرم افزاری خدمات خود را بر روی  cloud (نمیدونم واژه ابری معادل رایجی هست یا نه)  ارائه میکنند. در واقع مدل کسب کار به این صورت است که این شرکتها منابعی زیر ساختی مانند سخت  افزار، سیستم عامل و پایگاه داده را از شرکتهایی مانند آمازون یا مایکروسافت (IaaS) اجازه میکنند، نرم افزار خود را روی آن پیاده سازی میکنند و خدماتی خود را عمداً به صورت اشتراک به مشتری خود میفروشند (SaaS). با این کار یکی از مشکلات مهم صنعت نرم افزار یعنی عیب یابی و شبیه سازی باگها در محیط  برنامه نویسی به مراتب ساده تر میشود. به این معنا که شرکت تولید کننده نرم افزار بر روی محیط پیاده سازی (deployment) کنترل دارند و با استفاده از ابزارهای مانیتورینگ به طور مدائم عملکرد نرم افزار مانند میزان مصرف CPU یا حافظه کنترل میشود. اما گسترش خدمات cloud به این معنا نیست که شیوه قدیمی تر یعنی پیاده سازی on-premise را باید فراموش کرد. بسیاری از مشتری به دلایل امنیتی، کافی نبودن سرعت اینترت یا هزینه بر بودن تغییر، در صورت وجود خدمات cloud همچنان شیوه on-premise را که در واقع پیاده سازی نرم افزار در محیط سخت افزاری تحت کنترل مشتری است را ترجیح میدهند.

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

یکی از آرزوهای هر تیم نرم افزاری که نرم افزارش چه روی cloud یا on-premise پیاده سازی میشود این است که profiling که   بر روی کامپیوتر خود دارند را برای محیطی راه دور که نرم افزار برروی آن قرار دارد هم داشته باشند. به  این معنا که بداند مثلا کدام درخواستهای وب query بیشتری را به پایگاه داده میزند، کدام متد ها بیشتر فراخوانده میشوند یا اینکه log خطاهای نرم افزارها  را با جزئیات بیشتری داشته باشند. Stackify راه حلی کلاینت-سروری است که این امکان را در اختیار تیم نرم افزاری قرار میدهد. این شرکت که در سال 2012 در امریکا تاسیس شده است با شعار محبوب این روزها یعنی «از توسعه دهندگان برای توسعه دهندگان» میخواهد به شما بگوید «WTF your code is doing» ? به این صورت که کلاینت آن بنام Retrace برروی سیستمها راه دور که نرم افزار شما روی نصب شده است قرار میگیرد و به عنوان یک profiler و جمع کننده log، داده ها را برای تحلیل و نمایش به سرور خود  یعنی Prefix میکند. البته Prefix را میتوان  طور مستقل به عنوان یک profiler پیشرفته بر روی محیط برنامه نویسی نصب کرد، هرچند Stackify ادعا میکند که راه حل اش تنها یه profiler یا devAPM (سیستم مدیریت کارایی نرم افزار) نیست و میتواند به طور هوشمند باگها سیستم را هم گزارش داده و با tracking پیشرفته نحوه رفع آنها را هم پیشنهاد دهد. در هر صورت اگر میخواهید بیشتر با آن آشنا شوید میتواند محیط زنده demo اش را در پیوند زیر مشاهده کنید:

https://sandbox.stackify.com/Stacks/WebApps

تست نرم افزارعیب یابی نرم افزارسیستمهای ابری
مهندس تست و امنیت نرم افزار https://www.linkedin.com/in/behroozaghakhanian
شاید از این پست‌ها خوشتان بیاید