Microservice architecture - معماری مایکروسرویس

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

‫صفحه‬1
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
‫مایکروسرویس‬ ‫معماری‬
(Microservice Architecture)
‫مهجوریان‬ ‫امیر‬
‫پویا‬ ‫سیستم‬ ‫کاریز‬ ‫شرکت‬ ‫عامل‬ ‫مدیر‬:karizsystem.ir
‫سازمانی‬ ‫معماری‬ ‫آزمایشگاه‬ ‫فنی‬ ‫مدیر‬‫سرویس‬‫گرا‬:soea.sbu.ac.ir
‫چارچوب‬ ‫مدیرفنی‬‫ملی‬‫ایران‬ ‫سازمانی‬ ‫معماری‬ieaf.ir
Mahjoorian@ieaf.ir‫و‬Mahjoorian@karizsystem.ir
3)‫مفاهیم‬ ‫و‬ ‫تعاریف‬‫مایکروسرویس‬ ‫معماری‬
3-3)‫تعاریف‬ ‫و‬ ‫تاریخچه‬
‫مایکروسرویس‬ ‫معماری‬(Microservice Architecture‫به‬ ‫یا‬ )‫مایکروسرویس‬ ‫اختصار‬‫ها‬‫در‬ ‫که‬‫منابع‬
‫میکروسرویس‬ ‫نام‬ ‫به‬ ‫گاهی‬ ‫فارسی‬‫ها‬‫به‬ ‫اخیر‬ ‫چندسال‬ ‫در‬ ،‫است‬ ‫شده‬ ‫ترجمه‬ ‫نیز‬‫و‬ ‫گسترش‬ ‫حال‬ ‫در‬ ‫شدت‬
‫در‬ ‫فراگیری‬‫توسعه‬ ‫میان‬‫معماران‬ ‫و‬ ‫دهندگان‬.‫است‬‫واژه‬ ‫به‬ ‫مستقیم‬ ‫اشاره‬ ‫اولین‬ ‫اگرچه‬"‫مایکروسرویس‬‫ها‬"‫ب‬‫ه‬
‫سال‬1111‫نرم‬ ‫معماری‬ ‫کارگاه‬ ‫یک‬ ‫در‬ ‫و‬‫بر‬ ‫افزار‬‫می‬‫گردد‬،‫در‬ ‫موضوع‬ ‫این‬ ‫شدن‬ ‫داغ‬ ‫اما‬‫طی‬‫سال‬‫های‬1112‫و‬
1112‫بود‬‫؛‬‫هم‬‫اکنون‬‫مایکروسرویس‬‫ها‬‫موضوعات‬ ‫از‬ ‫یکی‬‫جذاب‬‫در‬‫نرم‬ ‫دنیای‬‫می‬ ‫محسوب‬ ‫معماری‬ ‫و‬ ‫افزار‬‫شود‬
‫و‬‫کتاب‬ ،‫مقاالت‬ ‫هرماه‬‫ارایه‬ ‫و‬ ‫ها‬‫آ‬ ‫از‬ ‫جدیدی‬ ‫های‬‫می‬ ‫منتشر‬ ‫ن‬‫کنفرانس‬ ‫در‬ ‫و‬ ‫شود‬‫ها‬‫یا‬‫تجاری‬ ‫سمینارهای‬-
‫جذب‬ ‫خود‬ ‫به‬ ‫را‬ ‫زیادی‬ ‫عالقمندان‬ ‫نیز‬ ‫علمی‬‫می‬‫کند‬‫؛‬‫اساس‬ ‫بر‬ ‫حتی‬‫گزارش‬‫های‬‫میزان‬ ‫از‬ ‫گوگل‬‫رشد‬‫جستجوی‬
‫عبار‬‫ا‬‫با‬ ‫مرتبط‬ ‫ت‬‫مایکروسرویس‬‫ها‬‫می‬‫به‬ ‫توان‬‫آن‬ ‫محوری‬ ‫نقش‬‫در‬‫و‬ ‫معماری‬‫سیستم‬ ‫توسعه‬‫ها‬‫پی‬.‫برد‬
‫نیز‬ ‫تجاری‬ ‫دنیای‬ ‫در‬‫شرکت‬‫مطرحی‬ ‫های‬‫پ‬‫ی‬‫پیاده‬ ‫شگام‬‫بوده‬ ‫آن‬ ‫استقرار‬ ‫و‬ ‫سازی‬‫می‬ ‫جمله‬ ‫از‬ ‫که‬ ‫اند‬‫به‬ ‫توان‬
‫شرکت‬‫های‬Uber،Netflix،Amazon،Ebay‫و‬Sound Cloud.‫نمود‬ ‫اشاره‬‫تحقیقاتی‬ ‫اساس‬ ‫بر‬
‫توسط‬ ‫که‬ ‫متفاوتی‬1
Forrester،1
Redhat‫و‬3
Dimensional Research‫از‬ ‫بیش‬ ،‫است‬ ‫شده‬ ‫انجام‬
01‫پرسش‬ ‫درصد‬‫کرده‬ ‫اعالم‬ ‫شوندگان‬‫برنامه‬ ‫که‬ ‫اند‬‫پیاده‬ ‫و‬ ‫توسعه‬ ‫برای‬ ‫ای‬‫سازی‬‫مایکروسرویس‬ ‫معماری‬‫د‬.‫ارند‬
1
Forrester Data Global Business Technographics® Developer Survey, 2017
1 Redhat 2017 Microservices Survey
3 Global Microservices Trends: A Survey of Development Professionals
‫صفحه‬1
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
‫مفاهیم‬ ‫و‬ ‫اصول‬ ‫خصوص‬ ‫در‬ ‫مطلب‬ ‫این‬ ‫در‬‫معماری‬‫تکنیک‬ ‫و‬ ‫ابزارها‬ ،‫مایکروسرویس‬‫چالش‬ ‫و‬ ‫آن‬ ‫های‬‫های‬
‫پیش‬‫پیاده‬ ‫روی‬‫سازی‬،‫سازمانی‬ ‫مقیاس‬ ‫در‬‫مطالب‬‫ی‬‫خواهد‬ ‫ارایه‬‫مختل‬ ‫تعاریف‬ ‫ابتدا‬ ‫در‬ .‫شد‬‫ف‬‫ی‬‫مرا‬ ‫توسط‬ ‫که‬‫جع‬
‫معتبر‬‫می‬ ‫مرور‬ ،‫شده‬ ‫ارایه‬:‫گردد‬
‫مایکروسرویس‬‫ها‬‫نرم‬ ‫توسعه‬ ‫تکنیک‬ ‫یک‬‫سرویس‬ ‫معماری‬ ‫سبک‬ ‫از‬ ‫شده‬ ‫مشتق‬ ‫افزار‬‫اس‬ ‫گرا‬‫ت‬
‫مجموعه‬ ‫از‬ ‫که‬‫سرویس‬ ‫از‬ ‫ای‬‫خوش‬ ‫های‬‫مایکروسرویس‬ ‫معماری‬ ‫در‬ .‫است‬ ‫شده‬ ‫تشکیل‬ ‫تعریف‬
‫پروتکل‬‫ارتباطی‬ ‫های‬‫سرویس‬ ‫و‬ ‫هستند‬ ‫پلتفرم‬ ‫از‬ ‫مستقل‬ ‫و‬ ‫سبک‬‫ها‬‫معیی‬ ‫مسئولیت‬ ‫و‬ ‫دامنه‬‫ن‬
‫دارند‬ ‫مشخصی‬ ‫و‬‫توسعه‬ ‫تسهیل‬ ‫و‬ ‫سیستم‬ ‫ماژوالریتی‬ ‫بهبود‬ ‫معماری‬ ‫این‬ ‫مزایای‬ ،‫استقر‬ ،‫و‬ ‫ار‬
‫ا‬ ‫سیستم‬ ‫تست‬‫ست‬‫؛‬‫توسعه‬ ‫سیستم‬ ‫همچنین‬‫د‬ ‫یافته‬‫ا‬‫مقیاس‬ ‫رای‬‫باال‬ ‫پذیری‬‫ب‬ ‫سرعت‬ ‫و‬‫االتر‬
‫اعمال‬‫تغییر‬‫معماری‬ ‫این‬ .‫است‬‫با‬‫رویکر‬‫د‬DevOps‫نرم‬ ‫پشتیبانی‬ ‫و‬ ‫توسعه‬ ‫در‬‫افزار‬‫ها‬
‫هماهنگ‬‫دارد‬ ‫ی‬( .Wikipedia)
‫مایکروسرویس‬ ‫معماری‬ ‫سبک‬‫نرم‬ ‫یک‬ ‫توسعه‬ ‫برای‬ ‫رویکردی‬‫سرویس‬ ‫تعدادی‬ ‫از‬ ‫متشکل‬ ‫افزار‬
‫به‬ ‫سرویس‬ ‫هر‬ ‫که‬ ‫است‬ ‫مستقل‬ ‫و‬ ‫کوچک‬‫اتکا‬‫ء‬‫طریق‬ ‫از‬ ‫و‬ ‫شده‬ ‫اجرا‬ ‫خودش‬ ‫زیرساخت‬ ‫و‬ ‫منابع‬
‫پروتکل‬‫بر‬ ‫مبتنی‬ ‫سبک‬ ‫های‬HTTP‫این‬ .‫دارد‬ ‫ارتباط‬ ‫دیگران‬ ‫با‬‫سرویس‬‫قابلیت‬ ‫براساس‬ ‫ها‬-
‫کسب‬ ‫های‬‫می‬ ‫ساخته‬ ‫و‬ ‫طراحی‬ ‫وکار‬‫بستر‬ ‫بر‬ ‫و‬ ‫شوند‬‫های‬‫زبان‬ ‫با‬ ‫فناوری‬‫برنامه‬ ‫های‬‫نویسی‬
‫سرویس‬ ‫این‬ .‫هستند‬ ‫استقرار‬ ‫قابل‬ ‫مختلفی‬‫هر‬ ‫و‬ ‫دارند‬ ‫را‬ ‫متمرکز‬ ‫مدیریت‬ ‫به‬ ‫نیاز‬ ‫حداقل‬ ‫ها‬
‫م‬ ‫مدیریت‬ ‫را‬ ‫خود‬ ‫به‬ ‫مخصوص‬ ‫داده‬ ‫پایگاه‬ ‫سرویس‬‫ی‬.‫کند‬(Martin Fowler)
‫مایکروسرویس‬‫به‬ ‫ها‬‫سرویس‬ ‫خالصه‬ ‫صورت‬‫دانه‬ ‫های‬‫یکدیگر‬ ‫با‬ ‫که‬ ‫هستند‬ ‫خودمختاری‬ ‫و‬ ‫ریز‬
‫می‬ ‫همکاری‬‫دیگر‬ ‫تغییر‬ ‫به‬ ‫منجر‬ ‫اینکه‬ ‫بدون‬ ‫کند‬ ‫تغییر‬ ‫مستقال‬ ‫بتواند‬ ‫باید‬ ‫سرویس‬ ‫هر‬ .‫کنند‬
‫سرویس‬‫استفاده‬ ‫یا‬ ‫مرتبط‬ ‫های‬( .‫شود‬ ‫سرویس‬ ‫از‬ ‫کنندگان‬Sam Newman)
‫معماری‬‫نرم‬ ‫یک‬ ‫شکست‬ ‫بر‬ ‫مبتنی‬ ‫مهندسی‬ ‫رویکرد‬ ‫یک‬ ‫مایکروسرویس‬‫ماژول‬ ‫به‬ ‫افزار‬‫های‬
‫تک‬-‫می‬ ‫مستقر‬ ‫و‬ ‫تولید‬ ‫مستقال‬ ‫که‬ ‫است‬ ‫کارکردی‬‫واسط‬ ‫با‬ ‫و‬ ‫شوند‬‫خوش‬ ‫های‬‫دی‬ ‫با‬ ‫تعریف‬‫گر‬
‫سرویس‬‫سرویس‬ ‫این‬ .‫دارند‬ ‫ارتباط‬ ‫ها‬‫تیم‬ ‫توسط‬ ‫ها‬‫می‬ ‫پشتیبانی‬ ‫و‬ ‫تولید‬ ‫کوچکی‬ ‫های‬‫ش‬‫وند‬
‫پ‬ ‫سرویس‬ ‫حیات‬ ‫چرخه‬ ‫تمام‬ ‫از‬ ‫که‬‫می‬ ‫شتیبانی‬( ‫کند‬IBM)
‫مجموعه‬ ‫از‬ ‫مایکروسرویس‬ ‫معماری‬‫سرویس‬ ‫از‬ ‫ای‬‫است‬ ‫شده‬ ‫تشکیل‬ ‫کوچک‬ ‫و‬ ‫خودمختار‬ ‫های‬
‫کسب‬ ‫قابلیت‬ ‫یک‬ ‫و‬ ‫بوده‬ ‫مستقل‬ ‫سرویس‬ ‫هر‬ ‫که‬‫پیاده‬ ‫را‬ ‫وکار‬‫می‬ ‫سازی‬( ‫نماید‬Microsoft)
‫صفحه‬3
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
‫نرم‬ ‫توسعه‬ ‫به‬ ‫ماژوالر‬ ‫و‬ ‫چابک‬ ‫رویکرد‬ ‫یک‬ ‫مایکروسرویس‬ ‫معماری‬‫برخالف‬ ‫که‬ ‫است‬ ‫افزار‬
‫نرم‬‫یک‬ ‫افزارهای‬‫تکه‬-‫مولفه‬ ‫همه‬ ‫که‬‫قابلیت‬ ‫و‬ ‫ها‬‫شده‬ ‫آمیخته‬ ‫بایکدیگر‬ ‫سیستم‬ ‫های‬‫اند‬-
‫مجموعه‬ ‫بر‬ ‫مبتنی‬‫سرویس‬ ‫از‬ ‫ای‬‫کوچک‬ ‫های‬‫مستقل‬ ‫و‬ ‫تر‬‫هم‬ ‫از‬‫هر‬ .‫است‬ ‫سست‬ ‫ارتباط‬ ‫با‬
‫سرویس‬‫مسوول‬‫را‬ ‫سیستم‬ ‫کل‬ ‫از‬ ‫مشخص‬ ‫کارکرد‬ ‫یک‬ ‫و‬ ‫است‬ ‫خود‬ ‫پردازش‬ ‫و‬ ‫وظایف‬ ‫انجام‬
‫می‬ ‫پشتیبانی‬‫دیگر‬ ‫با‬ ‫و‬ ‫کند‬‫سرویس‬‫طریق‬ ‫از‬ ‫ها‬API( ‫دارد‬ ‫ارتباط‬Oracle)
‫جمع‬ ‫در‬‫می‬ ‫شده‬ ‫تعاریف‬ ‫بندی‬‫گفت‬ ‫توان‬:"‫مایکروسرویس‬ ‫معماری‬‫نرم‬ ‫معماری‬ ‫از‬ ‫خاصی‬ ‫سبک‬ ،‫مشتق‬ ‫و‬ ‫افزار‬-
‫سرویس‬ ‫معماری‬ ‫از‬ ‫شده‬‫خودمختاری‬ ‫آن‬ ‫هدف‬ ‫که‬ ‫است‬ ‫گرا‬‫باالی‬‫سرویس‬‫کارکردی‬ ‫منطق‬ ‫نظر‬ ‫از‬ ‫ها‬-‫داده‬‫و‬ ‫ای‬
‫پیاده‬ ‫پلتفرم‬ ‫نیز‬‫اج‬ ‫و‬ ‫سازی‬‫سرویس‬ ‫معماری‬ ‫بر‬ ‫عالوه‬ ‫معماری‬ ‫سبک‬ ‫این‬ .‫است‬ ‫را‬‫از‬ ‫گرا‬‫مفاهیم‬‫معماری‬‫رخدا‬‫د‬
‫و‬ ‫محور‬‫سیستم‬‫توزیع‬ ‫های‬‫بهره‬ ‫نیز‬ ‫شده‬.‫است‬ ‫برده‬"
‫نمونه‬‫بر‬ ‫مبتنی‬ ‫اینترنتی‬ ‫فروش‬ ‫ساده‬ ‫سیستم‬ ‫یک‬ ‫عناصر‬ ‫از‬ ‫ای‬‫داده‬ ‫نشان‬ ‫زیر‬ ‫شکل‬ ‫در‬ ‫مایکروسرویس‬ ‫معماری‬
‫است‬ ‫شده‬.
‫شکل‬3-3:‫نمونه‬‫مایکروسرویس‬ ‫معماری‬ ‫بر‬ ‫مبتنی‬ ‫اینترنتی‬ ‫فروش‬ ‫ساده‬ ‫سیستم‬
3-2)‫ویژگی‬ ‫و‬ ‫اصول‬‫مایکروسرویس‬ ‫معماری‬ ‫های‬
‫مهمترین‬‫و‬ ‫اصول‬‫ویژگی‬‫های‬‫معماری‬‫مایکروسرویس‬:‫است‬ ‫زیر‬ ‫قرار‬ ‫به‬
‫مشخص‬ ‫دامنه‬ ‫یک‬ ‫مسوول‬ ‫سرویس‬ ‫هر‬‫به‬ ‫و‬‫تعریف‬ ‫خوبی‬‫شده‬‫سیستم(صورت‬ ‫از‬)‫مساله‬‫است‬‫که‬‫مس‬‫تقال‬
(‫تولید‬Build‫و‬ )(‫استقرار‬Deploy‫می‬ ).‫یابد‬
‫صفحه‬2
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
‫فناوری‬ ‫از‬ ‫سرویس‬ ‫هر‬‫بهره‬ ‫خود‬ ‫مناسب‬ ‫ابزارهای‬ ‫و‬ ‫ها‬‫می‬‫برد‬‫سرویس‬ ‫همه‬ ‫ندارد‬ ‫لزومی‬ ‫و‬‫یک‬ ‫های‬
‫فناوری‬ ‫یک‬ ‫از‬ ‫سیستم‬،‫زبان‬‫برنامه‬‫یا‬ ‫نویسی‬.‫کنند‬ ‫استفاده‬ ‫پلتفرم‬
‫سرویس‬‫ها‬‫واسط‬ ‫با‬‫ت‬ ‫خوش‬ ‫های‬،‫دارند‬ ‫تعامل‬ ‫یکدیگر‬ ‫با‬ ‫سبک‬ ‫و‬ ‫عریف‬‫ب‬ ‫باید‬ ‫سرویس‬ ‫هر‬ ‫خروجی‬‫ت‬‫واند‬
‫سرویس‬ ‫ورودی‬.‫گیرد‬ ‫قرار‬ ‫دیگری‬ ‫های‬
‫سرویس‬ ‫هر‬‫مسوول‬‫داده‬ ‫مدیریت‬‫می‬ ‫و‬ ‫است‬ ‫خود‬ ‫های‬‫ابزارهای‬ ‫انواع‬ ‫از‬ ‫تواند‬DBMS.‫نماید‬ ‫استفاده‬
‫سرویس‬ ‫معماری‬ ‫کلی‬ ‫اصول‬.‫است‬ ‫صادق‬ ‫نیز‬ ‫معماری‬ ‫این‬ ‫در‬ ‫گرا‬
‫پیام‬ ‫روش‬ ‫از‬ ‫استفاده‬ ‫ترجیح‬(‫غیرهمزمان‬ ‫رسانی‬Asynchronous)‫همزمان‬ ‫به‬ ‫نسبت‬
(‫کاریگرافی‬ ‫همکاری‬ ‫روش‬ ‫از‬ ‫استفاده‬ ‫ترجیح‬Choreography‫ارکستریشن‬ ‫به‬ ‫نسبت‬ )
3-1)‫یک‬ ‫معماری‬ ‫دربرابر‬ ‫مایکروسرویس‬ ‫معماری‬(‫تکه‬Monolithic)
‫کتاب‬ ‫از‬ ‫بسیاری‬‫م‬ ‫و‬ ‫ها‬‫قاالتی‬‫مایکروسرویس‬ ‫معماری‬ ‫درباره‬ ‫که‬‫دارد‬ ‫وجود‬‫معماری‬ ‫تمایز‬ ‫و‬ ‫ویژگی‬ ‫توضیح‬ ‫برای‬ ،
‫با‬ ‫مقایسه‬ ‫از‬ ‫مایکروسرویس‬‫یک‬ ‫معماری‬‫تکه‬‫استفاده‬‫کرده‬.‫اند‬‫سیستم‬ ‫در‬ ‫نویسندگان‬ ‫این‬ ‫نظر‬ ‫مبنای‬ ‫بر‬‫ه‬‫ای‬
‫یک‬‫مولفه‬ ‫مجموعه‬ ،‫تکه‬‫ها‬-‫سرویس‬‫ها‬-‫داده‬‫نمی‬ ‫که‬ ‫است‬ ‫آمیخته‬ ‫هم‬ ‫در‬ ‫چنان‬ ‫ها‬‫بلوک‬ ‫توان‬‫این‬ ‫سازنده‬ ‫های‬
‫سیستم‬‫و‬ ‫کرده‬ ‫جدا‬ ‫هم‬ ‫از‬ ‫مستقال‬ ‫را‬ ‫ها‬‫یا‬‫تغییر‬(‫جایجا‬)‫نمود‬‫؛‬‫ا‬ ‫هدف‬ ‫مایکروسرویس‬ ‫معماری‬ ‫در‬ ‫اما‬‫است‬ ‫ین‬
‫مجموعه‬ ‫به‬ ‫سیستم‬ ‫یک‬ ‫که‬‫مستقل‬ ‫کامال‬ )‫ماژول(سرویس‬ ‫از‬ ‫ای‬(‫خودمختار‬)‫همه‬ ‫سرویس‬ ‫هر‬ ‫که‬ ‫شود‬ ‫تقسیم‬
‫داده‬ ،‫محاسبات‬‫سرویس‬ ‫سایر‬ ‫به‬ ‫اجرا‬ ‫برای‬ ‫و‬ ‫باشد‬ ‫داشته‬ ‫خود‬ ‫در‬ ‫را‬ ‫نیاز‬ ‫مورد‬ ‫قوانین‬ ‫و‬ ‫ها‬‫باشد‬ ‫نداشته‬ ‫نیاز‬ ‫ها‬
‫باشد‬ ‫داشته‬ ‫وجود‬ ‫وابستگی‬ ‫حداقل‬ ‫یا‬.)‫زیر‬ ‫(شکل‬
‫شکل‬3-2:‫مفهومی‬ ‫مقایسه‬‫یک‬ ‫معماری‬‫تکه‬‫مایکروسرویس‬ ‫برابر‬ ‫در‬
‫صفحه‬2
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
3-4)‫مایکروسرویس‬ ‫استخراج‬ ‫و‬ ‫طراحی‬‫ها‬
‫مهمترین‬‫در‬ ‫موضوع‬‫مایکروسرویس‬ ‫معماری‬‫دانه‬ ‫و‬ ‫استخراج‬ ‫نحوه‬ ،‫سرویس‬ ‫بندی‬‫بگونه‬ ‫است‬ ‫ها‬‫این‬ ‫که‬ ‫ای‬
‫سرویس‬‫مرکزی‬ ‫مدیریت‬ ‫به‬ ‫نیاز‬ ‫حداقل‬ ‫و‬ ‫بوده‬ ‫خودمختار‬ ‫کامال‬ ‫ها‬(‫م‬)‫تمرکز‬‫برای‬ ،‫باشد‬ ‫داشته‬ ‫وجود‬ ‫سیستم‬ ‫در‬
‫مجموعه‬ ‫به‬ ‫مساله‬ ‫فضای‬ ‫سرویس‬ ‫استخراج‬‫دامنه‬ ‫از‬ ‫ای‬‫طراحی‬ ‫مسوول‬ ‫تیم‬ ‫هر‬ ‫و‬ ‫شده‬ ‫شکسته‬ ‫ها‬-‫پیاده‬‫سازی‬-
‫دامنه‬ ‫از‬ ‫یکی‬ ‫پشتیبانی‬‫مفاهیم‬ ‫با‬ ‫که‬ ‫بود‬ ‫خواهد‬ ‫ها‬DevOps‫دارد‬ ‫همخوانی‬ ‫نیز‬‫؛‬‫و‬ ‫سرویس‬ ‫استخراج‬ ‫برای‬
‫دامنه‬ ‫انتخاب‬‫مایکروسرویس‬ ‫معماری‬ ‫در‬ ‫ها‬‫می‬ ‫استفاده‬ ‫تکنیک‬ ‫و‬ ‫روش‬ ‫چندین‬ ‫از‬ ‫معموال‬‫معروف‬ ‫که‬ ‫شود‬‫تری‬‫ن‬
‫آن‬‫مبتنی‬ ‫طراحی‬ ‫ها‬( ‫دامنه‬ ‫بر‬Domain Driven Design‫کتاب‬ ،‫است‬ )‫دارد‬ ‫وجود‬ ‫حوزه‬ ‫این‬ ‫در‬ ‫مختلفی‬ ‫های‬
‫معروف‬ ‫که‬‫آن‬ ‫ترین‬‫نوشته‬ ‫ها‬2
Eric Evans‫می‬‫ب‬‫ا‬.‫شد‬‫مجموعه‬ ‫شده‬ ‫گفته‬ ‫متد‬ ‫بر‬ ‫عالوه‬‫تکنیک‬ ‫از‬ ‫ای‬‫های‬
‫سرویس‬ ‫شناسایی‬‫سرویس‬ ‫معماری‬ ‫بر‬ ‫مبتنی‬‫شی‬ ‫و‬ ‫گرا‬‫می‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫نیز‬ ‫گرایی‬‫گیرد‬‫بخ‬ ‫در‬ ‫که‬‫ش‬‫های‬
‫شد‬ ‫خواهند‬ ‫معرفی‬ ‫بعدی‬.
‫صرف‬‫در‬ ‫سرویس‬ ‫شناسایی‬ ‫روش‬ ‫و‬ ‫تکنیک‬ ‫از‬ ‫نظر‬‫مایکروسرویس‬ ‫معماری‬‫که‬ ‫است‬ ‫شده‬ ‫پذیرفته‬ ‫اصل‬ ‫این‬ ،
‫سرویس‬ ‫از‬ ‫مجموعه‬ ‫هر‬ ‫برای‬ ،‫سرویس‬ ‫تغییرات‬ ‫و‬ ‫توسعه‬ ‫در‬ ‫چابکی‬ ‫برای‬‫م‬ ‫های‬‫رویکر‬ ‫با‬ ‫تخصصی‬ ‫تیم‬ ‫یک‬ ‫رتبط‬‫د‬
DevOps.)‫زیر‬ ‫یابد(شکل‬ ‫اختصاص‬
‫شکل‬3-1:‫تیم‬ ‫مسوولیت‬ ‫تقسیم‬ ‫نحوه‬‫طراحی‬ ‫های‬-‫پیاده‬‫سرویس‬ ‫سازی‬
2
Domain-Driven Design: Tackling Complexity in the Heart of Software
‫صفحه‬6
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
3-5)‫ارتباط‬‫سرویس‬ ‫معماری‬‫گرا‬‫با‬‫مایکروسرویس‬ ‫معماری‬
‫بحث‬ ‫مورد‬ ‫موضوعات‬ ‫از‬ ‫یکی‬‫حوزه‬ ‫دراین‬،‫نسبت‬‫مایکروسرویس‬ ‫معماری‬‫سرویس‬ ‫معماری‬ ‫با‬‫است‬ ‫گرا‬‫؛‬‫دلیل‬
‫شباهت‬ ‫امر‬ ‫این‬‫فناوری‬ ‫اشتراکات‬ ‫و‬ ‫ها‬-‫متد‬‫معماری‬ ‫دو‬ ‫دراین‬ ‫ها‬‫د‬ ‫دو‬ ‫خصوص‬ ‫این‬ ‫در‬ .‫است‬‫وجود‬ ‫کلی‬ ‫یدگاه‬
‫دارد‬‫؛‬‫اول‬ ‫دیدگاه‬‫مایکروسرویس‬ ‫معماری‬‫سرویس‬ ‫معماری‬ ‫با‬ ‫تقابل‬ ‫در‬ ‫رویکردی‬ ‫را‬‫می‬ ‫گرا‬‫دان‬‫د‬‫نوعی‬ ‫به‬ ‫و‬
‫سرویس‬ ‫معماری‬‫یک‬ ‫معماری‬ ‫نوعی‬ ‫را‬ ‫گرا‬‫تکه‬‫می‬ ‫قلمداد‬‫کند‬‫آمده‬ ‫آن‬ ‫تغییر‬ ‫برای‬ ‫مایکروسرویس‬ ‫معماری‬ ‫که‬
‫است‬‫معتبر‬ ‫مراجع‬ ‫تایید‬ ‫مورد‬ ‫که‬ ‫دوم‬ ‫دیدگاه‬ .‫تر‬‫فکری‬ ‫پارادایم‬ ‫یک‬ ‫گرا‬ ‫سرویس‬ ‫معماری‬ ‫است‬ ‫معتقد‬ ‫است‬
‫فناوری‬ ‫و‬ ‫است‬‫وب‬ ‫مانند‬ ‫هایی‬-‫سرویس‬ ‫معماری‬ ‫تحقق‬ ‫اول‬ ‫سرویس(نسل‬‫مایکروسرویس‬ ‫یا‬ )‫گرا‬‫نمونه‬ ‫ها‬‫های‬‫ی‬
‫تحقق‬ ‫از‬‫هرکدام‬ ‫که‬ ‫هستند‬ ‫آن‬‫ن‬‫ضعفی‬ ‫و‬ ‫قوت‬ ‫قاط‬.‫دارند‬
‫می‬ ‫نگاهی‬ ‫موضوع‬ ‫بررسی‬ ‫برای‬‫سرویس‬ ‫معماری‬ ‫تعریف‬ ‫به‬ ‫کنیم‬‫توسط‬ ‫گرا‬IBM‫که‬‫در‬‫سال‬1111‫(هفده‬
)‫قبل‬ ‫سال‬‫پایان‬ ‫در‬ ‫نیز‬ ‫نویسنده‬ ‫و‬ ‫بود‬ ‫شده‬ ‫ارایه‬‫ارشد‬ ‫کارشناسی‬ ‫نامه‬2
‫کتابی‬ ‫و‬6
‫بعد‬ ‫که‬‫ا‬‫سال‬ ‫در‬1331‫منتشر‬
‫نمود‬:‫داد‬ ‫ارجاع‬ ‫آن‬ ‫به‬ ،
"‫سرویس‬ ‫معماری‬‫شده‬ ‫توزیع‬ ‫های‬ ‫سیستم‬ ‫ساخت‬ ‫برای‬ ‫رهیافتی‬ ‫گرا‬‫است‬‫افزاری‬ ‫نرم‬ ‫کارکردهای‬ ‫که‬
‫هستند‬ ‫فراخوانی‬ ‫قابل‬ ‫افزارها‬ ‫نرم‬ ‫دیگر‬ ‫توسط‬ ‫هم‬ ‫ها‬ ‫سرویس‬ ‫این‬ .‫کند‬ ‫می‬ ‫ارائه‬ ‫سرویس‬ ‫قالب‬ ‫در‬ ‫را‬
‫سازی‬ ‫یکپارچه‬ ‫برای‬ ‫رهیافت‬ ‫این‬ ،‫گیرند‬ ‫می‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫جدید‬ ‫های‬ ‫سرویس‬ ‫ساخت‬ ‫برای‬ ‫هم‬ ‫و‬
‫ها‬ ‫فناوری‬‫آل‬ ‫ایده‬ ‫دارد‬ ‫وجود‬ ‫افزاری‬ ‫سخت‬ ‫و‬ ‫افزاری‬ ‫نرم‬ ‫سکوهای‬ ‫از‬ ‫مختلفی‬ ‫انواع‬ ‫که‬ ‫محیطی‬ ‫در‬
.‫است‬"
‫با‬‫مقایسه‬‫سرویس‬ ‫معماری‬ ‫از‬ ‫فوق‬ ‫تعریف‬‫درباره‬ ‫که‬ ‫تعاریفی‬ ‫و‬ ‫اصول‬ ‫با‬ ‫گرا‬‫مایکروسرویس‬ ‫معماری‬‫ش‬ ‫ارایه‬،‫د‬
‫می‬ ‫مشخص‬ ‫روشنی‬ ‫به‬‫تقابل‬ ‫که‬ ‫شود‬(‫تفاوت‬)‫عمده‬‫بتوان‬ ‫شاید‬ ‫و‬ ،‫نیست‬ ‫دو‬ ‫این‬ ‫بین‬ ‫ای‬‫مایکروسر‬ ‫معماری‬‫ویس‬
‫گونه‬ ‫را‬‫کامل‬‫اصولی‬ ‫و‬ ‫تر‬‫سرویس‬ ‫معماری‬ ‫تحقق‬ ‫از‬ ‫تر‬‫وب‬ ‫فناوری‬ ‫به‬ ‫نسبت‬ ‫گرا‬-‫آن‬ ‫استانداردهای‬ ‫و‬ ‫سرویس‬
‫دانست‬‫شدند‬ ‫معرفی‬ ‫گذشته‬ ‫دهه‬ ‫دو‬ ‫طی‬ ‫که‬.
2
‫عنوان‬ ‫با‬ ‫ارشد‬ ‫کارشناسی‬ ‫نامه‬ ‫پایان‬"‫زکمن‬ ‫چارچوب‬ ‫به‬ ‫پوشش‬ ‫جهت‬ ‫در‬ ‫گرا‬ ‫سرویس‬ ‫سازمانی‬ ‫معماری‬ ‫متدولوژی‬ ‫تدوین‬"
6
‫کتاب‬"‫مبان‬ ،‫اصول‬‫ی‬‫ها‬ ‫روش‬ ‫و‬‫ی‬‫معمار‬‫ی‬‫سازمان‬‫ی‬‫سرو‬‫ی‬‫س‬‫گرا‬"‫انتشارا‬‫امیررضا‬ ‫و‬ ‫شمس‬ ‫فریدون‬ ‫دکتر‬ ‫نویسندگان‬ :‫بهشتی‬ ‫شهید‬ ‫دانشگاه‬ ‫ت‬
‫مهجوریان‬
‫صفحه‬0
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
3-6)‫مزایای‬ ‫و‬ ‫نتایج‬‫مایکروسرویس‬ ‫معماری‬
‫از‬ ‫حاصل‬ ‫نتایج‬ ‫و‬ ‫مزایا‬ ‫مهمترین‬‫مایکروسرویس‬ ‫معماری‬:‫است‬ ‫زیر‬ ‫قرار‬ ‫به‬
‫حق‬‫فناوری/ابزار‬ ‫انتخاب‬:
‫در‬‫مایکروسرویس‬ ‫معماری‬‫فناوری‬ ‫از‬ ‫متنوعی‬ ‫سبد‬ ‫انتخاب‬ ‫حق‬‫ها‬-‫تیم‬ ‫برای‬ ‫ابزارها‬‫و‬ ‫طراحی‬ ‫های‬
‫پیاده‬‫است‬ ‫مهیا‬ ‫سازی‬‫ب‬‫ه‬‫صورتی‬‫می‬ ‫که‬‫توان‬‫فرایند‬ ‫در‬‫سیستم‬ ‫یک‬ ‫تولید‬،‫مایکروسرویس‬ ‫برای‬‫ه‬‫ای‬
‫فناوری‬ ‫از‬ ‫مختلف‬‫مختلفی‬ ‫ابزارهای‬ ‫و‬ ‫ها‬‫یکپارچگی‬ ‫بعدی‬ ‫مشکالت‬ ‫از‬ ‫نگرانی‬ ‫اینکه‬ ‫بدون‬ ‫کرد‬ ‫استفاده‬
.‫باشد‬ ‫داشته‬ ‫وجود‬
‫سیستم‬ ‫پایداری‬:
‫ویژگی‬ ‫از‬ ‫یکی‬‫سیستم‬ ‫اصلی‬ ‫های‬‫سرویس‬ ‫سایر‬ ‫فعالیت‬ ‫ادامه‬ ‫امکان‬ ‫پایدار‬ ‫های‬‫ها‬‫(مایکروسرویس‬‫ه‬)‫ا‬‫در‬
‫افتاده‬ ‫ازکار‬ ‫سرویس‬ ‫جایگزینی‬ ‫نیاز‬ ‫صورت‬ ‫در‬ ‫است(و‬ ‫سرویس‬ ‫یک‬ ‫افتادن‬ ‫ازکار‬ ‫صورت‬‫نم‬ ‫با‬‫م‬ ‫ونه‬‫شابه‬
‫یا‬‫پشتیبان‬‫در‬ ‫موضوع‬ ‫این‬ ،)‫مایکروسرویس‬ ‫معماری‬‫سرویس‬ ‫وابستگی‬ ‫عدم‬ ‫و‬ ‫خودمختاری‬ ‫دلیل‬ ‫به‬‫ه‬‫ا‬
‫می‬ ‫محقق‬.‫شود‬
‫مقیاس‬‫پذیری‬‫باال‬‫و‬‫هدفمند‬:
‫امکا‬‫ن‬‫مقیاس‬‫سیستم‬ ‫در‬ ‫سیستم‬ ‫پذیری‬‫یک‬ ‫های‬‫به‬ ‫تکه‬‫در‬ ‫اما‬ ،‫است‬ ‫هیچ‬ ‫یا‬ ‫همه‬ ‫صورت‬‫معماری‬
‫مایکروسرویس‬‫مقیاس‬ ‫امکان‬‫پذیری‬‫موثر‬‫به‬‫از‬ ‫بخش‬ ‫هر‬ ‫بنابراین‬ .‫است‬ ‫میسر‬ ‫دلخواه‬ ‫سرویس‬ ‫هر‬ ‫ازای‬
‫بار‬ ‫که‬ ‫سیستم‬(load)‫می‬ ‫متناسبا‬ ،‫باشد‬ ‫داشته‬ ‫بیشتری‬ ‫کاری‬‫دراختی‬ ‫نیز‬ ‫بیشتر‬ ‫پردازشی‬ ‫منابع‬ ‫تواند‬‫ار‬
‫مولفه‬ ‫همه‬ ‫برای‬ ‫نیست‬ ‫نیازی‬ ‫و‬ ‫گیرد‬‫مقیاس‬ ‫سیستم‬ ‫های‬‫پذیری‬‫یکنواخت‬.‫شود‬ ‫انجام‬
‫توسعه‬‫و‬‫تغییرات‬:
‫منطق‬ ‫در‬ ‫تغییر‬ ‫امکان‬‫سرویس‬ ‫سایر‬ ‫در‬ ‫منفی‬ ‫تاثیرات‬ ‫از‬ ‫نگرانی‬ ‫بدون‬ ‫سرویس‬ ‫هر‬‫دلیل‬ ‫به‬ ‫ها‬
‫سرویس‬ ‫خودمختاری‬‫ساده‬ ‫ها‬‫صورتیکه‬ ‫در‬ ‫و‬ ‫است‬ ‫داخلی‬ ‫منطق‬ ‫تغییر‬ ‫برای‬ ‫البته‬ ‫موضوع‬ ‫این‬ ،‫است‬ ‫تر‬
‫سرویس‬ ‫سایر‬ ‫به‬ ‫باید‬ ‫کند‬ ‫تغییر‬ ‫سرویس‬ ‫واسط‬‫ها(استفاده‬.‫شود‬ ‫داده‬ ‫اطالع‬ )‫کنندگان‬
‫استفاده‬‫ترکیب‬ ‫و‬ ‫مجدد‬:‫پذیری‬
‫به‬‫سرویس‬ ‫معماری‬ ‫مانند‬‫سرویس‬ ‫توسعه‬ ‫از‬ ‫اصلی‬ ‫اهداف‬ ‫از‬ ‫یکی‬ ‫گرا‬‫ترکیب‬ ‫و‬ ‫مجدد‬ ‫استفاده‬ ‫امکان‬ ،‫ها‬
‫سرویس‬‫سرویس‬ ‫ایجاد‬ ‫برای‬ ‫موجود‬ ‫های‬.‫است‬ ‫جدید‬ ‫های‬
‫سرویس‬ ‫سازمان‬ ‫معماری‬ ‫با‬ ‫تطابق‬‫گرا‬:
‫سرویس‬ ‫سازمان‬‫مشتری‬ ‫در‬ ‫صرفا‬ ‫گرا‬-‫نمی‬ ‫خالصه‬ ‫مشتریان‬ ‫به‬ ‫باکیفیت‬ ‫سرویس‬ ‫ارایه‬ ‫و‬ ‫محوری‬‫ش‬‫ود‬
‫مهم‬ ‫موضوع‬ ‫بلکه‬،‫تر‬‫و‬ ‫بیشتر‬ ‫پویایی‬ ‫برای‬ ‫منابع‬ ‫و‬ ‫عناصر‬ ‫چیدمان‬ ‫نحوه‬ ‫و‬ ‫سازمان‬ ‫داخلی‬ ‫معماری‬
‫صفحه‬3
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
،‫است‬ ‫واحدها‬ ‫سایر‬ ‫از‬ ‫واحد‬ ‫هر‬ ‫استقالل‬‫مایکروسرویس‬ ‫معماری‬‫سرویس‬ ‫سازمانی‬ ‫معماری‬ ‫با‬ ‫منطبق‬‫گ‬‫را‬
‫تسیهل‬ ‫و‬.‫است‬ ‫آن‬ ‫کننده‬
‫س‬‫ه‬‫سرویس‬ ‫جایگزینی‬ ‫و‬ ‫جابجایی‬ ‫ولت‬‫ها‬:
‫ک‬ ‫خودمختاری‬ ‫به‬ ‫توجه‬ ‫با‬‫سرویس‬ ‫فناوری‬ ‫و‬ ‫ارکردی‬‫می‬ ‫سادگی‬ ‫به‬ ،‫ها‬‫عملکرد‬ ‫که‬ ‫را‬ ‫سرویس‬ ‫یک‬ ‫توان‬
‫آ‬‫به‬ ‫را‬ ‫سرویس‬ ‫یک‬ ‫یا‬ ‫نمود‬ ‫جایگزین‬ ‫بهتر‬ ‫نمونه‬ ‫با‬ ‫نبوده‬ ‫مناسب‬ ‫ن‬‫دی‬ ‫محیط/سیستم‬ ‫یک‬ ‫به‬ ‫تنهایی‬‫گر‬
‫نمود‬ ‫استفاده‬ ‫آن‬ ‫از‬ ‫و‬ ‫نمود‬ ‫منتقل‬
2‫متدها‬ .‫و‬‫ابزارها‬‫ی‬‫با‬ ‫مرتبط‬‫مایکروسرویس‬ ‫معماری‬
2-3)Containers
‫کانتینر‬‫ها‬(Containers)‫بسته‬ ‫برای‬ ‫استاندارد‬ ‫روش‬ ‫یک‬ ،(‫بندی‬Package‫نرم‬ )‫افزار‬-‫سرویس‬‫متعلقات‬ ‫همه‬ ‫و‬
‫به‬ ‫است‬ ‫آن‬ ‫اجزاء‬ ‫و‬‫محیط‬ ‫به‬ ‫را‬ ‫آن‬ ‫بتوان‬ ‫صورتیکه‬-‫پلتفرم‬.‫نمود‬ ‫اجرا‬ ‫مشکل‬ ‫بدون‬ ‫و‬ ‫منتقل‬ ‫دیگری‬ ‫های‬‫ک‬‫انتینرها‬
‫می‬ ‫باعث‬‫و‬ ‫مانده‬ ‫مخفی‬ ‫بیرون‬ ‫محیط‬ ‫از‬ ‫سرویس‬ ‫هر‬ ‫داخل‬ ‫فناوری‬ ‫شوند‬‫سرویس‬ ‫صورت‬ ‫بدین‬‫عین‬ ‫در‬ ‫ها‬
‫فناوری‬ ‫از‬ ‫استفاده‬‫ها‬-.‫باشند‬ ‫تعامل‬ ‫و‬ ‫استفاده‬ ‫قابل‬ ‫استاندارد‬ ‫روش‬ ‫به‬ ‫بیرونی‬ ‫نظر‬ ‫از‬ ،‫مختلف‬ ‫سکوهای‬
‫فناوری‬ ‫و‬ ‫ابزارها‬ ‫جمله‬ ‫از‬‫کانتینر‬ ‫مدیریت‬ ‫های‬‫ها‬(‫ابر‬ ‫بر‬ ‫مبتنی‬Cloud):
Kubernetes
Docker Swarm
Amazon ECS
Azure Service Fabric
Cloud Foundry
Google Cloud Functions
IBM Bluemix OpenWhisk
Oracle Application Container
2-2)API Gateway
‫سرویس‬ ‫هر‬ ‫اگرچه‬‫خودمختاری‬ ‫حداکثر‬ ‫با‬‫اما‬ ‫است‬ ‫سیستم‬ ‫دامنه‬ ‫در‬ ‫مشخص‬ ‫کارکرد‬ ‫یک‬ ‫انجام‬ ‫مسوول‬
‫تقسیم‬ ،‫احرازهویت‬ ‫نظیر‬ ‫اموری‬ ‫انجام‬ ‫و‬ ‫سیستم‬ ‫کل‬ ‫مدیریت‬‫الگ‬ ،‫مجوزدهی‬ ،‫بار‬‫گ‬‫نیاز‬ .. ‫و‬ ،‫مانیتورینگ‬ ،‫یری‬
‫سرویس‬ ‫از‬ ‫غیر‬ ‫متمرکز‬ ‫مدیریت/ابزار‬ ‫یک‬ ‫به‬‫می‬ ‫که‬ ‫دارد‬ ‫ها‬‫توسط‬ ‫تواند‬API Gateway‫پیاده‬‫سازی‬،‫شود‬
‫صفحه‬1
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
‫این‬ ‫از‬ ‫درصورتیکه‬‫الگو‬)‫(روش‬‫توزیع‬ ‫کامال‬ ‫صورت‬ ‫به‬ ‫ذکرشده‬ ‫مدیریتی‬ ‫موارد‬ ‫کلیه‬ ،‫نشود‬ ‫استفاده‬‫ش‬‫توسط‬ ‫ده‬
‫سرویس‬.‫شد‬ ‫خواهد‬ ‫مدیریت‬ ‫ها‬
‫ابزار‬ ‫جمله‬ ‫از‬‫مطرح‬ ‫های‬‫برای‬API Gateway:
Apigee API Management
Amazon API Gateway
IBM API Connect
WSO2 API Management
MuleSoft Anypoint API Management
Oracle API Manager
Kong API Gateway
Azure API Gateway
‫ساده‬ ‫مثال‬ ‫زیر‬ ‫شکل‬‫بر‬ ‫مبتنی‬ ‫سیستم‬ ‫یک‬ ‫از‬ ‫ای‬‫مایکروسرویس‬ ‫معماری‬‫خودمختار‬ ‫سرویس‬ ‫تعدادی‬ ‫از‬ ‫متشکل‬
(‫دروازه‬ ‫یک‬ ‫و‬Gateway.‫است‬ ‫دسترسی‬ )
‫شکل‬2-3:‫جایگاه‬ ‫و‬ ‫کاربرد‬API Gateway
‫صفحه‬11
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
2-1)‫روش‬‫های‬‫مجازشماری‬ ‫و‬ ‫احرازهویت‬
‫روش‬ ‫جمله‬ ‫از‬(‫هویت‬ ‫احراز‬ ‫های‬Authentication(‫مجازشماری‬ ‫و‬ )Authorization: )
Token based solution
3rd party Authentication Federation
API Gateway A&A services
Cognito
2-4)‫روش‬‫سرویس‬ ‫کشف‬ ‫و‬ ‫شناسایی‬ ‫های‬
‫جمله‬ ‫از‬‫روش‬(‫کشف‬ ‫و‬ ‫شناسایی‬ ‫های‬Discovery‫سرویس‬ ‫برای‬ ‫سرویس‬ )‫گیرندگان‬:
Client Side-Service Discovery
Application Load Balancer-based Service Discovery
DNS-Based Service Discovery
Service Discovery using ECS Event Stream
2-4)‫متدلوژی‬‫های‬‫و‬ ‫تحلیل‬‫طراحی‬
‫مایکروسرویس‬ ‫حوزه‬ ‫در‬‫متدلوژی‬ ‫متاسفانه‬ ‫ها‬‫وجود‬ ‫سرویس‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ‫برای‬ ‫مدونی‬ ‫و‬ ‫شده‬ ‫شناخته‬ ‫های‬
‫سال‬ ‫حاصل‬ ‫ندارد(متدلوژی‬‫و‬ ‫است‬ ‫آموزی‬ ‫تجربه‬ ‫ها‬‫معمار‬ ‫این‬ ‫بودن‬ ‫جدید‬ ‫دلیل‬ ‫به‬،‫ی‬‫سال‬ ‫در‬‫های‬‫آ‬‫باید‬ ‫ینده‬
‫منتظر‬‫انتشار‬‫متدلوژی‬‫مجموعه‬ ‫اما‬ ،)‫باشیم‬ ‫مایکروسرویس‬ ‫های‬‫را‬ ‫استفاده‬ ‫قابل‬ ‫رهنمودهای‬ ‫و‬ ‫منابع‬ ‫از‬ ‫ای‬
‫می‬:‫نمود‬ ‫معرفی‬ ‫زیر‬ ‫صورت‬ ‫به‬ ‫توان‬
‫روش‬(‫دامنه‬ ‫بر‬ ‫مبتنی‬ ‫طراحی‬ ‫های‬DDD‫کتاب‬ ‫خصوصا‬ )‫های‬‫آقا‬‫ی‬Eric Evans
( ‫واکنشگر‬ ‫مانیفست‬Reactive Manifesto)
‫تکنیک‬ ‫و‬ ‫مفاهیم‬‫های‬DevOps‫جمله‬ ‫از‬Twelve-Factor App
( ‫سرویس‬ ‫کارکردی‬ ‫الگوهای‬Functional Decomposition Pattern)
‫تئوری‬CAP
2-5)‫پلتفرم‬‫تولید‬ ‫و‬ ‫طراحی‬ ‫های‬
‫پلتفرم‬ ‫جمله‬ ‫از‬‫مایکروسرویس‬ ‫تولید‬ ‫و‬ ‫طراحی‬ ‫های‬:‫ها‬
Ballerina
Netflix OSS
MSF4J
‫صفحه‬11
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
Akka
Vert.X
Fabric8
Cocaine
Deis
Lightbend
OpenWhisk
VAMP
‫بر‬ ‫عالوه‬‫موارد‬‫شده‬ ‫گفته‬‫در‬ ‫موفق‬ ‫طراحی‬ ‫برای‬ ،‫مایکروسرویس‬ ‫معماری‬‫تکنیک‬ ‫دانستن‬ ‫به‬ ‫نیاز‬‫استا‬ ،‫ها‬‫نداردها‬
‫تشریح‬ ‫که‬ ‫هست‬ ‫نیز‬ ‫دیگری‬ ‫مهم‬ ‫مفاهیم‬ ‫و‬‫آ‬‫ن‬‫ها‬‫این‬ ‫حوصله‬ ‫از‬‫نوشته‬‫تیتر‬ ‫صورت‬ ‫به‬ ‫تنها‬ ‫و‬ ‫است‬ ‫خارج‬-‫به‬ ‫وار‬
‫می‬ ‫اشاره‬ ‫آنها‬:‫شود‬Bounded Context،Conway’s Law،Platform Services،SOEA،MDM،
BCM،Command Query Responsibility Segregation،Data-Access pattern،EDA،
NoSQL Data Design... ‫و‬
‫صفحه‬11
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
1)‫چالش‬‫پیشنهادی‬ ‫راهکارهای‬ ‫و‬ ‫ها‬
‫کالن‬ ‫مبانی‬ ‫و‬ ‫اصول‬ ‫بر‬ ‫مبتنی‬ ‫مایکروسرویس‬ ‫معماری‬‫در‬ ‫که‬ ‫است‬ ‫تری‬‫سرویس‬ ‫پارادایم‬‫گرایی‬‫از‬ ،‫دارد‬ ‫قرار‬‫آنجا‬
‫سرویس‬ ‫که‬‫کسب‬ ‫واقعی‬ ‫نیازهای‬ ‫با‬ ‫منطبق‬ ‫آن‬ ‫اصول‬ ‫و‬ ‫گرایی‬‫است‬ ‫فناوری‬ ‫و‬ ‫وکار‬‫(و‬‫نیازها‬ ‫این‬ ‫نیز‬ ‫روز‬ ‫به‬ ‫روز‬
‫مهم‬‫گسترده‬ ‫و‬ ‫تر‬‫می‬ ‫تر‬‫شود‬)‫سرویس‬ ‫بکارگیری‬ ،‫در‬ ‫گرایی‬‫معماری‬‫سازمان‬‫سیستم‬ ،‫اطالعاتی‬ ‫های‬‫و‬‫به‬‫ص‬‫ورت‬
‫حوزه‬ ‫در‬ ‫کالن‬‫فناوری‬‫نیز‬ ‫اطالعات‬،‫یک‬ ‫که‬ ‫گذرا‬ ‫موج‬ ‫یک‬ ‫نه‬‫ادامه‬ ‫روند‬‫آینده‬ ‫و‬ ‫دار‬‫است‬ ‫دار‬‫؛‬‫معماری‬
‫قاعد‬ ‫این‬ ‫از‬ ‫نیز‬ ‫مایکروسرویس‬‫ه‬‫آن‬ ‫بعدی‬ ‫مشتقات‬ ‫یا‬ ‫و‬ ‫معماری‬ ‫این‬ ‫که‬ ‫داشت‬ ‫انتظار‬ ‫باید‬ ‫و‬ ‫نیست‬ ‫مستثنی‬
‫گیرد‬ ‫قرار‬ ‫توجهات‬ ‫محور‬ ‫در‬ ‫همچنان‬،‫تصمیم‬ ‫و‬ ‫مدیران‬ ‫لذا‬‫س‬ ‫پارادایم‬ ‫به‬ ‫راهبردی‬ ‫نگاهی‬ ‫با‬ ‫گیران‬‫رویس‬‫گرای‬‫ی‬
‫فناوری‬ ‫انواع‬ ‫و‬‫ها‬-‫پیاده‬ ‫الگوهای‬‫می‬ ‫تکامل‬ ‫زمان‬ ‫گذر‬ ‫در‬ ‫که‬ ‫آن‬ ‫سازی‬‫برنامه‬ ‫باید‬ ‫یابند‬‫هدفمند‬ ‫و‬ ‫بلندمدت‬ ‫ای‬
‫مدرن‬ ‫برای‬‫سیستم‬ ‫سازی‬‫سرویس‬ ‫و‬ ‫ها‬‫کسب‬ ‫تغییرات‬ ‫سرعت‬ ‫با‬ ‫متناسب‬ ‫فاوا‬ ‫های‬.‫باشند‬ ‫داشته‬ ‫وکار‬
‫آنجاکه‬ ‫از‬‫تصمیم‬ ‫و‬ ‫مدیران‬ ‫تمایل‬ ‫صرف‬‫ا‬ ‫از‬ ‫استفاده‬ ‫به‬ ‫گیران‬‫تضمین‬ ‫معماری‬ ‫ین‬‫واق‬ ‫نتایج‬ ‫و‬ ‫موفقیت‬ ‫کننده‬‫عی‬
‫ابتدا‬ ‫منظور‬ ‫همین‬ ‫به‬ ،‫نیست‬‫چالش‬‫می‬ ‫مرور‬ ‫مایکروسرویس‬ ‫معماری‬ ‫های‬‫سپس‬ ‫و‬ ‫شود‬‫راهکار‬‫برای‬ ‫هایی‬
‫بکارگیری‬‫هدفمند‬‫پیاده‬ ‫و‬ ‫طراحی‬ ‫در‬ ‫موفقیت‬ ‫میزان‬ ‫افزایش‬ ‫جهت‬ ‫معماری‬ ‫این‬‫سازی‬‫سیستم‬‫ب‬ ‫مبتنی‬ ‫های‬‫ر‬
‫مایکروسرویس‬‫ها‬‫می‬ ‫ارایه‬.‫گردد‬
1-3)‫چالش‬‫مایکروسرویس‬ ‫معماری‬ ‫های‬
‫چالش‬‫پیاده‬ ‫های‬‫نمی‬ ‫را‬ ‫مایکروسرویس‬ ‫معماری‬ ‫سازی‬‫چالش‬ ‫این‬ ،‫گرفت‬ ‫نادیده‬ ‫توان‬‫می‬ ‫را‬ ‫ها‬‫دسته‬ ‫سه‬ ‫در‬ ‫توان‬
‫طبقه‬:‫نمود‬ ‫بندی‬
‫چالش‬‫معماری‬ ‫های‬:
‫نسخه‬ ‫مدیریت‬ ،‫مانیتورینگ‬‫مایکروسرویس‬ ‫کنترل‬ ‫و‬ ‫امنیت‬ ‫تضمین‬ ،‫ها‬‫سخت‬ ‫مراتب‬ ‫به‬ ‫ها‬‫تر‬‫از‬‫سایر‬
‫معماری‬‫سیستم‬ ‫و‬ ‫ها‬‫های‬‫الیه‬ ‫یا‬ ‫متمرکز‬‫ای‬.‫است‬
‫پیاده‬‫معماری‬ ‫سازی‬‫توزیع‬ ‫های‬‫شده‬(‫با‬‫سرویس‬)‫خودمختار‬ ‫های‬‫پیچیده‬ ‫متدهای‬ ‫و‬ ‫ابزارها‬ ‫به‬ ‫نیاز‬‫تری‬
‫پیاده‬ ‫برای‬.‫دارد‬ ‫نگهداشت‬ ‫و‬ ‫سازی‬
‫ب‬‫ه‬‫ب‬ ‫خودمختاری‬ ‫مایکروسرویس‬ ‫هر‬ ‫اینکه‬ ‫دلیل‬‫دوباره‬ ‫از‬ ‫زیادی‬ ‫حجم‬ ،‫دارد‬ ‫االیی‬‫در‬ ‫کاری‬‫برنامه‬‫نوی‬‫سی‬
‫سرویس‬ ‫هر‬‫مکانیزم‬ ‫اعمال‬ ‫برای‬‫کنترلی‬ ‫های‬-‫امنیتی‬-‫باید‬ ‫مشترک‬‫انجام‬.‫شود‬
‫چالش‬‫سازمانی‬ ‫های‬:
‫پیاده‬‫معماری‬ ‫سازی‬‫آن‬ ‫تامین‬ ‫که‬ ‫است‬ ‫توانمند‬ ‫و‬ ‫ماهر‬ ‫بسیار‬ ‫انسانی‬ ‫نیروی‬ ‫نیازمند‬ ‫مایکروسرویس‬
.‫نیست‬ ‫ممکن‬ ‫سازمانی‬ ‫هر‬ ‫برای‬
‫صفحه‬13
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
‫اطالع‬ ‫فناوری‬ ‫واحدهای‬ ‫بیشتر‬ ‫سازمانی‬ ‫ساختار‬‫تیم‬ ‫و‬ ‫ات‬‫نرم‬ ‫توسعه‬ ‫های‬‫افقی‬ ‫تقسیم‬ ‫بر‬ ‫مبتنی‬ ‫افزار‬
‫فناوری‬‫ها‬-( ‫ابزارها‬UI-Application-Database‫ش‬ )‫ک‬‫تغییر‬ ‫و‬ ‫است‬ ‫گرفته‬ ‫ل‬‫ساختار‬ ‫این‬‫تیم‬ ‫به‬‫های‬
‫بر‬ ‫مبتنی‬DevOps‫کسب‬ ‫محدود‬ ‫دامنه‬ ‫یک‬ ‫با‬،‫وکار‬‫و‬ ‫سخت‬‫زمان‬‫بر‬.‫است‬
‫از‬ ‫یکی‬ ‫سازمان‬ ‫هر‬ ‫نیاز‬ ‫بر‬ ‫بنا‬ ‫معماری‬ ‫مناسب‬ ‫سبک‬ ‫انتخاب‬‫چالش‬‫صورت‬ ‫هر‬ ،‫است‬ ‫قدیمی‬ ‫های‬-
‫مساله‬‫دارد‬ ‫خود‬ ‫مناسب‬ ‫راهکار‬ ‫به‬ ‫نیاز‬ ‫ای‬‫بر‬ ‫مبتنی‬ ‫بزرگی‬ ‫یا‬ ‫کوچک‬ ‫سیستم‬ ‫هر‬ ‫نیست‬ ‫قرار‬ ‫و‬
‫باشد‬ ‫مایکروسرویس‬‫معماری‬ ‫بین‬ ‫انتخاب‬ .‫ها‬-‫آن‬ ‫بین‬ ‫یکپارچگی‬ ‫نحوه‬ ‫و‬ ‫مختلف‬ ‫راهکارهای‬‫جمل‬ ‫از‬ ‫ها‬‫ه‬
‫دغدغه‬‫تصمیم‬ ‫و‬ ‫مدیران‬ ‫های‬‫گیران‬‫است‬.
‫چالش‬‫های‬‫فناوری/ابزار‬:
‫بیش‬ ‫تنوع‬‫فناوری‬ ‫و‬ ‫ابزارها‬ ‫حد‬ ‫از‬‫برای‬ ‫تهدیدی‬ ‫دیگر‬ ‫نگاه‬ ‫از‬ ‫اما‬ ‫است‬ ‫مزیت‬ ‫یک‬ ‫اگرچه‬ ‫جدید‬ ‫های‬
‫تیم‬‫برنامه‬ ‫های‬‫از‬ ‫استفاده‬ ‫برای‬ ‫کافی‬ ‫مهارت‬ ‫تا‬ ‫و‬ ‫شده‬ ‫سردرگم‬ ‫ابزارها‬ ‫از‬ ‫جنگلی‬ ‫در‬ ‫که‬ ‫است‬ ‫نویسی‬
‫بدست‬ ‫را‬ ‫ابزار‬ ‫یک‬‫می‬‫فناوری‬ ‫و‬ ‫ابزارها‬ ،‫آورند‬‫ظهور‬ ‫جدیدی‬ ‫های‬‫مسلط‬ ‫فرصت‬ ‫و‬ ‫کرده‬‫روی‬ ‫کافی‬ ‫شدن‬
‫می‬ ‫دست‬ ‫از‬ ‫را‬ ‫ابزار‬ ‫یک‬.‫دهند‬
‫به‬ ‫جدید‬ ‫ابزارهای‬‫سرعت‬‫ارایه‬‫می‬‫و‬ ‫شوند‬‫برنامه‬ ‫توسط‬‫نویسان‬‫پروژه‬ ‫در‬‫های‬‫واقعی‬‫قرار‬ ‫استفاده‬ ‫مورد‬
‫می‬‫ابزارها‬ ‫این‬ ‫پایداری‬ ‫و‬ ‫امنیت‬ ‫مانند‬ ‫مهمی‬ ‫مسایل‬ ‫حالیکه‬ ‫در‬ ‫گیرند‬‫به‬‫نشده‬ ‫ارزیابی‬ ‫کامل‬ ‫صورت‬‫ا‬.‫ست‬
‫معماری‬‫ابزارها‬ ‫از‬ ‫جدیدی‬ ‫مجموعه‬ ‫مایکروسرویس‬-‫فناوری‬‫نیازمندی‬ ‫از‬ ‫پشتیبانی‬ ‫برای‬ ‫را‬ ‫ها‬‫خود‬ ‫های‬
‫زمان‬ ‫افزایش‬ ‫و‬ ‫پیچیدگی‬ ‫افزایش‬ ‫باعث‬ ‫خود‬ ‫که‬ ‫است‬ ‫کرده‬ ‫معرفی‬‫و‬‫هزینه‬‫سیستم‬ ‫تولید‬‫می‬‫ش‬‫ود‬.
1-2)‫الزامات‬ ‫و‬ ‫راهکارها‬‫مایکروسرویس‬ ‫معماری‬ ‫بکارگیری‬
‫گفته‬ ‫بخش‬ ‫این‬ ‫ابتدای‬ ‫در‬ ‫که‬ ‫همانطور‬‫شد‬‫سرویس‬ ‫پارادایم‬ ،‫مایکروسرویس‬ ‫معماری‬ ‫و‬ )‫عام‬ ‫صورت‬ ‫گرایی(به‬
‫(به‬‫آینده‬ ‫روندهای‬ )‫خاص‬ ‫صورت‬‫سرویس‬ ‫و‬ ‫رقابتی‬ ‫دنیای‬ ‫در‬ ‫که‬ ‫هستند‬ ‫فاوا‬ ‫صنعت‬ ‫دار‬-‫کسب‬ ‫محور‬‫وکار‬‫نی‬‫ز‬
‫تضمین‬‫کننده‬‫کسب‬ ‫بین‬ ‫همراستایی‬‫فاوا‬ ‫با‬ ‫وکار‬‫هستند‬‫مو‬ ‫و‬ ‫هدفمند‬ ‫بکارگیری‬ ‫برای‬ ‫اما‬ ،‫این‬ ‫فق‬‫مع‬‫ماری‬،
‫الزامات(قوا‬)‫نین‬‫زیر‬‫می‬ ‫پیشنهاد‬‫شود‬:
‫همه‬ ‫اینکه‬ ‫اول‬ ‫قانون‬‫صورت‬ ‫هر‬ ‫برای‬ ،‫باشد‬ ‫مایکروسرویسی‬ ‫نباید‬ ‫سیستمی‬ ‫هر‬ ‫و‬ ‫جا‬-‫مساله‬‫بای‬ ‫ای‬‫د‬
‫نیازمندی‬‫معماری(وظیفه‬ ‫های‬‫مندی‬-‫غیروظیفه‬‫محدودیت‬ ،)‫مندی‬‫ها‬-‫و‬ ‫اجبارها‬‫مجموعه‬‫شرایط‬
‫محیطی‬-‫زمینه‬‫معمار‬ ‫توسط‬ ‫ای‬‫ارشد‬‫سبک‬ ‫و‬ ‫شود‬ ‫تحلیل‬(‫راهکار‬).‫شود‬ ‫انتخاب‬ ‫معماری‬ ‫مناسب‬
‫صورت‬ ‫در‬ ‫اینکه‬ ‫دوم‬ ‫قانون‬‫انتخاب‬‫مایکروسرویس‬ ‫معماری‬‫اصلی‬ ‫اصول‬ ‫از‬ ‫تبعیت‬ ‫ضمن‬ ‫که‬ ‫بدانیم‬ ‫باید‬
‫انتخاب‬ ،‫معماری‬ ‫این‬‫نحوه‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫سختی‬ ‫و‬ ‫مهم‬ ‫های‬)‫(مدل‬‫سیستم‬ ‫فیزیکی‬ ‫و‬ ‫منطقی‬ ‫معماری‬
‫صفحه‬12
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
‫مایکرو‬ ‫معماری‬ ‫لذا‬ ،‫کرد‬ ‫خواهد‬ ‫مشخص‬ ‫را‬‫چید‬ ‫و‬ ‫اشکال‬ ‫به‬ ‫سرویس‬‫مان‬‫پیاده‬ ‫قابل‬ ‫متنوعی‬ ‫های‬‫سازی‬
‫است‬‫جبران‬ ‫نتایج‬ ‫مرحله‬ ‫این‬ ‫در‬ ‫نامناسب‬ ‫انتخاب‬ ‫که‬.‫دارد‬ ‫ناپذیری‬
‫اینکه‬ ‫سوم‬ ‫قانون‬‫فریب‬ ‫نباید‬‫ابزار‬ ‫عناوین‬-‫فناوری‬-‫پروتکل‬‫خورد‬ ‫را‬‫؛‬‫نرم‬ ‫شرکت‬ ‫هر‬‫ادعا‬ ‫که‬ ‫افزاری‬
‫می‬‫مایکرو‬ ‫معماری‬ ‫بر‬ ‫مبتنی‬ ‫محصوالت‬ ‫کند‬‫آزمایی‬ ‫راست‬ ‫باید‬ ‫کرده‬ ‫تولید‬ ‫سرویس‬‫شود‬‫و‬‫صرف‬
‫سرویس‬ ‫سیستم‬ ‫تولید‬ ‫معنای‬ ‫به‬ ‫مایکروسرویس‬ ‫معماری‬ ‫با‬ ‫مرتبط‬ ‫پلتفرم‬ ‫و‬ ‫ابزار‬ ‫چند‬ ‫از‬ ‫استفاده‬‫م‬‫حور‬
‫مایکروسرویس‬ ‫اصول‬ ‫با‬ ‫منطبق‬(‫نیست‬ ‫ها‬‫از‬ ‫بعد‬ ‫هنوز‬ ‫که‬ ‫همچنان‬‫از‬ ‫بیش‬ ‫گذشت‬‫یک‬‫ظهور‬ ‫از‬ ‫دهه‬
‫سرویس‬ ‫معماری‬‫گرا‬،‫سیستم‬ ‫از‬ ‫کمی‬ ‫درصد‬‫فروخته‬ ‫و‬ ‫طراحی‬ ‫عنوان‬ ‫این‬ ‫با‬ ‫که‬ ‫هایی‬‫شده‬‫واقعا‬ ،‫اند‬
‫سرویس‬ ‫اصول‬ ‫طبق‬‫پیاده‬ ‫و‬ ‫طراحی‬ ‫گرایی‬‫شده‬ ‫سازی‬‫اند‬)
‫اینکه‬ ‫چهارم‬ ‫قانون‬"‫استقرار‬‫به‬ ‫و‬‫نتیجه‬‫رسیدن‬"‫تغییر‬ ‫نیازمند‬ ‫سازمان‬ ‫در‬ ‫جدید‬ ‫معماری‬ ‫سبک‬ ‫یک‬
‫کسب‬ ‫معماری‬ ‫و‬ ‫فرهنگ‬‫وکار‬‫در‬‫ایده‬ ‫تحقق‬ ،‫است‬ ‫سازمان‬ ‫آن‬‫نیازمند‬ ‫مایکروسرویس‬ ‫معماری‬ ‫ال‬
‫سازمانی‬ ‫معماری‬ ‫بازنگری‬‫سرویس‬ ‫رویکرد‬ ‫با‬‫می‬ ‫تغییرات‬ .‫است‬ ‫گرا‬‫و‬ ‫شود‬ ‫شروع‬ ‫طرف‬ ‫دو‬ ‫هر‬ ‫از‬ ‫توان‬
.‫نماید‬ ‫سرایت‬ ‫دیگر‬ ‫طرف‬ ‫به‬‫شرکت‬ ‫موفقیت‬ ‫دالیل‬ ‫از‬ ‫یکی‬‫های‬Netflix،Amazon‫پیاده‬ ‫در‬‫سازی‬
‫سرویس‬ ‫ماهیت‬ ،‫مایکروسرویس‬ ‫معماری‬‫کسب‬ ‫گرا‬‫شرکت‬ ‫این‬ ‫وکار‬‫می‬ ‫ارزیابی‬ ‫ها‬.‫شود‬
‫اینکه‬ ‫پنجم‬ ‫قانون‬‫دانه‬ ‫و‬ ‫انتخاب‬‫بن‬‫سرویس‬ ‫مناسب‬ ‫دی‬‫ها‬‫مهمترین‬ ‫از‬‫و‬ ‫طراحی‬ ‫در‬ ‫موفقیت‬ ‫عوامل‬
‫متدلوژی‬ ‫متاسفانه‬ ‫که‬ ‫است‬ ‫مایکروسرویس‬ ‫معماری‬ ‫استقرار‬‫هنوز‬ ‫استانداردی‬ ‫و‬ ‫مدون‬ ‫های‬‫آن‬ ‫برای‬
،‫است‬ ‫نشده‬ ‫ارائه‬‫بنابراین‬‫سازمان‬‫ها‬‫(تیم‬‫ها‬)‫پیاده‬ ‫شروع‬ ‫از‬ ‫قبل‬ ‫باید‬‫یک‬ ‫تدوین‬ ‫به‬ ‫نسبت‬ ،‫سازی‬
‫از‬ )‫داخلی(بومی‬ ‫متدلوژی‬‫مراجع‬ ‫مجموعه‬-‫کتاب‬‫ها‬-‫بین‬ ‫یا‬ ‫داخلی‬ ‫تجارب‬‫رابطه‬ .‫نمایند‬ ‫اقدام‬ ‫المللی‬
‫پروژه‬ ‫شکست‬ ‫با‬ ‫مناسب‬ ‫متدلوژی‬ ‫یک‬ ‫بکارگیری‬ ‫عدم‬ ‫بین‬ ‫معنادارای‬‫سرویس‬ ‫های‬.‫دارد‬ ‫وجود‬ ‫گرا‬
‫صفحه‬12
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
4)‫مراجع‬ ‫و‬ ‫منابع‬
Books:
1. Building Microservices, Sam Newman (2015)
2. Microservices for the Enterprise, Kasun Indrasiri & Prabath Siriwardena (2018)
3. Vertically Integrated Architectures, Jos Jong (2019)
4. Building Microservices with ASP.NET Core, Kevin Hoffman (2017)
5. Building Evolutionary Architectures: Support Constant Change, Neal Ford,
Rebecca Parsons, and Patrick Kua (2017)
Papers and Presentations:
6. Essential Capabilities behind Microservices, Kim Kao (2019)
7. Microservices: Powered by Containers-as-a-Service, Chris Rosen (2017)
8. Implementing Microservices on Oracle Cloud, Lucas Jellema (2018)
9. Microservices, containers and event-driven architecture, Simon Green (2018)
10.Microservices: The Journey So Far and Challenges Ahead, Pooyan Jamshidi, C.
Pahl, N. Mendonca, J. Lewis, S. Tilkov (2018)
11.MicroServices Architecture, Araf Karsh Hamid (2018)
12.Pragmatic approach to MicroServices, David Hymers (2019)
13.Microservices, Containers, Databases and Persistence Models, Kuassi Mensah
and Paul Parkinson (2018)
14.Comparison of different architecture styles, Attila Balogh-Biró (2016)
Websites:
15.https://microservices.io
16.https://developer.ibm.com/technologies/microservices
17.https://www.mulesoft.com/resources/api/what-are-microservices
18.https://en.wikipedia.org/wiki/Microservices
19.https://www.redhat.com/en/topics/microservices
20.https://www.docker.com/solutions/microservices
21.https://aws.amazon.com/microservices/
22.https://martinfowler.com/articles/microservices.html
23.https://www.nginx.com/learn/microservices
24.https://docs.oracle.com/en/solutions/learn-architect-microservice/index.html
25.https://wso2.com
26.https://camunda.com/learn/whitepapers/microservices-and-bpm
27.https://dzone.com
28.https://dotnet.microsoft.com/learn/web/microservices-architecture
‫صفحه‬16
‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬
Soea.sbu.ac.ir KarizSystem.ir
29.https://www.tibco.com/solutions/microservices
30.https://www.infoq.com/microservices
31.https://www.microservices.com
32.https://www.cloudfoundry.org/microservices
33.https://samnewman.io

