اصطلاح میکروسرویس در سالهای اخیر بوجود آمده تا روش خاصی را برای طراحی نرمافزار بعنوان مجموعه خدمات استقرار یافته توصیف کند.
اگرچه تعریف دقیقی از این سبک معماری وجود ندارد، اما ویژگیهای مشترک خاصی در هر سازمان نظیر توانایی کسب و کار، استقرار خودکار و کنترل غیرمتمرکز دادهها وجود دارد.
میکروسرویس ها برای حل چنین مسائلی طراحی شدهاند. میکروسرویس از یک معماری بهینه شده بهره برده است.
در این معماری هر کارکرد تجاری به صورت یک سرویس ارائه میشود. هر سرویس میتواند به صورت مستقل از سرویسهای دیگر میزبانی و هدایت شود.
به طور خلاصه معماری میکروسرویس رویکردی برای توسعه یک برنامه واحد به عنوان مجموعهای از سرویسهای کوچک است که هر یک در فرایند خود اجرا میشوند و با مکانیزمهایی مرتبط میشوند که اغلب یک API است.
این خدمات در کنار قابلیتهای تجاری، بطور مستقل توسط ماشین های استقرار یافته خودکار قابل استفاده هستند.
حداقل مدیریت متمرکز در این سرویسها باعث میشود تا هر سرویسی این امکان را داشته باشد تا توسط زبانهای مختلف و بر اساس دیتابیسهای متنوع ایجاد شده باشد.
My Microservices Resource Guide پیوندهایی به بهترین مقالات ،فیلم ها ،کتاب ها و پادکست های مربوط به میکروسرویس ارائه میدهد.
مقایسه میکروسرویس و سبک یکپارچه
یک برنامه یکپارچه به صورت یک واحد ساخته شده است. برنامههای سازمانی اغلب در سه قسمت اصلی ساخته میشوند:
- رابط کاربری سمت کلاینت متشکل از صفحات HTML
- جاوا اسکریپت که در مرورگر روی دستگاه کاربر اجرا می شود.
- دیتابیس
برنامه سمت سرور درخواستهای HTTP را کنترل میکند، دیتا را از دیتابیس بازیابی و آپدیت میکند و نماهای HTML را برای ارسال به مرورگر ایجاد میکند.
تمام منطق برای رسیدگی به یک درخواست، در یک فرآیند اجرا می شود.
به توسعهدهنده امکان میدهد از ویژگیهای اساسی زبان برنامهنویسی خود برای تقسیم برنامه به کلاسها، توابع و… استفاده نماید.
برنامههای یکپارچه میتوانند موفقیت آمیز باشند، اما به طور فزایندهای مردم از آنها ناامید میشوند، خصوصاً زمانی که برنامههای بیشتری در cloud استفاده میشوند.
مزایای پیروی از میکروسرویس
با استفاده از میکروسرویسها نرم افزارهای پایدارتری میتوان تولید نمود چراکه هر زیرسرویس میتواند به تنهایی تست و عیبیابی گردد.
زیرسرویسها میتوانند بر روی ماشینهای مختلف باشند و این امر اختلالی در ارتباط و اجرای هر بخش ایجاد نمیکند.
یکی از مزایای قابل توجه استفاده از میکروسرویس در فرایند تولید نرمافزار، توزیع منابع سرور در هنگام اجرای برنامه است.
این مزیت باعث میشود در صورتی که یک زیرسرویس منابع سخت افزاری بیشتری نیاز داشته باشد بتواند از آن بهرهمند گردد و اگر منابع در دسترس نبود بدون ایجاد اختلال در عملکرد سایر زیرسرویسها، به ماشین دیگری منتقل گردد.