تاریخچه مدل معماری میکروسرویس ها به خیلی قبل تر از معماری سرویس گرا در دهه 90 میلادی برمی گردد و همه برنامه نویسان با ایده های پشت این مدل در مباحثی نظیر Object-Oriented Programming (همه چیز آبجکت است) و Actor Model( همه چیز بازیگر است) در ریاضیات و علوم پایه کامپیوترآشنا هستند.

در دو دهه اخیر در سخنرانی ها و کنفرانس های مهم دنیای نرم افزار، مدل های معماری مانند micro-web-services، software systems و … مطرح شدند و رفته رفته با ظهور مفاهیم DevOps این مدل معماری اهمیت بسیاری پیدا کرد. در واقع مدل معماری میکروسرویس ها به نوعی پیاده سازی خاصی از معماری سرویس گراست که درآن سرویس ها به صورت سیستم های نرم افزاری مستقل، در کنار یکدیگر چیدمان شده اند تا در نگاهی بالاتر هدف تجاری محصول نهایی را به ثمر برسانند.

در سری مقالات “مدل معماری میکروسرویس ها” قصد داریم ویژگی های اصلی و پایه این مدل معماری را بررسی نماییم.

مدل معماری میکروسرویس ها

این مدل شامل مجموعه ای از سرویس های خودمختار (autonomous)  است که در تعامل با یکدیگر برای انجام یک هدف کلی کار می کنند و هر یک حوزه مشخصی دارند. هر یک از این سرویس ها، در واقع یک وب سرویس است که می تواند به طور مستقل دیپلوی/ آن دیپلوی شود و برحسب میزان درخواست، روی سرورها توزیع شده و به طور داینامیک به نمونه های بیشتر/کمتر مقیاس پیدا کند.

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

  • سرویس خودمختار یعنی چه و چه سرویس هایی در دسته خودمختار قرار می گیرند؟
  • این سرویس ها چگونه می توانند یکدیگر را ببینند و با یکدیگر تعامل داشته باشند؟
  • حوزه وظایف هر سرویس چگونه انتخاب می شود و چه معیارهایی باید در نظر گرفته شود؟
  • مدیریت تنظیمات و پیکربندی این سرویس ها به چه نحوی صورت می گیرد؟
  • توزیع پذیری سرویس ها چگونه انجام و مدیریت می شود؟
  • منظور از مقیاس پذیری داینامیک چیست و چگونه این امر امکان پذیر می گردد؟
  • عیب یابی و مدیریت خطاهای هر یک از سرویس ها چگونه انجام می گیرد؟

تصویر زیر گویای ویژگی های اصلی مدل معماری میکروسرویس ها در مقایسه با مدل معماری یکپارچه (monolithic) می باشد.

microservices vs monolithics
مدل معماری میکروسرویس در مقایسه با معماری یکپارچه

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

با ما همراه باشید تا در این سری مقالات به ویژگی های مدل معماری میکروسرویس ها عمیق تر بپردازیم.