Recomendados

Sql server performance tuning von
Sql server performance tuningSql server performance tuning
Sql server performance tuningngupt28
2.2K views130 Folien
Sql Antipatterns Strike Back von
Sql Antipatterns Strike BackSql Antipatterns Strike Back
Sql Antipatterns Strike BackKarwin Software Solutions LLC
289.1K views250 Folien
Sql vs NoSQL von
Sql vs NoSQLSql vs NoSQL
Sql vs NoSQLRTigger
114.6K views17 Folien
Oracle Tablespace - Basic von
Oracle Tablespace - BasicOracle Tablespace - Basic
Oracle Tablespace - BasicEryk Budi Pratama
2.1K views14 Folien
SQLite3 von
SQLite3SQLite3
SQLite3cltru
1.6K views13 Folien
T-SQL Overview von
T-SQL OverviewT-SQL Overview
T-SQL OverviewAhmed Elbaz
8.1K views85 Folien

Más contenido relacionado

Was ist angesagt?

Sql Server Performance Tuning von
Sql Server Performance TuningSql Server Performance Tuning
Sql Server Performance TuningBala Subra
7.5K views68 Folien
Stock inventory Management Project von
Stock inventory Management ProjectStock inventory Management Project
Stock inventory Management ProjectKrishnakumar Hatele
6K views35 Folien
Ms sql server architecture von
Ms sql server architectureMs sql server architecture
Ms sql server architectureAjeet Singh
64.3K views39 Folien
Mysql von
MysqlMysql
MysqlTSUBHASHRI
1.9K views27 Folien
A Deep Dive Into Understanding Apache Cassandra von
A Deep Dive Into Understanding Apache CassandraA Deep Dive Into Understanding Apache Cassandra
A Deep Dive Into Understanding Apache CassandraDataStax Academy
7.1K views77 Folien
Introduction to sql von
Introduction to sqlIntroduction to sql
Introduction to sqlVARSHAKUMARI49
387 views104 Folien

