🌎 Enterprise Web App patterns

🌎 Enterprise Web App patterns

Modern Web App pattern


مایکروسافت سال‌هاست نسل‌های مختلفی از فریم‌ورک‌های توسعه وب رو عرضه کرده. از ۲۸ سال پیش با عرضه ASP تا الان… الگوها و راهنماها و فُرم‌های متفاوتی هم به موازات ارائه کرده برای توسعه‌ی بهتر پلتفرم‌هاب مبتنی بر وب. حالا یک پترن جدید برای اپلیکیشن‌های وبی NET. معرفی کرده به اسم پترن (Modern Web App (MWA که هدفش کمک به انتقال راحت‌تر واصولی‌تر اپلیکیشن‌هامون به فضای ابری بوده و مضاعف اینکه اون‌ها رو مدرن‌سازی کنیم. این الگو زیرمجموعه یک مجموعه از الگوها به اسم Enterprise App Patterns (EAP)‎ هست که تمرکزشون روی راهکارهای دقیق و از پیش تعریف شده برای مدرن‌سازی برنامه‌هاست.


حالا MWA دقیقا چکار می‌کنه؟


اگر اپلیکیشن‌های قدیمی و تک‌لایه (Monolithic) دارید، می‌دونید که انتقال این اپلیکیشن‌ها به فضای ابری معمولا دردسرهای زیادی داره. اما MWA با تکیه به اصول Azure Well-Architected Framework و متدولوژی 12 فاکتوری، یک نقشه راه روشن می‌ده که توش میگه چجوری قسمت‌های اصلی اپلیکیشن رو جدا کنیم و اون‌ها رو به صورت Microservices تغییر بدیم. این کار باعث میشه که بخش‌های پر استفاده یا پر تقاضا رو بتونیم جداگانه مقیاس‌پذیر کنیم، عملکرد و هزینه‌ها رو بهینه کنیم و از اون مهم‌تر، در صورت مشکل در یک بخش، سایر بخش‌ها تحت تأثیر قرار نگیرند.


نکته جالب اینکه این پترن در ادامه‌ی Reliable Web App (RWA)‎ توسعه پیدا کرده که خودش یک پترن برای انتقال اپلیکیشن‌ها به فضای ابری با حداقل تغییرات بود (یعنی همون Replatform)، جالب اینجاست که RWA رو علاوه بر دات‌نت برای ☕️ جاوا هم ارائه کرده. اما MWA پا رو یک قدم جلوتر گذاشته و میگه که بیایم و بخش‌های کلیدی اپ رو به جای اینکه فقط منتقل کنیم، دوباره طراحی و بازسازی (Refactor) کنیم تا واقعا ابری و مدرن بشه.


یکی از جزییات باحال این پترن اینه که از الگوی Strangler Fig برای مدرن‌سازی تدریجی استفاده می‌کنه. به این صورت که می‌تونید یه بخشی از اپلیکیشن رو به میکروسرویس تبدیل کنید و ترافیک رو به تدریج به سمت اون بفرستید. یعنی دیگه نیازی نیست کل سیستم رو یکجا تغییر بدید، بلکه می‌تونید هر بخش رو کم کم بهینه کنید و بعد برید سراغ بخش‌های بعدی.


اگر علاقه‌مندید که این الگو رو دقیق‌تر یاد بگیرید و تمرین کنید، مایکروسافت یه نمونه پیاده‌سازی با یه برنامه فروش بلیت برای یه شرکت خیالی به اسم Relecloud آماده کرده که قدم به قدم نشون می‌ده چجوری یک برنامه قدیمی .NET رو به Azure ببریم و از این الگوهای پیشرفته استفاده کنیم.


🗳 اگر موافقید یه ✨تک‌افترنون روی این داستان بریم، بگید لطفا 😉