ارزیابی و مانیتورینگ کارکرد سیستم

یکی از تفاوت های فرهنگیِ توسعه نرم افزار به نسبت گذشته آن می باشد که ارزیابی و تست نرم افزار یک مسئولیت همگانی است و همه اعضای تیم نسبت به تولید با کیفیت مسئول هستند و دغدغه دارند. دیگر فرایند تست، فرایند مجزایی از توسعه نرم افزار نیست بلکه ارتباط تنگاتنگی با هم دارند. یکی از مواردی که برای ارزیابی تیم توسعه و محصولات آن ها بررسی می شود آن است که "آیا همه اعضای تیم نسبت به تست و صحت نرم افزار مسئول هستند؟"

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

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

1. آیا زیرساخت (اجزا شبکه، سوییچ ها، روتر ها، فایروال ها، کارایی هارد دیسک و پردازنده و ....) سیستم را می توانید مانیتور کنید؟

2. آیا می توانید و خود را مسئول می دانید که با بهره گیری از Performance Profiler ها کارایی نرم افزار را ارزیابی کرده و گلوگاه ها را شناسایی کنید؟ مثلا با استفاده JetBrains dotTrace

3. آیا می توانید و خود را مسئول می دانید که میزان بهره گیری از حافظه را با استفاده از Memory Profiler ها ارزیابی کنید؟ مثلا با استفاده از JetBrains dotMemory

4. آیا برای ارزیابی مکانیک دقیق رسیدگی به هر رکوئست از Glimpse یا MiniProfiler استفاده می کنید؟

5. آیا با نحوه بررسی SQL Query Execution Plan ها آشنایی دارید؟ آیا می توانید کارایی SQL Server را با استفاده از SQL Profiler یا ابزارهای دیگر (Redgate Monitor) بررسی کنید؟

6. آیا سازمان به شما فرصت بهره گیری از این نرم افزار ها را می دهد و این ها را به الزام توسعه نرم افزار تبدیل کرده است؟

* آشنایی بیشتر با نرم افزارهای ارزیابی و مانیتورینگ سیستم ها:

https://www.infoq.com/articles/dotnet-performance-monitoring-optimization