Was ist angesagt?(20)

Sql Server Performance Tuning von Bala Subra
Sql Server Performance TuningSql Server Performance Tuning
Sql Server Performance Tuning
Bala Subra7.5K views
Ms sql server architecture von Ajeet Singh
Ms sql server architectureMs sql server architecture
Ms sql server architecture
Ajeet Singh64.3K views
A Deep Dive Into Understanding Apache Cassandra von DataStax Academy
A Deep Dive Into Understanding Apache CassandraA Deep Dive Into Understanding Apache Cassandra
A Deep Dive Into Understanding Apache Cassandra
DataStax Academy7.1K views
Database Management System, Lecture-1 von Sonia Mim
Database Management System, Lecture-1Database Management System, Lecture-1
Database Management System, Lecture-1
Sonia Mim508 views
ASP.NET MVC 5 - EF 6 - VS2015 von Hossein Zahed
ASP.NET MVC 5 - EF 6 - VS2015ASP.NET MVC 5 - EF 6 - VS2015
ASP.NET MVC 5 - EF 6 - VS2015
Hossein Zahed3.4K views
Troubleshooting Complex Performance issues - Oracle SEG$ contention von Tanel Poder
Troubleshooting Complex Performance issues - Oracle SEG$ contentionTroubleshooting Complex Performance issues - Oracle SEG$ contention
Troubleshooting Complex Performance issues - Oracle SEG$ contention
Tanel Poder44.1K views
Join query von Waqar Ali
Join queryJoin query
Join query
Waqar Ali905 views
Rdbms von rdbms
RdbmsRdbms
Rdbms
rdbms39.1K views
Creating Single Page Applications with Oracle Apex von Dick Dral
Creating Single Page Applications with Oracle ApexCreating Single Page Applications with Oracle Apex
Creating Single Page Applications with Oracle Apex
Dick Dral3.5K views
OBIEE 11g : Repository Creation Steps von Dharmaraj Borse
OBIEE 11g : Repository Creation StepsOBIEE 11g : Repository Creation Steps
OBIEE 11g : Repository Creation Steps
Dharmaraj Borse21.5K views
SQL Queries von Nilt1234
SQL QueriesSQL Queries
SQL Queries
Nilt1234694 views

