غلبه بر کوپلینگ Front-End Back-End با معماری رویداد محور AWS
معرفی
به عنوان یک توسعهدهنده، من همیشه به معماریهای رویداد محور (EDA) و اینکه چگونه میتوانند عملکرد کلی و مقیاسپذیری برنامههای وب را بهبود بخشند، علاقه داشتهام. با این حال، من هرگز واقعاً قدرت EDA ها را درک نکردم تا زمانی که با پروژه ای که روی آن کار می کردم با مشکل واقعی مواجه شدم.
این پروژه یک برنامه وب بود که نیاز به به روز رسانی های بلادرنگ داشت تا در رابط کاربری نمایش داده شود. کاربران باید بتوانند بدون نیاز به بازخوانی دستی صفحه، تغییرات ایجاد شده توسط سایر کاربران را در زمان واقعی مشاهده کنند. در ابتدا، من راهحلی را پیادهسازی کردم که شامل نظرسنجی مداوم از سرور برای بهروزرسانی بود، اما این رویکرد نه تنها نیازمند منابع بود، بلکه منجر به عملکرد کند و بیپاسخ نیز شد.
در آن زمان بود که متوجه شدم چیزی که نیاز دارم یک EDA است که به من اجازه میدهد تا بهروزرسانیهای بلادرنگ را بدون نظرسنجی مداوم از سرور به فرانتاند ارسال کنم. می دانستم که این کار به کار زیادی نیاز دارد و مطمئن نبودم از کجا شروع کنم.
این زمانی بود که تصمیم گرفتم به AWS روی بیاورم، یک پلتفرم رایانش ابری که طیف وسیعی از خدمات بدون سرور، از جمله AWS Lambda، AWS API Gateway و AWS SNS را ارائه میدهد. این سرویسها به من اجازه میدهند یک EDA مقیاسپذیر و کارآمد بسازم که بهطور یکپارچه با برنامههای فرانتاند من کار کند.
چگونه خدمات بدون سرور AWS به من در ساختن EDA کمک کرد
من با استفاده از AWS Lambda، یک سرویس محاسباتی بدون سرور که به شما امکان می دهد کد خود را بدون تهیه یا مدیریت سرورها اجرا کنید، شروع کردم. با Lambda، میتوانم تابعی بنویسم که هر زمان که رویدادی رخ میدهد، فعال شود. من یک تابع نوشتم که هر زمان که کاربر تغییری در برنامه ایجاد کند فعال می شود. سپس این تابع با استفاده از سرویس AWS SNS پیامی به موضوع SNS ارسال می کند.
AWS SNS یا سرویس اطلاع رسانی ساده، یک سرویس پیام رسانی میخانه/فرعی کاملاً مدیریت شده است که به شما امکان می دهد همزمان برای چندین گیرنده پیام ارسال کنید. با SNS، میتوانم یک موضوع ایجاد کنم و در تمام مشتریانی که برای دریافت بهروزرسانیهای آن موضوع نیاز داشتند مشترک شوم. هر زمان که پیامی به موضوع ارسال می شد، SNS به طور خودکار آن را در بین تمام مشتریان مشترک توزیع می کند.
برای اتصال برنامه front-end به سرویس AWS SNS، از AWS API Gateway استفاده کردم، یک سرویس کاملاً مدیریت شده که ایجاد، استقرار و مدیریت API ها را در هر مقیاسی آسان می کند. با API Gateway، من یک نقطه پایانی ایجاد کردم که پیامهایی را از موضوع SNS دریافت کرده و با استفاده از سوکتهای وب به مشتریان متصل ارسال میکند.
مزایای استفاده از سرویس های بدون سرور AWS برای ساخت EDA
استفاده از سرویس های بدون سرور AWS برای ساخت EDA مزایای زیادی دارد. این مزایا عبارتند از:
- مقیاس پذیری: سرویسهای بدون سرور AWS به گونهای طراحی شدهاند که به صورت خودکار با تقاضا مقیاس شوند. این بدان معناست که شما نیازی به نگرانی در مورد تامین یا مدیریت سرور ندارید و می توانید بر روی ساخت اپلیکیشن خود تمرکز کنید.
- قابلیت اطمینان: خدمات بدون سرور AWS بسیار قابل اعتماد هستند و به گونه ای طراحی شده اند که در دسترس باشند. این بدان معنی است که برنامه شما حتی در صورت وجود مشکل در سرورها یا مناطق جداگانه در دسترس خواهد بود.
- مقرون به صرفه بودن: خدمات بدون سرور AWS بسیار مقرون به صرفه هستند. شما فقط برای منابعی که استفاده می کنید هزینه می پردازید و لازم نیست نگران هزینه های اولیه یا تعهدات طولانی مدت باشید.
نتیجه
نتیجه یک EDA بسیار مقیاسپذیر و کارآمد بود که بهروزرسانیهای بلادرنگ اجازه میداد بدون نظرسنجی مداوم از سرور، به برنامه front-end ارسال شوند. برنامه front-end اکنون بسیار پاسخگو بود و یک تجربه کاربری عالی ارائه می کرد.
در نتیجه
معماریهای رویداد محور به جنبهای حیاتی در توسعه وب مدرن تبدیل شدهاند و استفاده از سرویسهای بدون سرور AWS ساخت EDAهای بسیار مقیاسپذیر و کارآمد را آسانتر از همیشه کرده است. با استفاده از خدماتی مانند AWS Lambda، AWS SNS، و AWS API Gateway، توسعهدهندگان میتوانند برنامههای وب بسیار واکنشگرا و مقیاسپذیر بسازند که تجربه کاربری عالی را ارائه دهند.
به کسانی که در نظر دارند یک EDA را پیاده سازی کنند، من به شدت توصیه می کنم خدمات بدون سرور AWS را بررسی کنند. با کمی تلاش و دانش کافی در مورد این سرویس ها، می توانید EDA های بسیار کارآمد و مقیاس پذیری بسازید که پروژه های توسعه وب شما را به سطح بالاتری برساند.