مهندسی نرم افزار
میکروسرویس ها و ظهور یک معماری جدید در حوزه مهندسی نرم افزار
۰
میانگین امتیاز
امتیاز کاربران: شما هم امتیاز دهید!
مدتیست که در دنیای مهندسی نرم افزار و مدیریت پروژه، اصطلاحی رایج شده است به نام میکروسرویس یا ریزخدمت که خود من هم به شخصه بعد از انجام چندین پروژه عملی در تولید نرم افزار، در عمل هم به آن رسیده ام .
ایده اصلی معماری میکروسرویس این است که نرم افزار را به بخش های کوچک مستقل از هم تقسیم کنیم که ارتباط این سیستم ها با هم ، نرم افزار اصلی ما را شکل خواهد داد . در این معماری هر کدام از سرویسها ، می تواند با زبان برنامه نویسی و پایگاه داده جداگانه ای نوشته شوند و از طریق واسط هایی مثل ReST فراخوانی و استفاده شوند.
بیایید با مثال این مبحث را بررسی کنیم . فرض کنیم من قصد نوشتن یک شبکه اجتماعی برای کتاب را دارم . اگر بخواهم از معماری میکروسرویسی استفاده کنم ، من یک سیستم مستقل برای نظرات باید طراحی کنم که آدرس یک صفحه را که به آن بدهیم ، کل نظرات نوشته شده راجع به آن صفحه را برگرداند و در صورت نیاز ذخیره کند، یک سیستم هم برای احراز هویت و شناسایی کاربر ، یک سیستم برای محتوا و کتابها، یک سیستم برای مدیریت بخش شبکه اجتماعی آن و یک سیستم هم برای امتیاز دهی کاربران باید طراحی شود.
هر کدام از این سیستم ها کاملا مستقل از هم باید طراحی شود به گونه ای که بتوان آنرا به تیم جداگانه ای داد فقط ابتدا باید خدماتی که یک سرویس ارائه می کند و نحوه فراخوانی آنها را مشخص کنیم و بعد کار را به توسعه گران تحویل دهیم .
اگر از پروتکل REST برای ورودی خروجی این سرویس ها هم استفاده کنیم ، نیاز به درایور یا واسط خاصی هم نداریم . هر سرویس با فراخوانی یک یوآرال ، خدمتی که نیاز دارد را دریافت می کند .
مثلا من یک کتاب را می خواهم نمایش دهم. میکرو سیستم مدیریت محتوا، کتاب را که از دیتابیس می خواند، یک درخواست به میکروسیستم نظرات و یک درخواست به میکرو سیستم شبکه اجتماعی ارسال می کند تا نظرات نوشته شده راجع به آن و نیز میزان لایک و اشتراک گذاری آن مشخص و نمایش داده شود.
با لایک کردن یک کاربر یا به اشتراک گذاری آن کتاب هم ، درخواست به سیستم شبکه اجتماعی برای ذخیره این رخداد و نیز سیستم امتیاز دهی برای امتیاز دادن به کاربر ارسال خواهد شد .
با دید کلان این معماری بسیار جذاب به نظر می رسد چون می توان هر قسمت را مجزا از سایر قسمتها طراحی کرد و پیچیدگی یک سیستم بزرگ را با تبدیل آن به زیرسیستم های کوچک کاهش داد اما خود این کار ، باعث می شود مدیریت سرویس ها بخصوص وقتی که تعداد آنها زیاد شود ، عمل هزینه بری باشد .
در هر صورت، اگر با دقت و سنجیدن همه جوانب به این معماری پایبند باشیم ، هزینه نگهداشت و تغییر در کدها بسیار بسیار کاهش خواهد یافت هر چند هزینه های سرباری به ما تحمل خواهد شد که اگر تعداد میکروسرویس ها خیلی زیاد نباشد ، نگران آن نخواهیم بود .
ممنون از مطلب خوبتون در صورت امکان مطالب بیشتری در مورد مهندسی نرم افزار در سایت قرار دهید.
بسیار سپاس گذارم . عالی بود
تشکر