Similar a Microservice architecture - معماری مایکروسرویس

Microservices Workshop Part 1 von
Microservices Workshop Part 1Microservices Workshop Part 1
Microservices Workshop Part 1Masoud Bahrami
324 views52 Folien
Enterprise Resource Planning Implementation Architectures and Frameworks.pdf von
Enterprise Resource Planning Implementation Architectures and Frameworks.pdfEnterprise Resource Planning Implementation Architectures and Frameworks.pdf
Enterprise Resource Planning Implementation Architectures and Frameworks.pdfhadi mikaili manie
44 views25 Folien
2017 - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ... von
 2017  - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ... 2017  - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ...
2017 - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ...Aidin NaseriFard
489 views9 Folien
ESB von
ESBESB
ESBHamed Hatami
1.1K views11 Folien
معرفي فايروال پايگاه داده von
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهHamid Torkashvand
411 views4 Folien
BIAN: چارچوب و مدل مرجع بانکداری بیان von
BIAN: چارچوب و مدل مرجع بانکداری بیانBIAN: چارچوب و مدل مرجع بانکداری بیان
BIAN: چارچوب و مدل مرجع بانکداری بیانAmir Mahjoorian
737 views13 Folien

Similar a Microservice architecture - معماری مایکروسرویس(20)

Enterprise Resource Planning Implementation Architectures and Frameworks.pdf von hadi mikaili manie
Enterprise Resource Planning Implementation Architectures and Frameworks.pdfEnterprise Resource Planning Implementation Architectures and Frameworks.pdf
Enterprise Resource Planning Implementation Architectures and Frameworks.pdf
2017 - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ... von Aidin NaseriFard
 2017  - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ... 2017  - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ...
2017 - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ...
Aidin NaseriFard489 views
معرفي فايروال پايگاه داده von Hamid Torkashvand
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه داده
Hamid Torkashvand411 views
BIAN: چارچوب و مدل مرجع بانکداری بیان von Amir Mahjoorian
BIAN: چارچوب و مدل مرجع بانکداری بیانBIAN: چارچوب و مدل مرجع بانکداری بیان
BIAN: چارچوب و مدل مرجع بانکداری بیان
Amir Mahjoorian737 views
امنیت شبکه von arichoana
امنیت شبکهامنیت شبکه
امنیت شبکه
arichoana5.4K views
معماری سرویس گرا (Service Oriented Architecture) von RayBPMS
معماری سرویس گرا (Service Oriented Architecture)معماری سرویس گرا (Service Oriented Architecture)
معماری سرویس گرا (Service Oriented Architecture)
RayBPMS483 views
oCCc_24_Cloud_Design_Patterns von Morteza Javan
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_Patterns
Morteza Javan1.1K views
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان... von amri k
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
amri k91 views
قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis von M Mehdi Ahmadian
 قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis
قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis
M Mehdi Ahmadian1.1K views
مجازي سازي، مجازى سازى von marketingfarkhad
مجازي سازي، مجازى سازىمجازي سازي، مجازى سازى
مجازي سازي، مجازى سازى
marketingfarkhad1.8K views
طراحی شبکه های کامپیوتری von tarasad
طراحی شبکه های کامپیوتریطراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتری
tarasad61 views
Javan Cloud Security 950526 (oCCc63) von Morteza Javan
Javan Cloud Security 950526 (oCCc63)Javan Cloud Security 950526 (oCCc63)
Javan Cloud Security 950526 (oCCc63)
Morteza Javan1.7K views
Applying event driven architecture to mobile computing von Mehdi Rizvandi
Applying event driven architecture to mobile computingApplying event driven architecture to mobile computing
Applying event driven architecture to mobile computing
Mehdi Rizvandi373 views

Más de Amir Mahjoorian

عوامل موفقیت یا شکست طرح های معماری سازمانی در ایران von
عوامل موفقیت یا شکست طرح های معماری سازمانی در ایرانعوامل موفقیت یا شکست طرح های معماری سازمانی در ایران
عوامل موفقیت یا شکست طرح های معماری سازمانی در ایرانAmir Mahjoorian
332 views14 Folien
سمینار آموزشی سازمان سرویس‌گرا ویژه مدیران ارشد سازمان - Service Oriented Ent... von
سمینار آموزشی سازمان سرویس‌گرا ویژه مدیران ارشد سازمان - Service Oriented Ent...سمینار آموزشی سازمان سرویس‌گرا ویژه مدیران ارشد سازمان - Service Oriented Ent...
سمینار آموزشی سازمان سرویس‌گرا ویژه مدیران ارشد سازمان - Service Oriented Ent...Amir Mahjoorian
387 views8 Folien
چارچوب و روش شناسی معماری سازمانی - Enterprise Architecture Framework and Met... von
چارچوب و روش شناسی معماری سازمانی - Enterprise Architecture Framework and Met...چارچوب و روش شناسی معماری سازمانی - Enterprise Architecture Framework and Met...
چارچوب و روش شناسی معماری سازمانی - Enterprise Architecture Framework and Met...Amir Mahjoorian
292 views113 Folien
مدل مرجع عملکرد دولت ایران - Iran Performance Reference Model von
مدل مرجع عملکرد دولت ایران - Iran Performance Reference Modelمدل مرجع عملکرد دولت ایران - Iran Performance Reference Model
مدل مرجع عملکرد دولت ایران - Iran Performance Reference ModelAmir Mahjoorian
320 views59 Folien
مدل مرجع فناوری دولت ایران - Iran Technology Reference Model von
مدل مرجع فناوری دولت ایران - Iran Technology Reference Modelمدل مرجع فناوری دولت ایران - Iran Technology Reference Model
مدل مرجع فناوری دولت ایران - Iran Technology Reference ModelAmir Mahjoorian
321 views109 Folien
مدل مرجع خدمات دولت ایران - Iran Business Service Reference Model von
مدل مرجع خدمات دولت ایران - Iran Business Service Reference Modelمدل مرجع خدمات دولت ایران - Iran Business Service Reference Model
مدل مرجع خدمات دولت ایران - Iran Business Service Reference ModelAmir Mahjoorian
342 views164 Folien

Más de Amir Mahjoorian(7)

عوامل موفقیت یا شکست طرح های معماری سازمانی در ایران von Amir Mahjoorian
عوامل موفقیت یا شکست طرح های معماری سازمانی در ایرانعوامل موفقیت یا شکست طرح های معماری سازمانی در ایران
عوامل موفقیت یا شکست طرح های معماری سازمانی در ایران
Amir Mahjoorian332 views
سمینار آموزشی سازمان سرویس‌گرا ویژه مدیران ارشد سازمان - Service Oriented Ent... von Amir Mahjoorian
سمینار آموزشی سازمان سرویس‌گرا ویژه مدیران ارشد سازمان - Service Oriented Ent...سمینار آموزشی سازمان سرویس‌گرا ویژه مدیران ارشد سازمان - Service Oriented Ent...
سمینار آموزشی سازمان سرویس‌گرا ویژه مدیران ارشد سازمان - Service Oriented Ent...
Amir Mahjoorian387 views
چارچوب و روش شناسی معماری سازمانی - Enterprise Architecture Framework and Met... von Amir Mahjoorian
چارچوب و روش شناسی معماری سازمانی - Enterprise Architecture Framework and Met...چارچوب و روش شناسی معماری سازمانی - Enterprise Architecture Framework and Met...
چارچوب و روش شناسی معماری سازمانی - Enterprise Architecture Framework and Met...
Amir Mahjoorian292 views
مدل مرجع عملکرد دولت ایران - Iran Performance Reference Model von Amir Mahjoorian
مدل مرجع عملکرد دولت ایران - Iran Performance Reference Modelمدل مرجع عملکرد دولت ایران - Iran Performance Reference Model
مدل مرجع عملکرد دولت ایران - Iran Performance Reference Model
Amir Mahjoorian320 views
مدل مرجع فناوری دولت ایران - Iran Technology Reference Model von Amir Mahjoorian
مدل مرجع فناوری دولت ایران - Iran Technology Reference Modelمدل مرجع فناوری دولت ایران - Iran Technology Reference Model
مدل مرجع فناوری دولت ایران - Iran Technology Reference Model
Amir Mahjoorian321 views
مدل مرجع خدمات دولت ایران - Iran Business Service Reference Model von Amir Mahjoorian
مدل مرجع خدمات دولت ایران - Iran Business Service Reference Modelمدل مرجع خدمات دولت ایران - Iran Business Service Reference Model
مدل مرجع خدمات دولت ایران - Iran Business Service Reference Model
Amir Mahjoorian342 views
چارچوب معماری سازمانی ایران - Iran Enterprise Architecture Framework (IEAF) von Amir Mahjoorian
چارچوب معماری سازمانی ایران - Iran Enterprise Architecture Framework (IEAF)چارچوب معماری سازمانی ایران - Iran Enterprise Architecture Framework (IEAF)
چارچوب معماری سازمانی ایران - Iran Enterprise Architecture Framework (IEAF)
Amir Mahjoorian565 views

