میکروسرویس چیست؟

میکروسرویس چیست؟

فهرست مطالب :

اطلاعات شناسنامه‌ای کتاب میکروسرویس

  • عنوان کتاب (به زبان فارسی): میکرو‌سرویس
  • عنوان کتاب (به زبان انگلیسی): Micro service
  • نام کامل نویسنده: مهندس علیرضا ارومند
  • برنامه‌ریزی واجرا: شرکت فن‌آوری اطلاعات نیک آموز
  • تاریخ انتشار: 1399
  • ناشر: کلید آموزش
  • تعداد صفحات: 183

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

میکروسرویس کتابی نوشته شده توسط مهندس علیرضا ارومند دارای فوق لیسانس نرم‌افزار از دانشگاه شیراز است. وی هم‌اکنون به عنوان Technical manager شرکت داتین، درحوزه‌ توسعه سیستم‌های بانکداری مشغول به فعالیت است.

خلاصه‌ای از پیشگفتار میکروسرویس

کتاب میکروسرویس کتاب ویژه‌ای در دنیای نرم‌افزارها بوده است زیرا دنیای نرم‌افزارها به سرعت در حال گسترش است. شرکت‌های بزرگ همواره کسب و کارهای خود را بر اساس نرم‌افزارها بنا نهاده‌اند. با توجه به بازار کسب و کار، لازم است نرم‌افزارها توانایی رقابت را ایجاد کنند. برای داشتن نرم‌افزاری قابل رقابت باید چندین ویژگی مختلف در هر نرم‌افزاری وجود داشته باشد. نرم‌افزارها باید قابلیت تغییر سریع داشته باشند، به علاوه پایداری بالایی داشته باشند. نرم‌افزارها باید امکان پاسخ به تعداد زیادی درخواست را دارا باشند و از امنیت بالایی برخوردار باشند. به همین دلیل در حال حاضر معماری میکروسرویس به عنوان یکی از به‌ روزترین روش‌های توسعه نرم‌افزار توسط بسیاری از شرکت‌های بزرگ مورد استفاده قرار گرفته است.

در چنین شرایطی همه ارکان توسعه نرم‌افزار تحت تاثیر قرار گرفته است. یکی از این ارکان‌ اساسی معماری نرم افزار است. معماری سنتی و یکپارچه گذشته دیگر توانایی همراهی با این سرعت تغییرات را دارا نیست. ابتدا به بررسی دلایل عدم کاربردی بودن معماری‌های سنتی پرداخته و محاسن و راهکارهای میکرو‌سرویس‌ها را برای رفع مشکلات معماری یکپارچه بیان خواهیم کرد. در بخش بعد به با توجه به ماهیت توزیع شده سیستم‌های میکروسرویس در مورد ارتباط بین سرویس‌های مختلف و چالش‌های ایجاد شده صحبت خواهد شد.

چالش‌هایی از قبیل تعیین حوزه هر سرویس، مدیریت داده‌های توزیع شده، برقراری امنیت در معماری جدید و استفاده از ابزارها و روش‌های جدید بخشی از این پیچیدگی‌ها و چالش‌ها است که باید به آن‌ها جواب داده‌ شود.

دنیا قبل از میکروسرویس به چه صورت بود؟

میکروسرویس‌

فرض کنید شما برای توسعه یک نرم‌افزار دعوت به همکاری شده‌اید. از شما خواسته شده است تا یک CMS خبری توسعه بدهید که کارش بسیار ساده است. خبرنگارها امکان ثبت اخبار متنی دارند، دبیرها و سردبیرها امکان انتخاب و انتشار اخبار در صفحات سایت دارند و در نهایت کاربران سایت امکان مشاهده‌ی مطالب سایت را خواهند داشت.

از آنجا که شما یک توسعه‌دهنده حرفه‌ای هستید احتمالا سراغ یک ابزار خوب و یک ساختار خوب و تمیز خواهید رفت، مثلا معماری Hexagonal یا معماری Onion برای توسعه انتخاب می‌کنید و در نهایت یک نرم افزار بسیار تمیز توسعه می‌دهید. در همچین شرایطی احتمالا منطق برنامه در مرکز برنامه قرار گرفته و جاهایی که نیاز به ارتباط با زیرساخت و استفاده از ابزار دارید به جای وابسته شدن به تکنولوژی و زیرساخت از اینترفیس‌ها استفاده می‌کنید و وابستگی‌ها را به خارج از دامنه اصلی برنامه هدایت می‌کنید خروجی مناسب برای برنامه خودتان طراحی و پیاده‌سازی می‌کنید.

پیش به سوی جهنم!

از قدیم گفتند: “هیچ ارزانی بی‌حکمت نیست” اگر بخواهیم به زبان برنامه‌نویسی ترجمه کنیم می‌شود “هیچ سادگی بدون محدودیت نیست.” هر نرم‌افزار و پروژه‌ای در صورتی که موفق بشود قطعا تمایل به رشد دارد و موفقیت بیشتر پروژه موجب رشد بیشتر پروژه خواهدشد. در نهایت بعد از مدتی پروژه کوچک و ساده ما تبدیل به هیولایی بزرگ و وحشتناک خواهد شد.

اما ممکن است به این فکر کنید که زیاد شدن حجم کدها در طول دوران توسعه نرم‌افزار و تغییرات آن چه مشکلی می‌‌تواند داشته باشد؟ در ادامه به چند مورد از این مشکلات خواهیم پرداخت.

مشکل اول:

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

مشکل دوم:

سورس کد حجیم می‌تواند باعث پایین آمدن سرعت توسعه نرم‌افزار شود.

مشکل سوم:

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

مشکل چهارم:

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

مشکل پنجم:

کل برنامه در یک سیستم و در قالب یک پروسه اجرا خواهدشد. پس اگر ایرادی در هر یک از قسمت‌های برنامه به‌وجود بیاید،

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

مشکل ششم:

عدم توانایی در به کارگیری ابزارها و تکنولوژی‌های جدید، یکی دیگر از ایرادات این روش توسعه نرم افزار است.


برای تهیه کتاب میکروسرویس با تخفیف ویژه به وب سایت نیک آموز مراجعه کنید.


برای مشاهده و معرفی کتاب‌های تخصصی و فیلم‌های آموزشی بیشتر می‌توانید به سایت eBPM مراجعه کنید.

eBPM در شبکه های اجتماعی