مشخصات مقاله
-
0.0
-
2684
-
0
-
0
میکروسرویس چیست؟
میکروسرویس یک الگوی معماری در دنیای مهندسی نرم افزار است که سرویسگرا محسوب میشود. در این معماری هر اپلیکیشن از مجموعهای از سرویسهای مستقل تشکیل میشود که در نهایت با متصل شدن به همدیگر یک مجموعه بزرگ را ایجاد میکنند. در واقع مدرنترین معماری که اکنون مهندسین نرم افزار برای توسعه اپلیکیشنها از آن استفاده میکنند همین معماری میکروسرویس است. دلایل بسیار زیادی نیز دارد.
هدف این مقاله آشنا کردن شما با معماری میکروسرویس و دلایل استفاده از آن است. همچنین در نهایت ما سراغ مشکلاتی که با میکروسرویس خواهیم داشت میرویم و یک جمع بندی خوب را خواهیم داشت.
اپلیکیشنها چگونه ساخته میشدند؟
قبل از اینکه الگوی میکروسرویس معرفی شود به نظرتان اپلیکیشنها چگونه ساخته میشدند؟ در چند سال اخیر که استفاده از الگوی مهندسی میکروسرویس توسعه پیدا کرده همواره اسم یک معماری دیگر نیز به گوش میخورد. معماری یکپارچه یا Monolithic: این معماری یک روش قدیمیتر به نسبت میکروسرویس برای توسعه اپلیکیشنهاست.
در این معماری بجای جدا سازی بخشهای مختلف یک اپلیکیشن، تمام آنچه که برای یک برنامه به آن نیاز است را در یک برنامه بزرگ مینوشتند و هیچگونه جداسازی صورت نمیگرفت. برای مثال اگر شما یک وبسایت فروشگاهی را در نظر بگیرید میتوانید متوجه شوید که این فروشگاه از قسمتهای متفاوتی ایجاد شده که هر قسمت هدف و وظیفه خاص خود را دارند.
در معماری میکروسرویس به صورت ایده آل هر کدام از قسمتهای این فروشگاه در یکسری سرویس و اپلیکیشن جداگانه و منحصر به فرد نوشته شده و در نهایت تمام این موارد به همدیگر وصل میشوند. اما در معماری یکپارچه همانطور که از نامش پیداست همه چیز در یک واحد نهایی توسعه پیدا کرده و هیچ جداسازی ساختاری اتفاق نمیافتد.
به همین دلیل زمانی که شما بخواهید یک قسمت کوچک از اپلیکیشن را تغییر دهید باید سراغ کل اپلیکیشن رفته و تمام پروژه را زیر نظر داشته باشید.
در معماری میکروسرویس اگر شما مثلا بخواهید قسمت ثبت نام کاربران را تغییر دهید نیازی به ایجاد تغییر در کل اپلیکیشن ندارید و تنها نیاز است که سراغ آن اپلیکیشن کوچک بروید که مسئولیت این کار را بر عهده دارد. حال با درک این تفاوتها بیایید به صورت کامل با خود معماری میکروسرویس آشنا شویم.
معماری میکروسرویس به چه صورتی کار میکند؟
معماری میکروسرویس یک معماری مهندسی نرم افزار است که به شما اجازه میدهد تا یک اپلیکیشن بزرگ را با استفاده از مجموعهای از اپلیکیشنهای کوچکتر ایجاد کنید و آنها را توسعه دهید. هر کدام از این اپلیکیشنها که به عنوان یک سرویس شناخته خواهند شد از کارایی مستقلی برخوردار هستند و روی دیگر بخشها و سرویسها تاثیر نمیگذارند. به همین دلیل زمانی که شما به عنوان مثال قصد ایجاد تغییر در قسمت ثبت نام وبسایت را داشتید اگر مشکلی بوجود آوردید، کل سرویس و وبسایت شما نابود نخواهد شد.
در تصویر زیر میتوانید یک مثال از معماری میکروسرویس را مشاهده کنید. در این حالت همانطور که مشاهده میکنید ما یک میکروسرویس برای رابط کاربری، جستجو، پرداخت و نظردهی در اختیار داریم که همه این موارد به صورت مستقل هستند اما در کنار همدیگر نیز کار میکنند:
مثالی از معماری میکروسرویس
اما اگر همین حالت را در یک اپلیکیشن یکپارچه یا Monolithic داشته باشیم، همه واحدها در یک اپلیکیشن بسیار بزرگ قرار خواهند گرفت که از همدیگر استقلال نداشته و ایجاد کوچکترین تغییر روی یک قسمت میتواند کل اپلیکیشن را با مشکل مواجه کند. در تصویر زیر میتوانید ساختار میکروسرویس بالا را به صورت یک اپلیکیشن یکپارچه نگاه کنید:
اپلیکیشن یکپارچه یا Monolithic
با در نظر گرفتن مواردی که تا به حال گفته شد بیایید یک جدول از تفاوتهای این دو معماری را طراحی کنیم. در جدول زیر میتوانید اطلاعات کاملی از تفاوت این دو مورد را پیدا کنید:
چالشهای میکروسرویس
مطمئنا تا به اینجای مقاله متقاعد شدهاید که استفاده از میکروسرویس میتواند مزایای بسیار زیادی برای توسعه دهندگان و برنامه نویسها داشته باشد. اما در کنار این مزایا، میکروسرویس یکسری چالش و مشکلات نیز دارد. در ادامه این مقاله قصد داریم سراغ این چالشها و مشکلات برویم.
- سرویسهای موجود در میکروسرویس تنها زمانی میتوانند به صورت معنادار کار بکنند که با همدیگر ارتباط داشته باشند. ایجاد این ارتباط در بین سرویسها کار چندان آسانی نخواهد بود.
- در مقایسه با معماری یکپارچه، الگوی معماری میکروسرویس نیاز به نظارت بسیار بیشتری دارد. شما باید کارکرد هر سرویس را به صورت جداگانه بررسی کنید و مطمئن شوید که همه آنها به خوبی کار میکنند.
- برای ایجاد معماری میکروسرویس نیاز است که افراد مختلف با تخصصهای متفاوت حضور داشته باشند. این کار هزینههای طراحی و توسعه اپلیکیشن را بسیار بالا میبرد.
- مدیریت هر سرویس به صورت جداگانه ممکن است به یک تیم برنامه نویسی نیاز داشته باشد. همچنین هر سرویس خود میتواند از سرویسهای دیگری نیز بهره بگیرد که کار را دو چندان پیچیده میکند.
نتیجهگیری
استفاده از معماری میکروسرویس بنا به نیاز و موقعیت مالی شرکت و یا استارتاپ یک انتخاب معقول و بسیار هوشمندانه است. البته این موضوع را در نظر داشته باشید که میکروسرویس برای همگان مناسب نبوده و ممکن است به یک دردسر نیز تبدیل شود. به همین دلیل بهتر است به صورت خردمندانه انتخاب کنید. در آینده مقالات بسیار بیشتری در زمینه میکروسرویس را در وبسایت آموزشگاه تحلیل داده میتوانید مطالعه کنید.