مهندسی نرم افزار

میکروسرویس ها و ظهور یک معماری جدید در حوزه مهندسی نرم افزار

۰

میانگین امتیاز

امتیاز کاربران‌: شما هم امتیاز دهید!

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

مجتبی بنائی

دانشجوی دکترای نرم‌افزار دانشگاه تهران (yun.ir/smbanaie)، مدرس دانشگاه و فعال در حوزه توسعه نرم‌افزار و مهندسی داده که تمرکز کاری خود را در چند سال اخیر بر روی مطالعه و تحقیق در حوزه کلان‌داده و زیرساخت‌های پردازش داده و تولید محتوای تخصصی و کاربردی به زبان فارسی و انتشار آنها در سایت مهندسی داده گذاشته است. مدیریت پروژه‌های نرم‌افزاری و طراحی سامانه‌های مقیاس‌پذیر اطلاعاتی از دیگر فعالیتهای صورت گرفته ایشان در چند سال گذشته است.

۳ دیدگاه

  1. ممنون از مطلب خوبتون در صورت امکان مطالب بیشتری در مورد مهندسی نرم افزار در سایت قرار دهید.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

دکمه بازگشت به بالا