Microservice architecture - معماری مایکروسرویس

  • 1. ‫صفحه‬1 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir ‫مایکروسرویس‬ ‫معماری‬ (Microservice Architecture) ‫مهجوریان‬ ‫امیر‬ ‫پویا‬ ‫سیستم‬ ‫کاریز‬ ‫شرکت‬ ‫عامل‬ ‫مدیر‬:karizsystem.ir ‫سازمانی‬ ‫معماری‬ ‫آزمایشگاه‬ ‫فنی‬ ‫مدیر‬‫سرویس‬‫گرا‬:soea.sbu.ac.ir ‫چارچوب‬ ‫مدیرفنی‬‫ملی‬‫ایران‬ ‫سازمانی‬ ‫معماری‬ieaf.ir Mahjoorian@ieaf.ir‫و‬Mahjoorian@karizsystem.ir 3)‫مفاهیم‬ ‫و‬ ‫تعاریف‬‫مایکروسرویس‬ ‫معماری‬ 3-3)‫تعاریف‬ ‫و‬ ‫تاریخچه‬ ‫مایکروسرویس‬ ‫معماری‬(Microservice Architecture‫به‬ ‫یا‬ )‫مایکروسرویس‬ ‫اختصار‬‫ها‬‫در‬ ‫که‬‫منابع‬ ‫میکروسرویس‬ ‫نام‬ ‫به‬ ‫گاهی‬ ‫فارسی‬‫ها‬‫به‬ ‫اخیر‬ ‫چندسال‬ ‫در‬ ،‫است‬ ‫شده‬ ‫ترجمه‬ ‫نیز‬‫و‬ ‫گسترش‬ ‫حال‬ ‫در‬ ‫شدت‬ ‫در‬ ‫فراگیری‬‫توسعه‬ ‫میان‬‫معماران‬ ‫و‬ ‫دهندگان‬.‫است‬‫واژه‬ ‫به‬ ‫مستقیم‬ ‫اشاره‬ ‫اولین‬ ‫اگرچه‬"‫مایکروسرویس‬‫ها‬"‫ب‬‫ه‬ ‫سال‬1111‫نرم‬ ‫معماری‬ ‫کارگاه‬ ‫یک‬ ‫در‬ ‫و‬‫بر‬ ‫افزار‬‫می‬‫گردد‬،‫در‬ ‫موضوع‬ ‫این‬ ‫شدن‬ ‫داغ‬ ‫اما‬‫طی‬‫سال‬‫های‬1112‫و‬ 1112‫بود‬‫؛‬‫هم‬‫اکنون‬‫مایکروسرویس‬‫ها‬‫موضوعات‬ ‫از‬ ‫یکی‬‫جذاب‬‫در‬‫نرم‬ ‫دنیای‬‫می‬ ‫محسوب‬ ‫معماری‬ ‫و‬ ‫افزار‬‫شود‬ ‫و‬‫کتاب‬ ،‫مقاالت‬ ‫هرماه‬‫ارایه‬ ‫و‬ ‫ها‬‫آ‬ ‫از‬ ‫جدیدی‬ ‫های‬‫می‬ ‫منتشر‬ ‫ن‬‫کنفرانس‬ ‫در‬ ‫و‬ ‫شود‬‫ها‬‫یا‬‫تجاری‬ ‫سمینارهای‬- ‫جذب‬ ‫خود‬ ‫به‬ ‫را‬ ‫زیادی‬ ‫عالقمندان‬ ‫نیز‬ ‫علمی‬‫می‬‫کند‬‫؛‬‫اساس‬ ‫بر‬ ‫حتی‬‫گزارش‬‫های‬‫میزان‬ ‫از‬ ‫گوگل‬‫رشد‬‫جستجوی‬ ‫عبار‬‫ا‬‫با‬ ‫مرتبط‬ ‫ت‬‫مایکروسرویس‬‫ها‬‫می‬‫به‬ ‫توان‬‫آن‬ ‫محوری‬ ‫نقش‬‫در‬‫و‬ ‫معماری‬‫سیستم‬ ‫توسعه‬‫ها‬‫پی‬.‫برد‬ ‫نیز‬ ‫تجاری‬ ‫دنیای‬ ‫در‬‫شرکت‬‫مطرحی‬ ‫های‬‫پ‬‫ی‬‫پیاده‬ ‫شگام‬‫بوده‬ ‫آن‬ ‫استقرار‬ ‫و‬ ‫سازی‬‫می‬ ‫جمله‬ ‫از‬ ‫که‬ ‫اند‬‫به‬ ‫توان‬ ‫شرکت‬‫های‬Uber،Netflix،Amazon،Ebay‫و‬Sound Cloud.‫نمود‬ ‫اشاره‬‫تحقیقاتی‬ ‫اساس‬ ‫بر‬ ‫توسط‬ ‫که‬ ‫متفاوتی‬1 Forrester،1 Redhat‫و‬3 Dimensional Research‫از‬ ‫بیش‬ ،‫است‬ ‫شده‬ ‫انجام‬ 01‫پرسش‬ ‫درصد‬‫کرده‬ ‫اعالم‬ ‫شوندگان‬‫برنامه‬ ‫که‬ ‫اند‬‫پیاده‬ ‫و‬ ‫توسعه‬ ‫برای‬ ‫ای‬‫سازی‬‫مایکروسرویس‬ ‫معماری‬‫د‬.‫ارند‬ 1 Forrester Data Global Business Technographics® Developer Survey, 2017 1 Redhat 2017 Microservices Survey 3 Global Microservices Trends: A Survey of Development Professionals
  • 2. ‫صفحه‬1 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir ‫مفاهیم‬ ‫و‬ ‫اصول‬ ‫خصوص‬ ‫در‬ ‫مطلب‬ ‫این‬ ‫در‬‫معماری‬‫تکنیک‬ ‫و‬ ‫ابزارها‬ ،‫مایکروسرویس‬‫چالش‬ ‫و‬ ‫آن‬ ‫های‬‫های‬ ‫پیش‬‫پیاده‬ ‫روی‬‫سازی‬،‫سازمانی‬ ‫مقیاس‬ ‫در‬‫مطالب‬‫ی‬‫خواهد‬ ‫ارایه‬‫مختل‬ ‫تعاریف‬ ‫ابتدا‬ ‫در‬ .‫شد‬‫ف‬‫ی‬‫مرا‬ ‫توسط‬ ‫که‬‫جع‬ ‫معتبر‬‫می‬ ‫مرور‬ ،‫شده‬ ‫ارایه‬:‫گردد‬ ‫مایکروسرویس‬‫ها‬‫نرم‬ ‫توسعه‬ ‫تکنیک‬ ‫یک‬‫سرویس‬ ‫معماری‬ ‫سبک‬ ‫از‬ ‫شده‬ ‫مشتق‬ ‫افزار‬‫اس‬ ‫گرا‬‫ت‬ ‫مجموعه‬ ‫از‬ ‫که‬‫سرویس‬ ‫از‬ ‫ای‬‫خوش‬ ‫های‬‫مایکروسرویس‬ ‫معماری‬ ‫در‬ .‫است‬ ‫شده‬ ‫تشکیل‬ ‫تعریف‬ ‫پروتکل‬‫ارتباطی‬ ‫های‬‫سرویس‬ ‫و‬ ‫هستند‬ ‫پلتفرم‬ ‫از‬ ‫مستقل‬ ‫و‬ ‫سبک‬‫ها‬‫معیی‬ ‫مسئولیت‬ ‫و‬ ‫دامنه‬‫ن‬ ‫دارند‬ ‫مشخصی‬ ‫و‬‫توسعه‬ ‫تسهیل‬ ‫و‬ ‫سیستم‬ ‫ماژوالریتی‬ ‫بهبود‬ ‫معماری‬ ‫این‬ ‫مزایای‬ ،‫استقر‬ ،‫و‬ ‫ار‬ ‫ا‬ ‫سیستم‬ ‫تست‬‫ست‬‫؛‬‫توسعه‬ ‫سیستم‬ ‫همچنین‬‫د‬ ‫یافته‬‫ا‬‫مقیاس‬ ‫رای‬‫باال‬ ‫پذیری‬‫ب‬ ‫سرعت‬ ‫و‬‫االتر‬ ‫اعمال‬‫تغییر‬‫معماری‬ ‫این‬ .‫است‬‫با‬‫رویکر‬‫د‬DevOps‫نرم‬ ‫پشتیبانی‬ ‫و‬ ‫توسعه‬ ‫در‬‫افزار‬‫ها‬ ‫هماهنگ‬‫دارد‬ ‫ی‬( .Wikipedia) ‫مایکروسرویس‬ ‫معماری‬ ‫سبک‬‫نرم‬ ‫یک‬ ‫توسعه‬ ‫برای‬ ‫رویکردی‬‫سرویس‬ ‫تعدادی‬ ‫از‬ ‫متشکل‬ ‫افزار‬ ‫به‬ ‫سرویس‬ ‫هر‬ ‫که‬ ‫است‬ ‫مستقل‬ ‫و‬ ‫کوچک‬‫اتکا‬‫ء‬‫طریق‬ ‫از‬ ‫و‬ ‫شده‬ ‫اجرا‬ ‫خودش‬ ‫زیرساخت‬ ‫و‬ ‫منابع‬ ‫پروتکل‬‫بر‬ ‫مبتنی‬ ‫سبک‬ ‫های‬HTTP‫این‬ .‫دارد‬ ‫ارتباط‬ ‫دیگران‬ ‫با‬‫سرویس‬‫قابلیت‬ ‫براساس‬ ‫ها‬- ‫کسب‬ ‫های‬‫می‬ ‫ساخته‬ ‫و‬ ‫طراحی‬ ‫وکار‬‫بستر‬ ‫بر‬ ‫و‬ ‫شوند‬‫های‬‫زبان‬ ‫با‬ ‫فناوری‬‫برنامه‬ ‫های‬‫نویسی‬ ‫سرویس‬ ‫این‬ .‫هستند‬ ‫استقرار‬ ‫قابل‬ ‫مختلفی‬‫هر‬ ‫و‬ ‫دارند‬ ‫را‬ ‫متمرکز‬ ‫مدیریت‬ ‫به‬ ‫نیاز‬ ‫حداقل‬ ‫ها‬ ‫م‬ ‫مدیریت‬ ‫را‬ ‫خود‬ ‫به‬ ‫مخصوص‬ ‫داده‬ ‫پایگاه‬ ‫سرویس‬‫ی‬.‫کند‬(Martin Fowler) ‫مایکروسرویس‬‫به‬ ‫ها‬‫سرویس‬ ‫خالصه‬ ‫صورت‬‫دانه‬ ‫های‬‫یکدیگر‬ ‫با‬ ‫که‬ ‫هستند‬ ‫خودمختاری‬ ‫و‬ ‫ریز‬ ‫می‬ ‫همکاری‬‫دیگر‬ ‫تغییر‬ ‫به‬ ‫منجر‬ ‫اینکه‬ ‫بدون‬ ‫کند‬ ‫تغییر‬ ‫مستقال‬ ‫بتواند‬ ‫باید‬ ‫سرویس‬ ‫هر‬ .‫کنند‬ ‫سرویس‬‫استفاده‬ ‫یا‬ ‫مرتبط‬ ‫های‬( .‫شود‬ ‫سرویس‬ ‫از‬ ‫کنندگان‬Sam Newman) ‫معماری‬‫نرم‬ ‫یک‬ ‫شکست‬ ‫بر‬ ‫مبتنی‬ ‫مهندسی‬ ‫رویکرد‬ ‫یک‬ ‫مایکروسرویس‬‫ماژول‬ ‫به‬ ‫افزار‬‫های‬ ‫تک‬-‫می‬ ‫مستقر‬ ‫و‬ ‫تولید‬ ‫مستقال‬ ‫که‬ ‫است‬ ‫کارکردی‬‫واسط‬ ‫با‬ ‫و‬ ‫شوند‬‫خوش‬ ‫های‬‫دی‬ ‫با‬ ‫تعریف‬‫گر‬ ‫سرویس‬‫سرویس‬ ‫این‬ .‫دارند‬ ‫ارتباط‬ ‫ها‬‫تیم‬ ‫توسط‬ ‫ها‬‫می‬ ‫پشتیبانی‬ ‫و‬ ‫تولید‬ ‫کوچکی‬ ‫های‬‫ش‬‫وند‬ ‫پ‬ ‫سرویس‬ ‫حیات‬ ‫چرخه‬ ‫تمام‬ ‫از‬ ‫که‬‫می‬ ‫شتیبانی‬( ‫کند‬IBM) ‫مجموعه‬ ‫از‬ ‫مایکروسرویس‬ ‫معماری‬‫سرویس‬ ‫از‬ ‫ای‬‫است‬ ‫شده‬ ‫تشکیل‬ ‫کوچک‬ ‫و‬ ‫خودمختار‬ ‫های‬ ‫کسب‬ ‫قابلیت‬ ‫یک‬ ‫و‬ ‫بوده‬ ‫مستقل‬ ‫سرویس‬ ‫هر‬ ‫که‬‫پیاده‬ ‫را‬ ‫وکار‬‫می‬ ‫سازی‬( ‫نماید‬Microsoft)
  • 3. ‫صفحه‬3 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir ‫نرم‬ ‫توسعه‬ ‫به‬ ‫ماژوالر‬ ‫و‬ ‫چابک‬ ‫رویکرد‬ ‫یک‬ ‫مایکروسرویس‬ ‫معماری‬‫برخالف‬ ‫که‬ ‫است‬ ‫افزار‬ ‫نرم‬‫یک‬ ‫افزارهای‬‫تکه‬-‫مولفه‬ ‫همه‬ ‫که‬‫قابلیت‬ ‫و‬ ‫ها‬‫شده‬ ‫آمیخته‬ ‫بایکدیگر‬ ‫سیستم‬ ‫های‬‫اند‬- ‫مجموعه‬ ‫بر‬ ‫مبتنی‬‫سرویس‬ ‫از‬ ‫ای‬‫کوچک‬ ‫های‬‫مستقل‬ ‫و‬ ‫تر‬‫هم‬ ‫از‬‫هر‬ .‫است‬ ‫سست‬ ‫ارتباط‬ ‫با‬ ‫سرویس‬‫مسوول‬‫را‬ ‫سیستم‬ ‫کل‬ ‫از‬ ‫مشخص‬ ‫کارکرد‬ ‫یک‬ ‫و‬ ‫است‬ ‫خود‬ ‫پردازش‬ ‫و‬ ‫وظایف‬ ‫انجام‬ ‫می‬ ‫پشتیبانی‬‫دیگر‬ ‫با‬ ‫و‬ ‫کند‬‫سرویس‬‫طریق‬ ‫از‬ ‫ها‬API( ‫دارد‬ ‫ارتباط‬Oracle) ‫جمع‬ ‫در‬‫می‬ ‫شده‬ ‫تعاریف‬ ‫بندی‬‫گفت‬ ‫توان‬:"‫مایکروسرویس‬ ‫معماری‬‫نرم‬ ‫معماری‬ ‫از‬ ‫خاصی‬ ‫سبک‬ ،‫مشتق‬ ‫و‬ ‫افزار‬- ‫سرویس‬ ‫معماری‬ ‫از‬ ‫شده‬‫خودمختاری‬ ‫آن‬ ‫هدف‬ ‫که‬ ‫است‬ ‫گرا‬‫باالی‬‫سرویس‬‫کارکردی‬ ‫منطق‬ ‫نظر‬ ‫از‬ ‫ها‬-‫داده‬‫و‬ ‫ای‬ ‫پیاده‬ ‫پلتفرم‬ ‫نیز‬‫اج‬ ‫و‬ ‫سازی‬‫سرویس‬ ‫معماری‬ ‫بر‬ ‫عالوه‬ ‫معماری‬ ‫سبک‬ ‫این‬ .‫است‬ ‫را‬‫از‬ ‫گرا‬‫مفاهیم‬‫معماری‬‫رخدا‬‫د‬ ‫و‬ ‫محور‬‫سیستم‬‫توزیع‬ ‫های‬‫بهره‬ ‫نیز‬ ‫شده‬.‫است‬ ‫برده‬" ‫نمونه‬‫بر‬ ‫مبتنی‬ ‫اینترنتی‬ ‫فروش‬ ‫ساده‬ ‫سیستم‬ ‫یک‬ ‫عناصر‬ ‫از‬ ‫ای‬‫داده‬ ‫نشان‬ ‫زیر‬ ‫شکل‬ ‫در‬ ‫مایکروسرویس‬ ‫معماری‬ ‫است‬ ‫شده‬. ‫شکل‬3-3:‫نمونه‬‫مایکروسرویس‬ ‫معماری‬ ‫بر‬ ‫مبتنی‬ ‫اینترنتی‬ ‫فروش‬ ‫ساده‬ ‫سیستم‬ 3-2)‫ویژگی‬ ‫و‬ ‫اصول‬‫مایکروسرویس‬ ‫معماری‬ ‫های‬ ‫مهمترین‬‫و‬ ‫اصول‬‫ویژگی‬‫های‬‫معماری‬‫مایکروسرویس‬:‫است‬ ‫زیر‬ ‫قرار‬ ‫به‬ ‫مشخص‬ ‫دامنه‬ ‫یک‬ ‫مسوول‬ ‫سرویس‬ ‫هر‬‫به‬ ‫و‬‫تعریف‬ ‫خوبی‬‫شده‬‫سیستم(صورت‬ ‫از‬)‫مساله‬‫است‬‫که‬‫مس‬‫تقال‬ (‫تولید‬Build‫و‬ )(‫استقرار‬Deploy‫می‬ ).‫یابد‬
  • 4. ‫صفحه‬2 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir ‫فناوری‬ ‫از‬ ‫سرویس‬ ‫هر‬‫بهره‬ ‫خود‬ ‫مناسب‬ ‫ابزارهای‬ ‫و‬ ‫ها‬‫می‬‫برد‬‫سرویس‬ ‫همه‬ ‫ندارد‬ ‫لزومی‬ ‫و‬‫یک‬ ‫های‬ ‫فناوری‬ ‫یک‬ ‫از‬ ‫سیستم‬،‫زبان‬‫برنامه‬‫یا‬ ‫نویسی‬.‫کنند‬ ‫استفاده‬ ‫پلتفرم‬ ‫سرویس‬‫ها‬‫واسط‬ ‫با‬‫ت‬ ‫خوش‬ ‫های‬،‫دارند‬ ‫تعامل‬ ‫یکدیگر‬ ‫با‬ ‫سبک‬ ‫و‬ ‫عریف‬‫ب‬ ‫باید‬ ‫سرویس‬ ‫هر‬ ‫خروجی‬‫ت‬‫واند‬ ‫سرویس‬ ‫ورودی‬.‫گیرد‬ ‫قرار‬ ‫دیگری‬ ‫های‬ ‫سرویس‬ ‫هر‬‫مسوول‬‫داده‬ ‫مدیریت‬‫می‬ ‫و‬ ‫است‬ ‫خود‬ ‫های‬‫ابزارهای‬ ‫انواع‬ ‫از‬ ‫تواند‬DBMS.‫نماید‬ ‫استفاده‬ ‫سرویس‬ ‫معماری‬ ‫کلی‬ ‫اصول‬.‫است‬ ‫صادق‬ ‫نیز‬ ‫معماری‬ ‫این‬ ‫در‬ ‫گرا‬ ‫پیام‬ ‫روش‬ ‫از‬ ‫استفاده‬ ‫ترجیح‬(‫غیرهمزمان‬ ‫رسانی‬Asynchronous)‫همزمان‬ ‫به‬ ‫نسبت‬ (‫کاریگرافی‬ ‫همکاری‬ ‫روش‬ ‫از‬ ‫استفاده‬ ‫ترجیح‬Choreography‫ارکستریشن‬ ‫به‬ ‫نسبت‬ ) 3-1)‫یک‬ ‫معماری‬ ‫دربرابر‬ ‫مایکروسرویس‬ ‫معماری‬(‫تکه‬Monolithic) ‫کتاب‬ ‫از‬ ‫بسیاری‬‫م‬ ‫و‬ ‫ها‬‫قاالتی‬‫مایکروسرویس‬ ‫معماری‬ ‫درباره‬ ‫که‬‫دارد‬ ‫وجود‬‫معماری‬ ‫تمایز‬ ‫و‬ ‫ویژگی‬ ‫توضیح‬ ‫برای‬ ، ‫با‬ ‫مقایسه‬ ‫از‬ ‫مایکروسرویس‬‫یک‬ ‫معماری‬‫تکه‬‫استفاده‬‫کرده‬.‫اند‬‫سیستم‬ ‫در‬ ‫نویسندگان‬ ‫این‬ ‫نظر‬ ‫مبنای‬ ‫بر‬‫ه‬‫ای‬ ‫یک‬‫مولفه‬ ‫مجموعه‬ ،‫تکه‬‫ها‬-‫سرویس‬‫ها‬-‫داده‬‫نمی‬ ‫که‬ ‫است‬ ‫آمیخته‬ ‫هم‬ ‫در‬ ‫چنان‬ ‫ها‬‫بلوک‬ ‫توان‬‫این‬ ‫سازنده‬ ‫های‬ ‫سیستم‬‫و‬ ‫کرده‬ ‫جدا‬ ‫هم‬ ‫از‬ ‫مستقال‬ ‫را‬ ‫ها‬‫یا‬‫تغییر‬(‫جایجا‬)‫نمود‬‫؛‬‫ا‬ ‫هدف‬ ‫مایکروسرویس‬ ‫معماری‬ ‫در‬ ‫اما‬‫است‬ ‫ین‬ ‫مجموعه‬ ‫به‬ ‫سیستم‬ ‫یک‬ ‫که‬‫مستقل‬ ‫کامال‬ )‫ماژول(سرویس‬ ‫از‬ ‫ای‬(‫خودمختار‬)‫همه‬ ‫سرویس‬ ‫هر‬ ‫که‬ ‫شود‬ ‫تقسیم‬ ‫داده‬ ،‫محاسبات‬‫سرویس‬ ‫سایر‬ ‫به‬ ‫اجرا‬ ‫برای‬ ‫و‬ ‫باشد‬ ‫داشته‬ ‫خود‬ ‫در‬ ‫را‬ ‫نیاز‬ ‫مورد‬ ‫قوانین‬ ‫و‬ ‫ها‬‫باشد‬ ‫نداشته‬ ‫نیاز‬ ‫ها‬ ‫باشد‬ ‫داشته‬ ‫وجود‬ ‫وابستگی‬ ‫حداقل‬ ‫یا‬.)‫زیر‬ ‫(شکل‬ ‫شکل‬3-2:‫مفهومی‬ ‫مقایسه‬‫یک‬ ‫معماری‬‫تکه‬‫مایکروسرویس‬ ‫برابر‬ ‫در‬
  • 5. ‫صفحه‬2 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir 3-4)‫مایکروسرویس‬ ‫استخراج‬ ‫و‬ ‫طراحی‬‫ها‬ ‫مهمترین‬‫در‬ ‫موضوع‬‫مایکروسرویس‬ ‫معماری‬‫دانه‬ ‫و‬ ‫استخراج‬ ‫نحوه‬ ،‫سرویس‬ ‫بندی‬‫بگونه‬ ‫است‬ ‫ها‬‫این‬ ‫که‬ ‫ای‬ ‫سرویس‬‫مرکزی‬ ‫مدیریت‬ ‫به‬ ‫نیاز‬ ‫حداقل‬ ‫و‬ ‫بوده‬ ‫خودمختار‬ ‫کامال‬ ‫ها‬(‫م‬)‫تمرکز‬‫برای‬ ،‫باشد‬ ‫داشته‬ ‫وجود‬ ‫سیستم‬ ‫در‬ ‫مجموعه‬ ‫به‬ ‫مساله‬ ‫فضای‬ ‫سرویس‬ ‫استخراج‬‫دامنه‬ ‫از‬ ‫ای‬‫طراحی‬ ‫مسوول‬ ‫تیم‬ ‫هر‬ ‫و‬ ‫شده‬ ‫شکسته‬ ‫ها‬-‫پیاده‬‫سازی‬- ‫دامنه‬ ‫از‬ ‫یکی‬ ‫پشتیبانی‬‫مفاهیم‬ ‫با‬ ‫که‬ ‫بود‬ ‫خواهد‬ ‫ها‬DevOps‫دارد‬ ‫همخوانی‬ ‫نیز‬‫؛‬‫و‬ ‫سرویس‬ ‫استخراج‬ ‫برای‬ ‫دامنه‬ ‫انتخاب‬‫مایکروسرویس‬ ‫معماری‬ ‫در‬ ‫ها‬‫می‬ ‫استفاده‬ ‫تکنیک‬ ‫و‬ ‫روش‬ ‫چندین‬ ‫از‬ ‫معموال‬‫معروف‬ ‫که‬ ‫شود‬‫تری‬‫ن‬ ‫آن‬‫مبتنی‬ ‫طراحی‬ ‫ها‬( ‫دامنه‬ ‫بر‬Domain Driven Design‫کتاب‬ ،‫است‬ )‫دارد‬ ‫وجود‬ ‫حوزه‬ ‫این‬ ‫در‬ ‫مختلفی‬ ‫های‬ ‫معروف‬ ‫که‬‫آن‬ ‫ترین‬‫نوشته‬ ‫ها‬2 Eric Evans‫می‬‫ب‬‫ا‬.‫شد‬‫مجموعه‬ ‫شده‬ ‫گفته‬ ‫متد‬ ‫بر‬ ‫عالوه‬‫تکنیک‬ ‫از‬ ‫ای‬‫های‬ ‫سرویس‬ ‫شناسایی‬‫سرویس‬ ‫معماری‬ ‫بر‬ ‫مبتنی‬‫شی‬ ‫و‬ ‫گرا‬‫می‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫نیز‬ ‫گرایی‬‫گیرد‬‫بخ‬ ‫در‬ ‫که‬‫ش‬‫های‬ ‫شد‬ ‫خواهند‬ ‫معرفی‬ ‫بعدی‬. ‫صرف‬‫در‬ ‫سرویس‬ ‫شناسایی‬ ‫روش‬ ‫و‬ ‫تکنیک‬ ‫از‬ ‫نظر‬‫مایکروسرویس‬ ‫معماری‬‫که‬ ‫است‬ ‫شده‬ ‫پذیرفته‬ ‫اصل‬ ‫این‬ ، ‫سرویس‬ ‫از‬ ‫مجموعه‬ ‫هر‬ ‫برای‬ ،‫سرویس‬ ‫تغییرات‬ ‫و‬ ‫توسعه‬ ‫در‬ ‫چابکی‬ ‫برای‬‫م‬ ‫های‬‫رویکر‬ ‫با‬ ‫تخصصی‬ ‫تیم‬ ‫یک‬ ‫رتبط‬‫د‬ DevOps.)‫زیر‬ ‫یابد(شکل‬ ‫اختصاص‬ ‫شکل‬3-1:‫تیم‬ ‫مسوولیت‬ ‫تقسیم‬ ‫نحوه‬‫طراحی‬ ‫های‬-‫پیاده‬‫سرویس‬ ‫سازی‬ 2 Domain-Driven Design: Tackling Complexity in the Heart of Software
  • 6. ‫صفحه‬6 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir 3-5)‫ارتباط‬‫سرویس‬ ‫معماری‬‫گرا‬‫با‬‫مایکروسرویس‬ ‫معماری‬ ‫بحث‬ ‫مورد‬ ‫موضوعات‬ ‫از‬ ‫یکی‬‫حوزه‬ ‫دراین‬،‫نسبت‬‫مایکروسرویس‬ ‫معماری‬‫سرویس‬ ‫معماری‬ ‫با‬‫است‬ ‫گرا‬‫؛‬‫دلیل‬ ‫شباهت‬ ‫امر‬ ‫این‬‫فناوری‬ ‫اشتراکات‬ ‫و‬ ‫ها‬-‫متد‬‫معماری‬ ‫دو‬ ‫دراین‬ ‫ها‬‫د‬ ‫دو‬ ‫خصوص‬ ‫این‬ ‫در‬ .‫است‬‫وجود‬ ‫کلی‬ ‫یدگاه‬ ‫دارد‬‫؛‬‫اول‬ ‫دیدگاه‬‫مایکروسرویس‬ ‫معماری‬‫سرویس‬ ‫معماری‬ ‫با‬ ‫تقابل‬ ‫در‬ ‫رویکردی‬ ‫را‬‫می‬ ‫گرا‬‫دان‬‫د‬‫نوعی‬ ‫به‬ ‫و‬ ‫سرویس‬ ‫معماری‬‫یک‬ ‫معماری‬ ‫نوعی‬ ‫را‬ ‫گرا‬‫تکه‬‫می‬ ‫قلمداد‬‫کند‬‫آمده‬ ‫آن‬ ‫تغییر‬ ‫برای‬ ‫مایکروسرویس‬ ‫معماری‬ ‫که‬ ‫است‬‫معتبر‬ ‫مراجع‬ ‫تایید‬ ‫مورد‬ ‫که‬ ‫دوم‬ ‫دیدگاه‬ .‫تر‬‫فکری‬ ‫پارادایم‬ ‫یک‬ ‫گرا‬ ‫سرویس‬ ‫معماری‬ ‫است‬ ‫معتقد‬ ‫است‬ ‫فناوری‬ ‫و‬ ‫است‬‫وب‬ ‫مانند‬ ‫هایی‬-‫سرویس‬ ‫معماری‬ ‫تحقق‬ ‫اول‬ ‫سرویس(نسل‬‫مایکروسرویس‬ ‫یا‬ )‫گرا‬‫نمونه‬ ‫ها‬‫های‬‫ی‬ ‫تحقق‬ ‫از‬‫هرکدام‬ ‫که‬ ‫هستند‬ ‫آن‬‫ن‬‫ضعفی‬ ‫و‬ ‫قوت‬ ‫قاط‬.‫دارند‬ ‫می‬ ‫نگاهی‬ ‫موضوع‬ ‫بررسی‬ ‫برای‬‫سرویس‬ ‫معماری‬ ‫تعریف‬ ‫به‬ ‫کنیم‬‫توسط‬ ‫گرا‬IBM‫که‬‫در‬‫سال‬1111‫(هفده‬ )‫قبل‬ ‫سال‬‫پایان‬ ‫در‬ ‫نیز‬ ‫نویسنده‬ ‫و‬ ‫بود‬ ‫شده‬ ‫ارایه‬‫ارشد‬ ‫کارشناسی‬ ‫نامه‬2 ‫کتابی‬ ‫و‬6 ‫بعد‬ ‫که‬‫ا‬‫سال‬ ‫در‬1331‫منتشر‬ ‫نمود‬:‫داد‬ ‫ارجاع‬ ‫آن‬ ‫به‬ ، "‫سرویس‬ ‫معماری‬‫شده‬ ‫توزیع‬ ‫های‬ ‫سیستم‬ ‫ساخت‬ ‫برای‬ ‫رهیافتی‬ ‫گرا‬‫است‬‫افزاری‬ ‫نرم‬ ‫کارکردهای‬ ‫که‬ ‫هستند‬ ‫فراخوانی‬ ‫قابل‬ ‫افزارها‬ ‫نرم‬ ‫دیگر‬ ‫توسط‬ ‫هم‬ ‫ها‬ ‫سرویس‬ ‫این‬ .‫کند‬ ‫می‬ ‫ارائه‬ ‫سرویس‬ ‫قالب‬ ‫در‬ ‫را‬ ‫سازی‬ ‫یکپارچه‬ ‫برای‬ ‫رهیافت‬ ‫این‬ ،‫گیرند‬ ‫می‬ ‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫جدید‬ ‫های‬ ‫سرویس‬ ‫ساخت‬ ‫برای‬ ‫هم‬ ‫و‬ ‫ها‬ ‫فناوری‬‫آل‬ ‫ایده‬ ‫دارد‬ ‫وجود‬ ‫افزاری‬ ‫سخت‬ ‫و‬ ‫افزاری‬ ‫نرم‬ ‫سکوهای‬ ‫از‬ ‫مختلفی‬ ‫انواع‬ ‫که‬ ‫محیطی‬ ‫در‬ .‫است‬" ‫با‬‫مقایسه‬‫سرویس‬ ‫معماری‬ ‫از‬ ‫فوق‬ ‫تعریف‬‫درباره‬ ‫که‬ ‫تعاریفی‬ ‫و‬ ‫اصول‬ ‫با‬ ‫گرا‬‫مایکروسرویس‬ ‫معماری‬‫ش‬ ‫ارایه‬،‫د‬ ‫می‬ ‫مشخص‬ ‫روشنی‬ ‫به‬‫تقابل‬ ‫که‬ ‫شود‬(‫تفاوت‬)‫عمده‬‫بتوان‬ ‫شاید‬ ‫و‬ ،‫نیست‬ ‫دو‬ ‫این‬ ‫بین‬ ‫ای‬‫مایکروسر‬ ‫معماری‬‫ویس‬ ‫گونه‬ ‫را‬‫کامل‬‫اصولی‬ ‫و‬ ‫تر‬‫سرویس‬ ‫معماری‬ ‫تحقق‬ ‫از‬ ‫تر‬‫وب‬ ‫فناوری‬ ‫به‬ ‫نسبت‬ ‫گرا‬-‫آن‬ ‫استانداردهای‬ ‫و‬ ‫سرویس‬ ‫دانست‬‫شدند‬ ‫معرفی‬ ‫گذشته‬ ‫دهه‬ ‫دو‬ ‫طی‬ ‫که‬. 2 ‫عنوان‬ ‫با‬ ‫ارشد‬ ‫کارشناسی‬ ‫نامه‬ ‫پایان‬"‫زکمن‬ ‫چارچوب‬ ‫به‬ ‫پوشش‬ ‫جهت‬ ‫در‬ ‫گرا‬ ‫سرویس‬ ‫سازمانی‬ ‫معماری‬ ‫متدولوژی‬ ‫تدوین‬" 6 ‫کتاب‬"‫مبان‬ ،‫اصول‬‫ی‬‫ها‬ ‫روش‬ ‫و‬‫ی‬‫معمار‬‫ی‬‫سازمان‬‫ی‬‫سرو‬‫ی‬‫س‬‫گرا‬"‫انتشارا‬‫امیررضا‬ ‫و‬ ‫شمس‬ ‫فریدون‬ ‫دکتر‬ ‫نویسندگان‬ :‫بهشتی‬ ‫شهید‬ ‫دانشگاه‬ ‫ت‬ ‫مهجوریان‬
  • 7. ‫صفحه‬0 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir 3-6)‫مزایای‬ ‫و‬ ‫نتایج‬‫مایکروسرویس‬ ‫معماری‬ ‫از‬ ‫حاصل‬ ‫نتایج‬ ‫و‬ ‫مزایا‬ ‫مهمترین‬‫مایکروسرویس‬ ‫معماری‬:‫است‬ ‫زیر‬ ‫قرار‬ ‫به‬ ‫حق‬‫فناوری/ابزار‬ ‫انتخاب‬: ‫در‬‫مایکروسرویس‬ ‫معماری‬‫فناوری‬ ‫از‬ ‫متنوعی‬ ‫سبد‬ ‫انتخاب‬ ‫حق‬‫ها‬-‫تیم‬ ‫برای‬ ‫ابزارها‬‫و‬ ‫طراحی‬ ‫های‬ ‫پیاده‬‫است‬ ‫مهیا‬ ‫سازی‬‫ب‬‫ه‬‫صورتی‬‫می‬ ‫که‬‫توان‬‫فرایند‬ ‫در‬‫سیستم‬ ‫یک‬ ‫تولید‬،‫مایکروسرویس‬ ‫برای‬‫ه‬‫ای‬ ‫فناوری‬ ‫از‬ ‫مختلف‬‫مختلفی‬ ‫ابزارهای‬ ‫و‬ ‫ها‬‫یکپارچگی‬ ‫بعدی‬ ‫مشکالت‬ ‫از‬ ‫نگرانی‬ ‫اینکه‬ ‫بدون‬ ‫کرد‬ ‫استفاده‬ .‫باشد‬ ‫داشته‬ ‫وجود‬ ‫سیستم‬ ‫پایداری‬: ‫ویژگی‬ ‫از‬ ‫یکی‬‫سیستم‬ ‫اصلی‬ ‫های‬‫سرویس‬ ‫سایر‬ ‫فعالیت‬ ‫ادامه‬ ‫امکان‬ ‫پایدار‬ ‫های‬‫ها‬‫(مایکروسرویس‬‫ه‬)‫ا‬‫در‬ ‫افتاده‬ ‫ازکار‬ ‫سرویس‬ ‫جایگزینی‬ ‫نیاز‬ ‫صورت‬ ‫در‬ ‫است(و‬ ‫سرویس‬ ‫یک‬ ‫افتادن‬ ‫ازکار‬ ‫صورت‬‫نم‬ ‫با‬‫م‬ ‫ونه‬‫شابه‬ ‫یا‬‫پشتیبان‬‫در‬ ‫موضوع‬ ‫این‬ ،)‫مایکروسرویس‬ ‫معماری‬‫سرویس‬ ‫وابستگی‬ ‫عدم‬ ‫و‬ ‫خودمختاری‬ ‫دلیل‬ ‫به‬‫ه‬‫ا‬ ‫می‬ ‫محقق‬.‫شود‬ ‫مقیاس‬‫پذیری‬‫باال‬‫و‬‫هدفمند‬: ‫امکا‬‫ن‬‫مقیاس‬‫سیستم‬ ‫در‬ ‫سیستم‬ ‫پذیری‬‫یک‬ ‫های‬‫به‬ ‫تکه‬‫در‬ ‫اما‬ ،‫است‬ ‫هیچ‬ ‫یا‬ ‫همه‬ ‫صورت‬‫معماری‬ ‫مایکروسرویس‬‫مقیاس‬ ‫امکان‬‫پذیری‬‫موثر‬‫به‬‫از‬ ‫بخش‬ ‫هر‬ ‫بنابراین‬ .‫است‬ ‫میسر‬ ‫دلخواه‬ ‫سرویس‬ ‫هر‬ ‫ازای‬ ‫بار‬ ‫که‬ ‫سیستم‬(load)‫می‬ ‫متناسبا‬ ،‫باشد‬ ‫داشته‬ ‫بیشتری‬ ‫کاری‬‫دراختی‬ ‫نیز‬ ‫بیشتر‬ ‫پردازشی‬ ‫منابع‬ ‫تواند‬‫ار‬ ‫مولفه‬ ‫همه‬ ‫برای‬ ‫نیست‬ ‫نیازی‬ ‫و‬ ‫گیرد‬‫مقیاس‬ ‫سیستم‬ ‫های‬‫پذیری‬‫یکنواخت‬.‫شود‬ ‫انجام‬ ‫توسعه‬‫و‬‫تغییرات‬: ‫منطق‬ ‫در‬ ‫تغییر‬ ‫امکان‬‫سرویس‬ ‫سایر‬ ‫در‬ ‫منفی‬ ‫تاثیرات‬ ‫از‬ ‫نگرانی‬ ‫بدون‬ ‫سرویس‬ ‫هر‬‫دلیل‬ ‫به‬ ‫ها‬ ‫سرویس‬ ‫خودمختاری‬‫ساده‬ ‫ها‬‫صورتیکه‬ ‫در‬ ‫و‬ ‫است‬ ‫داخلی‬ ‫منطق‬ ‫تغییر‬ ‫برای‬ ‫البته‬ ‫موضوع‬ ‫این‬ ،‫است‬ ‫تر‬ ‫سرویس‬ ‫سایر‬ ‫به‬ ‫باید‬ ‫کند‬ ‫تغییر‬ ‫سرویس‬ ‫واسط‬‫ها(استفاده‬.‫شود‬ ‫داده‬ ‫اطالع‬ )‫کنندگان‬ ‫استفاده‬‫ترکیب‬ ‫و‬ ‫مجدد‬:‫پذیری‬ ‫به‬‫سرویس‬ ‫معماری‬ ‫مانند‬‫سرویس‬ ‫توسعه‬ ‫از‬ ‫اصلی‬ ‫اهداف‬ ‫از‬ ‫یکی‬ ‫گرا‬‫ترکیب‬ ‫و‬ ‫مجدد‬ ‫استفاده‬ ‫امکان‬ ،‫ها‬ ‫سرویس‬‫سرویس‬ ‫ایجاد‬ ‫برای‬ ‫موجود‬ ‫های‬.‫است‬ ‫جدید‬ ‫های‬ ‫سرویس‬ ‫سازمان‬ ‫معماری‬ ‫با‬ ‫تطابق‬‫گرا‬: ‫سرویس‬ ‫سازمان‬‫مشتری‬ ‫در‬ ‫صرفا‬ ‫گرا‬-‫نمی‬ ‫خالصه‬ ‫مشتریان‬ ‫به‬ ‫باکیفیت‬ ‫سرویس‬ ‫ارایه‬ ‫و‬ ‫محوری‬‫ش‬‫ود‬ ‫مهم‬ ‫موضوع‬ ‫بلکه‬،‫تر‬‫و‬ ‫بیشتر‬ ‫پویایی‬ ‫برای‬ ‫منابع‬ ‫و‬ ‫عناصر‬ ‫چیدمان‬ ‫نحوه‬ ‫و‬ ‫سازمان‬ ‫داخلی‬ ‫معماری‬
  • 8. ‫صفحه‬3 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir ،‫است‬ ‫واحدها‬ ‫سایر‬ ‫از‬ ‫واحد‬ ‫هر‬ ‫استقالل‬‫مایکروسرویس‬ ‫معماری‬‫سرویس‬ ‫سازمانی‬ ‫معماری‬ ‫با‬ ‫منطبق‬‫گ‬‫را‬ ‫تسیهل‬ ‫و‬.‫است‬ ‫آن‬ ‫کننده‬ ‫س‬‫ه‬‫سرویس‬ ‫جایگزینی‬ ‫و‬ ‫جابجایی‬ ‫ولت‬‫ها‬: ‫ک‬ ‫خودمختاری‬ ‫به‬ ‫توجه‬ ‫با‬‫سرویس‬ ‫فناوری‬ ‫و‬ ‫ارکردی‬‫می‬ ‫سادگی‬ ‫به‬ ،‫ها‬‫عملکرد‬ ‫که‬ ‫را‬ ‫سرویس‬ ‫یک‬ ‫توان‬ ‫آ‬‫به‬ ‫را‬ ‫سرویس‬ ‫یک‬ ‫یا‬ ‫نمود‬ ‫جایگزین‬ ‫بهتر‬ ‫نمونه‬ ‫با‬ ‫نبوده‬ ‫مناسب‬ ‫ن‬‫دی‬ ‫محیط/سیستم‬ ‫یک‬ ‫به‬ ‫تنهایی‬‫گر‬ ‫نمود‬ ‫استفاده‬ ‫آن‬ ‫از‬ ‫و‬ ‫نمود‬ ‫منتقل‬ 2‫متدها‬ .‫و‬‫ابزارها‬‫ی‬‫با‬ ‫مرتبط‬‫مایکروسرویس‬ ‫معماری‬ 2-3)Containers ‫کانتینر‬‫ها‬(Containers)‫بسته‬ ‫برای‬ ‫استاندارد‬ ‫روش‬ ‫یک‬ ،(‫بندی‬Package‫نرم‬ )‫افزار‬-‫سرویس‬‫متعلقات‬ ‫همه‬ ‫و‬ ‫به‬ ‫است‬ ‫آن‬ ‫اجزاء‬ ‫و‬‫محیط‬ ‫به‬ ‫را‬ ‫آن‬ ‫بتوان‬ ‫صورتیکه‬-‫پلتفرم‬.‫نمود‬ ‫اجرا‬ ‫مشکل‬ ‫بدون‬ ‫و‬ ‫منتقل‬ ‫دیگری‬ ‫های‬‫ک‬‫انتینرها‬ ‫می‬ ‫باعث‬‫و‬ ‫مانده‬ ‫مخفی‬ ‫بیرون‬ ‫محیط‬ ‫از‬ ‫سرویس‬ ‫هر‬ ‫داخل‬ ‫فناوری‬ ‫شوند‬‫سرویس‬ ‫صورت‬ ‫بدین‬‫عین‬ ‫در‬ ‫ها‬ ‫فناوری‬ ‫از‬ ‫استفاده‬‫ها‬-.‫باشند‬ ‫تعامل‬ ‫و‬ ‫استفاده‬ ‫قابل‬ ‫استاندارد‬ ‫روش‬ ‫به‬ ‫بیرونی‬ ‫نظر‬ ‫از‬ ،‫مختلف‬ ‫سکوهای‬ ‫فناوری‬ ‫و‬ ‫ابزارها‬ ‫جمله‬ ‫از‬‫کانتینر‬ ‫مدیریت‬ ‫های‬‫ها‬(‫ابر‬ ‫بر‬ ‫مبتنی‬Cloud): Kubernetes Docker Swarm Amazon ECS Azure Service Fabric Cloud Foundry Google Cloud Functions IBM Bluemix OpenWhisk Oracle Application Container 2-2)API Gateway ‫سرویس‬ ‫هر‬ ‫اگرچه‬‫خودمختاری‬ ‫حداکثر‬ ‫با‬‫اما‬ ‫است‬ ‫سیستم‬ ‫دامنه‬ ‫در‬ ‫مشخص‬ ‫کارکرد‬ ‫یک‬ ‫انجام‬ ‫مسوول‬ ‫تقسیم‬ ،‫احرازهویت‬ ‫نظیر‬ ‫اموری‬ ‫انجام‬ ‫و‬ ‫سیستم‬ ‫کل‬ ‫مدیریت‬‫الگ‬ ،‫مجوزدهی‬ ،‫بار‬‫گ‬‫نیاز‬ .. ‫و‬ ،‫مانیتورینگ‬ ،‫یری‬ ‫سرویس‬ ‫از‬ ‫غیر‬ ‫متمرکز‬ ‫مدیریت/ابزار‬ ‫یک‬ ‫به‬‫می‬ ‫که‬ ‫دارد‬ ‫ها‬‫توسط‬ ‫تواند‬API Gateway‫پیاده‬‫سازی‬،‫شود‬
  • 9. ‫صفحه‬1 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir ‫این‬ ‫از‬ ‫درصورتیکه‬‫الگو‬)‫(روش‬‫توزیع‬ ‫کامال‬ ‫صورت‬ ‫به‬ ‫ذکرشده‬ ‫مدیریتی‬ ‫موارد‬ ‫کلیه‬ ،‫نشود‬ ‫استفاده‬‫ش‬‫توسط‬ ‫ده‬ ‫سرویس‬.‫شد‬ ‫خواهد‬ ‫مدیریت‬ ‫ها‬ ‫ابزار‬ ‫جمله‬ ‫از‬‫مطرح‬ ‫های‬‫برای‬API Gateway: Apigee API Management Amazon API Gateway IBM API Connect WSO2 API Management MuleSoft Anypoint API Management Oracle API Manager Kong API Gateway Azure API Gateway ‫ساده‬ ‫مثال‬ ‫زیر‬ ‫شکل‬‫بر‬ ‫مبتنی‬ ‫سیستم‬ ‫یک‬ ‫از‬ ‫ای‬‫مایکروسرویس‬ ‫معماری‬‫خودمختار‬ ‫سرویس‬ ‫تعدادی‬ ‫از‬ ‫متشکل‬ (‫دروازه‬ ‫یک‬ ‫و‬Gateway.‫است‬ ‫دسترسی‬ ) ‫شکل‬2-3:‫جایگاه‬ ‫و‬ ‫کاربرد‬API Gateway
  • 10. ‫صفحه‬11 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir 2-1)‫روش‬‫های‬‫مجازشماری‬ ‫و‬ ‫احرازهویت‬ ‫روش‬ ‫جمله‬ ‫از‬(‫هویت‬ ‫احراز‬ ‫های‬Authentication(‫مجازشماری‬ ‫و‬ )Authorization: ) Token based solution 3rd party Authentication Federation API Gateway A&A services Cognito 2-4)‫روش‬‫سرویس‬ ‫کشف‬ ‫و‬ ‫شناسایی‬ ‫های‬ ‫جمله‬ ‫از‬‫روش‬(‫کشف‬ ‫و‬ ‫شناسایی‬ ‫های‬Discovery‫سرویس‬ ‫برای‬ ‫سرویس‬ )‫گیرندگان‬: Client Side-Service Discovery Application Load Balancer-based Service Discovery DNS-Based Service Discovery Service Discovery using ECS Event Stream 2-4)‫متدلوژی‬‫های‬‫و‬ ‫تحلیل‬‫طراحی‬ ‫مایکروسرویس‬ ‫حوزه‬ ‫در‬‫متدلوژی‬ ‫متاسفانه‬ ‫ها‬‫وجود‬ ‫سرویس‬ ‫طراحی‬ ‫و‬ ‫تحلیل‬ ‫برای‬ ‫مدونی‬ ‫و‬ ‫شده‬ ‫شناخته‬ ‫های‬ ‫سال‬ ‫حاصل‬ ‫ندارد(متدلوژی‬‫و‬ ‫است‬ ‫آموزی‬ ‫تجربه‬ ‫ها‬‫معمار‬ ‫این‬ ‫بودن‬ ‫جدید‬ ‫دلیل‬ ‫به‬،‫ی‬‫سال‬ ‫در‬‫های‬‫آ‬‫باید‬ ‫ینده‬ ‫منتظر‬‫انتشار‬‫متدلوژی‬‫مجموعه‬ ‫اما‬ ،)‫باشیم‬ ‫مایکروسرویس‬ ‫های‬‫را‬ ‫استفاده‬ ‫قابل‬ ‫رهنمودهای‬ ‫و‬ ‫منابع‬ ‫از‬ ‫ای‬ ‫می‬:‫نمود‬ ‫معرفی‬ ‫زیر‬ ‫صورت‬ ‫به‬ ‫توان‬ ‫روش‬(‫دامنه‬ ‫بر‬ ‫مبتنی‬ ‫طراحی‬ ‫های‬DDD‫کتاب‬ ‫خصوصا‬ )‫های‬‫آقا‬‫ی‬Eric Evans ( ‫واکنشگر‬ ‫مانیفست‬Reactive Manifesto) ‫تکنیک‬ ‫و‬ ‫مفاهیم‬‫های‬DevOps‫جمله‬ ‫از‬Twelve-Factor App ( ‫سرویس‬ ‫کارکردی‬ ‫الگوهای‬Functional Decomposition Pattern) ‫تئوری‬CAP 2-5)‫پلتفرم‬‫تولید‬ ‫و‬ ‫طراحی‬ ‫های‬ ‫پلتفرم‬ ‫جمله‬ ‫از‬‫مایکروسرویس‬ ‫تولید‬ ‫و‬ ‫طراحی‬ ‫های‬:‫ها‬ Ballerina Netflix OSS MSF4J
  • 11. ‫صفحه‬11 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir Akka Vert.X Fabric8 Cocaine Deis Lightbend OpenWhisk VAMP ‫بر‬ ‫عالوه‬‫موارد‬‫شده‬ ‫گفته‬‫در‬ ‫موفق‬ ‫طراحی‬ ‫برای‬ ،‫مایکروسرویس‬ ‫معماری‬‫تکنیک‬ ‫دانستن‬ ‫به‬ ‫نیاز‬‫استا‬ ،‫ها‬‫نداردها‬ ‫تشریح‬ ‫که‬ ‫هست‬ ‫نیز‬ ‫دیگری‬ ‫مهم‬ ‫مفاهیم‬ ‫و‬‫آ‬‫ن‬‫ها‬‫این‬ ‫حوصله‬ ‫از‬‫نوشته‬‫تیتر‬ ‫صورت‬ ‫به‬ ‫تنها‬ ‫و‬ ‫است‬ ‫خارج‬-‫به‬ ‫وار‬ ‫می‬ ‫اشاره‬ ‫آنها‬:‫شود‬Bounded Context،Conway’s Law،Platform Services،SOEA،MDM، BCM،Command Query Responsibility Segregation،Data-Access pattern،EDA، NoSQL Data Design... ‫و‬
  • 12. ‫صفحه‬11 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir 1)‫چالش‬‫پیشنهادی‬ ‫راهکارهای‬ ‫و‬ ‫ها‬ ‫کالن‬ ‫مبانی‬ ‫و‬ ‫اصول‬ ‫بر‬ ‫مبتنی‬ ‫مایکروسرویس‬ ‫معماری‬‫در‬ ‫که‬ ‫است‬ ‫تری‬‫سرویس‬ ‫پارادایم‬‫گرایی‬‫از‬ ،‫دارد‬ ‫قرار‬‫آنجا‬ ‫سرویس‬ ‫که‬‫کسب‬ ‫واقعی‬ ‫نیازهای‬ ‫با‬ ‫منطبق‬ ‫آن‬ ‫اصول‬ ‫و‬ ‫گرایی‬‫است‬ ‫فناوری‬ ‫و‬ ‫وکار‬‫(و‬‫نیازها‬ ‫این‬ ‫نیز‬ ‫روز‬ ‫به‬ ‫روز‬ ‫مهم‬‫گسترده‬ ‫و‬ ‫تر‬‫می‬ ‫تر‬‫شود‬)‫سرویس‬ ‫بکارگیری‬ ،‫در‬ ‫گرایی‬‫معماری‬‫سازمان‬‫سیستم‬ ،‫اطالعاتی‬ ‫های‬‫و‬‫به‬‫ص‬‫ورت‬ ‫حوزه‬ ‫در‬ ‫کالن‬‫فناوری‬‫نیز‬ ‫اطالعات‬،‫یک‬ ‫که‬ ‫گذرا‬ ‫موج‬ ‫یک‬ ‫نه‬‫ادامه‬ ‫روند‬‫آینده‬ ‫و‬ ‫دار‬‫است‬ ‫دار‬‫؛‬‫معماری‬ ‫قاعد‬ ‫این‬ ‫از‬ ‫نیز‬ ‫مایکروسرویس‬‫ه‬‫آن‬ ‫بعدی‬ ‫مشتقات‬ ‫یا‬ ‫و‬ ‫معماری‬ ‫این‬ ‫که‬ ‫داشت‬ ‫انتظار‬ ‫باید‬ ‫و‬ ‫نیست‬ ‫مستثنی‬ ‫گیرد‬ ‫قرار‬ ‫توجهات‬ ‫محور‬ ‫در‬ ‫همچنان‬،‫تصمیم‬ ‫و‬ ‫مدیران‬ ‫لذا‬‫س‬ ‫پارادایم‬ ‫به‬ ‫راهبردی‬ ‫نگاهی‬ ‫با‬ ‫گیران‬‫رویس‬‫گرای‬‫ی‬ ‫فناوری‬ ‫انواع‬ ‫و‬‫ها‬-‫پیاده‬ ‫الگوهای‬‫می‬ ‫تکامل‬ ‫زمان‬ ‫گذر‬ ‫در‬ ‫که‬ ‫آن‬ ‫سازی‬‫برنامه‬ ‫باید‬ ‫یابند‬‫هدفمند‬ ‫و‬ ‫بلندمدت‬ ‫ای‬ ‫مدرن‬ ‫برای‬‫سیستم‬ ‫سازی‬‫سرویس‬ ‫و‬ ‫ها‬‫کسب‬ ‫تغییرات‬ ‫سرعت‬ ‫با‬ ‫متناسب‬ ‫فاوا‬ ‫های‬.‫باشند‬ ‫داشته‬ ‫وکار‬ ‫آنجاکه‬ ‫از‬‫تصمیم‬ ‫و‬ ‫مدیران‬ ‫تمایل‬ ‫صرف‬‫ا‬ ‫از‬ ‫استفاده‬ ‫به‬ ‫گیران‬‫تضمین‬ ‫معماری‬ ‫ین‬‫واق‬ ‫نتایج‬ ‫و‬ ‫موفقیت‬ ‫کننده‬‫عی‬ ‫ابتدا‬ ‫منظور‬ ‫همین‬ ‫به‬ ،‫نیست‬‫چالش‬‫می‬ ‫مرور‬ ‫مایکروسرویس‬ ‫معماری‬ ‫های‬‫سپس‬ ‫و‬ ‫شود‬‫راهکار‬‫برای‬ ‫هایی‬ ‫بکارگیری‬‫هدفمند‬‫پیاده‬ ‫و‬ ‫طراحی‬ ‫در‬ ‫موفقیت‬ ‫میزان‬ ‫افزایش‬ ‫جهت‬ ‫معماری‬ ‫این‬‫سازی‬‫سیستم‬‫ب‬ ‫مبتنی‬ ‫های‬‫ر‬ ‫مایکروسرویس‬‫ها‬‫می‬ ‫ارایه‬.‫گردد‬ 1-3)‫چالش‬‫مایکروسرویس‬ ‫معماری‬ ‫های‬ ‫چالش‬‫پیاده‬ ‫های‬‫نمی‬ ‫را‬ ‫مایکروسرویس‬ ‫معماری‬ ‫سازی‬‫چالش‬ ‫این‬ ،‫گرفت‬ ‫نادیده‬ ‫توان‬‫می‬ ‫را‬ ‫ها‬‫دسته‬ ‫سه‬ ‫در‬ ‫توان‬ ‫طبقه‬:‫نمود‬ ‫بندی‬ ‫چالش‬‫معماری‬ ‫های‬: ‫نسخه‬ ‫مدیریت‬ ،‫مانیتورینگ‬‫مایکروسرویس‬ ‫کنترل‬ ‫و‬ ‫امنیت‬ ‫تضمین‬ ،‫ها‬‫سخت‬ ‫مراتب‬ ‫به‬ ‫ها‬‫تر‬‫از‬‫سایر‬ ‫معماری‬‫سیستم‬ ‫و‬ ‫ها‬‫های‬‫الیه‬ ‫یا‬ ‫متمرکز‬‫ای‬.‫است‬ ‫پیاده‬‫معماری‬ ‫سازی‬‫توزیع‬ ‫های‬‫شده‬(‫با‬‫سرویس‬)‫خودمختار‬ ‫های‬‫پیچیده‬ ‫متدهای‬ ‫و‬ ‫ابزارها‬ ‫به‬ ‫نیاز‬‫تری‬ ‫پیاده‬ ‫برای‬.‫دارد‬ ‫نگهداشت‬ ‫و‬ ‫سازی‬ ‫ب‬‫ه‬‫ب‬ ‫خودمختاری‬ ‫مایکروسرویس‬ ‫هر‬ ‫اینکه‬ ‫دلیل‬‫دوباره‬ ‫از‬ ‫زیادی‬ ‫حجم‬ ،‫دارد‬ ‫االیی‬‫در‬ ‫کاری‬‫برنامه‬‫نوی‬‫سی‬ ‫سرویس‬ ‫هر‬‫مکانیزم‬ ‫اعمال‬ ‫برای‬‫کنترلی‬ ‫های‬-‫امنیتی‬-‫باید‬ ‫مشترک‬‫انجام‬.‫شود‬ ‫چالش‬‫سازمانی‬ ‫های‬: ‫پیاده‬‫معماری‬ ‫سازی‬‫آن‬ ‫تامین‬ ‫که‬ ‫است‬ ‫توانمند‬ ‫و‬ ‫ماهر‬ ‫بسیار‬ ‫انسانی‬ ‫نیروی‬ ‫نیازمند‬ ‫مایکروسرویس‬ .‫نیست‬ ‫ممکن‬ ‫سازمانی‬ ‫هر‬ ‫برای‬
  • 13. ‫صفحه‬13 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir ‫اطالع‬ ‫فناوری‬ ‫واحدهای‬ ‫بیشتر‬ ‫سازمانی‬ ‫ساختار‬‫تیم‬ ‫و‬ ‫ات‬‫نرم‬ ‫توسعه‬ ‫های‬‫افقی‬ ‫تقسیم‬ ‫بر‬ ‫مبتنی‬ ‫افزار‬ ‫فناوری‬‫ها‬-( ‫ابزارها‬UI-Application-Database‫ش‬ )‫ک‬‫تغییر‬ ‫و‬ ‫است‬ ‫گرفته‬ ‫ل‬‫ساختار‬ ‫این‬‫تیم‬ ‫به‬‫های‬ ‫بر‬ ‫مبتنی‬DevOps‫کسب‬ ‫محدود‬ ‫دامنه‬ ‫یک‬ ‫با‬،‫وکار‬‫و‬ ‫سخت‬‫زمان‬‫بر‬.‫است‬ ‫از‬ ‫یکی‬ ‫سازمان‬ ‫هر‬ ‫نیاز‬ ‫بر‬ ‫بنا‬ ‫معماری‬ ‫مناسب‬ ‫سبک‬ ‫انتخاب‬‫چالش‬‫صورت‬ ‫هر‬ ،‫است‬ ‫قدیمی‬ ‫های‬- ‫مساله‬‫دارد‬ ‫خود‬ ‫مناسب‬ ‫راهکار‬ ‫به‬ ‫نیاز‬ ‫ای‬‫بر‬ ‫مبتنی‬ ‫بزرگی‬ ‫یا‬ ‫کوچک‬ ‫سیستم‬ ‫هر‬ ‫نیست‬ ‫قرار‬ ‫و‬ ‫باشد‬ ‫مایکروسرویس‬‫معماری‬ ‫بین‬ ‫انتخاب‬ .‫ها‬-‫آن‬ ‫بین‬ ‫یکپارچگی‬ ‫نحوه‬ ‫و‬ ‫مختلف‬ ‫راهکارهای‬‫جمل‬ ‫از‬ ‫ها‬‫ه‬ ‫دغدغه‬‫تصمیم‬ ‫و‬ ‫مدیران‬ ‫های‬‫گیران‬‫است‬. ‫چالش‬‫های‬‫فناوری/ابزار‬: ‫بیش‬ ‫تنوع‬‫فناوری‬ ‫و‬ ‫ابزارها‬ ‫حد‬ ‫از‬‫برای‬ ‫تهدیدی‬ ‫دیگر‬ ‫نگاه‬ ‫از‬ ‫اما‬ ‫است‬ ‫مزیت‬ ‫یک‬ ‫اگرچه‬ ‫جدید‬ ‫های‬ ‫تیم‬‫برنامه‬ ‫های‬‫از‬ ‫استفاده‬ ‫برای‬ ‫کافی‬ ‫مهارت‬ ‫تا‬ ‫و‬ ‫شده‬ ‫سردرگم‬ ‫ابزارها‬ ‫از‬ ‫جنگلی‬ ‫در‬ ‫که‬ ‫است‬ ‫نویسی‬ ‫بدست‬ ‫را‬ ‫ابزار‬ ‫یک‬‫می‬‫فناوری‬ ‫و‬ ‫ابزارها‬ ،‫آورند‬‫ظهور‬ ‫جدیدی‬ ‫های‬‫مسلط‬ ‫فرصت‬ ‫و‬ ‫کرده‬‫روی‬ ‫کافی‬ ‫شدن‬ ‫می‬ ‫دست‬ ‫از‬ ‫را‬ ‫ابزار‬ ‫یک‬.‫دهند‬ ‫به‬ ‫جدید‬ ‫ابزارهای‬‫سرعت‬‫ارایه‬‫می‬‫و‬ ‫شوند‬‫برنامه‬ ‫توسط‬‫نویسان‬‫پروژه‬ ‫در‬‫های‬‫واقعی‬‫قرار‬ ‫استفاده‬ ‫مورد‬ ‫می‬‫ابزارها‬ ‫این‬ ‫پایداری‬ ‫و‬ ‫امنیت‬ ‫مانند‬ ‫مهمی‬ ‫مسایل‬ ‫حالیکه‬ ‫در‬ ‫گیرند‬‫به‬‫نشده‬ ‫ارزیابی‬ ‫کامل‬ ‫صورت‬‫ا‬.‫ست‬ ‫معماری‬‫ابزارها‬ ‫از‬ ‫جدیدی‬ ‫مجموعه‬ ‫مایکروسرویس‬-‫فناوری‬‫نیازمندی‬ ‫از‬ ‫پشتیبانی‬ ‫برای‬ ‫را‬ ‫ها‬‫خود‬ ‫های‬ ‫زمان‬ ‫افزایش‬ ‫و‬ ‫پیچیدگی‬ ‫افزایش‬ ‫باعث‬ ‫خود‬ ‫که‬ ‫است‬ ‫کرده‬ ‫معرفی‬‫و‬‫هزینه‬‫سیستم‬ ‫تولید‬‫می‬‫ش‬‫ود‬. 1-2)‫الزامات‬ ‫و‬ ‫راهکارها‬‫مایکروسرویس‬ ‫معماری‬ ‫بکارگیری‬ ‫گفته‬ ‫بخش‬ ‫این‬ ‫ابتدای‬ ‫در‬ ‫که‬ ‫همانطور‬‫شد‬‫سرویس‬ ‫پارادایم‬ ،‫مایکروسرویس‬ ‫معماری‬ ‫و‬ )‫عام‬ ‫صورت‬ ‫گرایی(به‬ ‫(به‬‫آینده‬ ‫روندهای‬ )‫خاص‬ ‫صورت‬‫سرویس‬ ‫و‬ ‫رقابتی‬ ‫دنیای‬ ‫در‬ ‫که‬ ‫هستند‬ ‫فاوا‬ ‫صنعت‬ ‫دار‬-‫کسب‬ ‫محور‬‫وکار‬‫نی‬‫ز‬ ‫تضمین‬‫کننده‬‫کسب‬ ‫بین‬ ‫همراستایی‬‫فاوا‬ ‫با‬ ‫وکار‬‫هستند‬‫مو‬ ‫و‬ ‫هدفمند‬ ‫بکارگیری‬ ‫برای‬ ‫اما‬ ،‫این‬ ‫فق‬‫مع‬‫ماری‬، ‫الزامات(قوا‬)‫نین‬‫زیر‬‫می‬ ‫پیشنهاد‬‫شود‬: ‫همه‬ ‫اینکه‬ ‫اول‬ ‫قانون‬‫صورت‬ ‫هر‬ ‫برای‬ ،‫باشد‬ ‫مایکروسرویسی‬ ‫نباید‬ ‫سیستمی‬ ‫هر‬ ‫و‬ ‫جا‬-‫مساله‬‫بای‬ ‫ای‬‫د‬ ‫نیازمندی‬‫معماری(وظیفه‬ ‫های‬‫مندی‬-‫غیروظیفه‬‫محدودیت‬ ،)‫مندی‬‫ها‬-‫و‬ ‫اجبارها‬‫مجموعه‬‫شرایط‬ ‫محیطی‬-‫زمینه‬‫معمار‬ ‫توسط‬ ‫ای‬‫ارشد‬‫سبک‬ ‫و‬ ‫شود‬ ‫تحلیل‬(‫راهکار‬).‫شود‬ ‫انتخاب‬ ‫معماری‬ ‫مناسب‬ ‫صورت‬ ‫در‬ ‫اینکه‬ ‫دوم‬ ‫قانون‬‫انتخاب‬‫مایکروسرویس‬ ‫معماری‬‫اصلی‬ ‫اصول‬ ‫از‬ ‫تبعیت‬ ‫ضمن‬ ‫که‬ ‫بدانیم‬ ‫باید‬ ‫انتخاب‬ ،‫معماری‬ ‫این‬‫نحوه‬ ‫که‬ ‫دارد‬ ‫وجود‬ ‫سختی‬ ‫و‬ ‫مهم‬ ‫های‬)‫(مدل‬‫سیستم‬ ‫فیزیکی‬ ‫و‬ ‫منطقی‬ ‫معماری‬
  • 14. ‫صفحه‬12 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir ‫مایکرو‬ ‫معماری‬ ‫لذا‬ ،‫کرد‬ ‫خواهد‬ ‫مشخص‬ ‫را‬‫چید‬ ‫و‬ ‫اشکال‬ ‫به‬ ‫سرویس‬‫مان‬‫پیاده‬ ‫قابل‬ ‫متنوعی‬ ‫های‬‫سازی‬ ‫است‬‫جبران‬ ‫نتایج‬ ‫مرحله‬ ‫این‬ ‫در‬ ‫نامناسب‬ ‫انتخاب‬ ‫که‬.‫دارد‬ ‫ناپذیری‬ ‫اینکه‬ ‫سوم‬ ‫قانون‬‫فریب‬ ‫نباید‬‫ابزار‬ ‫عناوین‬-‫فناوری‬-‫پروتکل‬‫خورد‬ ‫را‬‫؛‬‫نرم‬ ‫شرکت‬ ‫هر‬‫ادعا‬ ‫که‬ ‫افزاری‬ ‫می‬‫مایکرو‬ ‫معماری‬ ‫بر‬ ‫مبتنی‬ ‫محصوالت‬ ‫کند‬‫آزمایی‬ ‫راست‬ ‫باید‬ ‫کرده‬ ‫تولید‬ ‫سرویس‬‫شود‬‫و‬‫صرف‬ ‫سرویس‬ ‫سیستم‬ ‫تولید‬ ‫معنای‬ ‫به‬ ‫مایکروسرویس‬ ‫معماری‬ ‫با‬ ‫مرتبط‬ ‫پلتفرم‬ ‫و‬ ‫ابزار‬ ‫چند‬ ‫از‬ ‫استفاده‬‫م‬‫حور‬ ‫مایکروسرویس‬ ‫اصول‬ ‫با‬ ‫منطبق‬(‫نیست‬ ‫ها‬‫از‬ ‫بعد‬ ‫هنوز‬ ‫که‬ ‫همچنان‬‫از‬ ‫بیش‬ ‫گذشت‬‫یک‬‫ظهور‬ ‫از‬ ‫دهه‬ ‫سرویس‬ ‫معماری‬‫گرا‬،‫سیستم‬ ‫از‬ ‫کمی‬ ‫درصد‬‫فروخته‬ ‫و‬ ‫طراحی‬ ‫عنوان‬ ‫این‬ ‫با‬ ‫که‬ ‫هایی‬‫شده‬‫واقعا‬ ،‫اند‬ ‫سرویس‬ ‫اصول‬ ‫طبق‬‫پیاده‬ ‫و‬ ‫طراحی‬ ‫گرایی‬‫شده‬ ‫سازی‬‫اند‬) ‫اینکه‬ ‫چهارم‬ ‫قانون‬"‫استقرار‬‫به‬ ‫و‬‫نتیجه‬‫رسیدن‬"‫تغییر‬ ‫نیازمند‬ ‫سازمان‬ ‫در‬ ‫جدید‬ ‫معماری‬ ‫سبک‬ ‫یک‬ ‫کسب‬ ‫معماری‬ ‫و‬ ‫فرهنگ‬‫وکار‬‫در‬‫ایده‬ ‫تحقق‬ ،‫است‬ ‫سازمان‬ ‫آن‬‫نیازمند‬ ‫مایکروسرویس‬ ‫معماری‬ ‫ال‬ ‫سازمانی‬ ‫معماری‬ ‫بازنگری‬‫سرویس‬ ‫رویکرد‬ ‫با‬‫می‬ ‫تغییرات‬ .‫است‬ ‫گرا‬‫و‬ ‫شود‬ ‫شروع‬ ‫طرف‬ ‫دو‬ ‫هر‬ ‫از‬ ‫توان‬ .‫نماید‬ ‫سرایت‬ ‫دیگر‬ ‫طرف‬ ‫به‬‫شرکت‬ ‫موفقیت‬ ‫دالیل‬ ‫از‬ ‫یکی‬‫های‬Netflix،Amazon‫پیاده‬ ‫در‬‫سازی‬ ‫سرویس‬ ‫ماهیت‬ ،‫مایکروسرویس‬ ‫معماری‬‫کسب‬ ‫گرا‬‫شرکت‬ ‫این‬ ‫وکار‬‫می‬ ‫ارزیابی‬ ‫ها‬.‫شود‬ ‫اینکه‬ ‫پنجم‬ ‫قانون‬‫دانه‬ ‫و‬ ‫انتخاب‬‫بن‬‫سرویس‬ ‫مناسب‬ ‫دی‬‫ها‬‫مهمترین‬ ‫از‬‫و‬ ‫طراحی‬ ‫در‬ ‫موفقیت‬ ‫عوامل‬ ‫متدلوژی‬ ‫متاسفانه‬ ‫که‬ ‫است‬ ‫مایکروسرویس‬ ‫معماری‬ ‫استقرار‬‫هنوز‬ ‫استانداردی‬ ‫و‬ ‫مدون‬ ‫های‬‫آن‬ ‫برای‬ ،‫است‬ ‫نشده‬ ‫ارائه‬‫بنابراین‬‫سازمان‬‫ها‬‫(تیم‬‫ها‬)‫پیاده‬ ‫شروع‬ ‫از‬ ‫قبل‬ ‫باید‬‫یک‬ ‫تدوین‬ ‫به‬ ‫نسبت‬ ،‫سازی‬ ‫از‬ )‫داخلی(بومی‬ ‫متدلوژی‬‫مراجع‬ ‫مجموعه‬-‫کتاب‬‫ها‬-‫بین‬ ‫یا‬ ‫داخلی‬ ‫تجارب‬‫رابطه‬ .‫نمایند‬ ‫اقدام‬ ‫المللی‬ ‫پروژه‬ ‫شکست‬ ‫با‬ ‫مناسب‬ ‫متدلوژی‬ ‫یک‬ ‫بکارگیری‬ ‫عدم‬ ‫بین‬ ‫معنادارای‬‫سرویس‬ ‫های‬.‫دارد‬ ‫وجود‬ ‫گرا‬
  • 15. ‫صفحه‬12 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir 4)‫مراجع‬ ‫و‬ ‫منابع‬ Books: 1. Building Microservices, Sam Newman (2015) 2. Microservices for the Enterprise, Kasun Indrasiri & Prabath Siriwardena (2018) 3. Vertically Integrated Architectures, Jos Jong (2019) 4. Building Microservices with ASP.NET Core, Kevin Hoffman (2017) 5. Building Evolutionary Architectures: Support Constant Change, Neal Ford, Rebecca Parsons, and Patrick Kua (2017) Papers and Presentations: 6. Essential Capabilities behind Microservices, Kim Kao (2019) 7. Microservices: Powered by Containers-as-a-Service, Chris Rosen (2017) 8. Implementing Microservices on Oracle Cloud, Lucas Jellema (2018) 9. Microservices, containers and event-driven architecture, Simon Green (2018) 10.Microservices: The Journey So Far and Challenges Ahead, Pooyan Jamshidi, C. Pahl, N. Mendonca, J. Lewis, S. Tilkov (2018) 11.MicroServices Architecture, Araf Karsh Hamid (2018) 12.Pragmatic approach to MicroServices, David Hymers (2019) 13.Microservices, Containers, Databases and Persistence Models, Kuassi Mensah and Paul Parkinson (2018) 14.Comparison of different architecture styles, Attila Balogh-Biró (2016) Websites: 15.https://microservices.io 16.https://developer.ibm.com/technologies/microservices 17.https://www.mulesoft.com/resources/api/what-are-microservices 18.https://en.wikipedia.org/wiki/Microservices 19.https://www.redhat.com/en/topics/microservices 20.https://www.docker.com/solutions/microservices 21.https://aws.amazon.com/microservices/ 22.https://martinfowler.com/articles/microservices.html 23.https://www.nginx.com/learn/microservices 24.https://docs.oracle.com/en/solutions/learn-architect-microservice/index.html 25.https://wso2.com 26.https://camunda.com/learn/whitepapers/microservices-and-bpm 27.https://dzone.com 28.https://dotnet.microsoft.com/learn/web/microservices-architecture
  • 16. ‫صفحه‬16 ‫سال‬ ‫در‬ ‫مقاله‬ ‫این‬3189.‫است‬ ‫شده‬ ‫منتشر‬ Soea.sbu.ac.ir KarizSystem.ir 29.https://www.tibco.com/solutions/microservices 30.https://www.infoq.com/microservices 31.https://www.microservices.com 32.https://www.cloudfoundry.org/microservices 33.https://samnewman.io