یک توسعهدهنده در حال کار بر روی یک برنامه مونولیت قدیمی .NET (ASP.NET MVC / WebForms) با یک پایگاه داده SQL Server بسیار پیچیده است و با مشکلاتی در زمینه دید و شفافیت مواجه شده است. او به دنبال راهی برای درک بهتر عملکرد سیستم و شناسایی گلوگاهها و بخشهایی است که نیاز به بازسازی دارند.
هدف اصلی، پاسخ به سوالاتی مانند شناسایی دقیق صفحهها یا نقاط پایانی که باعث بارگذاری زیاد پایگاه داده میشوند، تعیین اینکه کدام عمل کاربر (کلیک دکمه / جریان) کدام رویههای ذخیره شده را فعال میکند و مشخص کردن بخشهایی از برنامه که باید در اولویت بازسازی قرار گیرند، است. پیچیدگی پایگاه داده شامل رویههای ذخیره شده بزرگ، جداول مشترک مورد استفاده توسط بسیاری از ویژگیها و منطق انباشته شده در طول سالها با مستندات محدود است.
راهحل پیشنهادی شامل استفاده از New Relic APM برای نظارت بر سمت برنامه (تراکنشها، نقاط پایانی کند، پشتههای فراخوانی) و Redgate SQL Monitor برای نظارت بر سمت پایگاه داده (پرسوجوها، منتظرها، مسدودیتها، عملکرد SP) است. ایده اصلی این است که New Relic نشان میدهد زمان در کجا صرف میشود و Redgate نشان میدهد پایگاه داده در واقع چه کاری انجام میدهد. توسعهدهنده همچنین قصد دارد یک رویکرد CorrelationId / CONTEXT_INFO سبک وزن را برای ایجاد نگاشت دقیقتر بین اقدامات رابط کاربری و SQL/SP اضافه کند.
سوالات مطرح شده شامل ارزیابی اینکه آیا ترکیب APM و مانیتورینگ DB رویکرد مناسبی برای درک یک سیستم قدیمی مانند این است، بررسی وجود جایگزینهای بهتر و جمعآوری تجربیات و درسهای آموخته شده در هنگام تجزیه و تحلیل یک مونولیت قدیمی است. تاکید بر استفاده از رویکردهایی است که در محیط تولید ایمن باشند و کمترین خطر را داشته باشند، زیرا این سیستم برای کسب و کار بسیار حیاتی است.
مشاهده مطلب اصلی