SlideShare a Scribd company logo
‫صفحه‬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

More Related Content

What's hot

Roles and responsibilities of a CISO
Roles and responsibilities of a CISORoles and responsibilities of a CISO
Roles and responsibilities of a CISO
EC-Council
 
Non relational databases-no sql
Non relational databases-no sqlNon relational databases-no sql
Non relational databases-no sql
Ram kumar
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
James Serra
 
Oracle Transparent Data Encryption (TDE) 12c
Oracle Transparent Data Encryption (TDE) 12cOracle Transparent Data Encryption (TDE) 12c
Oracle Transparent Data Encryption (TDE) 12c
Nabeel Yoosuf
 
Web Applications Development with MEAN Stack
Web Applications Development with MEAN StackWeb Applications Development with MEAN Stack
Web Applications Development with MEAN Stack
Shailendra Chauhan
 
Always on in sql server 2017
Always on in sql server 2017Always on in sql server 2017
Always on in sql server 2017
Gianluca Hotz
 
Visualization with Amazon QuickSight
Visualization with Amazon QuickSightVisualization with Amazon QuickSight
Visualization with Amazon QuickSight
Amazon Web Services
 
SQL Server Profiler & Performance Monitor - SarabPreet Singh
SQL Server Profiler & Performance Monitor - SarabPreet SinghSQL Server Profiler & Performance Monitor - SarabPreet Singh
SQL Server Profiler & Performance Monitor - SarabPreet SinghRishu Mehra
 
Server Monitoring from the Cloud
Server Monitoring from the CloudServer Monitoring from the Cloud
Server Monitoring from the Cloud
Site24x7
 
Sysmon and Windows Event Forwarding workshop
Sysmon and Windows Event Forwarding workshopSysmon and Windows Event Forwarding workshop
Sysmon and Windows Event Forwarding workshop
Dave Willingham
 
SOC Certification Runbook Template
SOC Certification Runbook TemplateSOC Certification Runbook Template
SOC Certification Runbook Template
Mark S. Mahre
 
Introduction to Amazon Relational Database Service (Amazon RDS)
Introduction to Amazon Relational Database Service (Amazon RDS)Introduction to Amazon Relational Database Service (Amazon RDS)
Introduction to Amazon Relational Database Service (Amazon RDS)
Amazon Web Services
 
Improve Threat Detection with OSSEC and AlienVault USM
Improve Threat Detection with OSSEC and AlienVault USMImprove Threat Detection with OSSEC and AlienVault USM
Improve Threat Detection with OSSEC and AlienVault USM
AlienVault
 
Datastax enterprise presentation
Datastax enterprise presentationDatastax enterprise presentation
Datastax enterprise presentation
Duyhai Doan
 
PostgreSQL - Case Study
PostgreSQL - Case StudyPostgreSQL - Case Study
PostgreSQL - Case Study
S.Shayan Daneshvar
 
Enterprise Vulnerability Management - ZeroNights16
Enterprise Vulnerability Management - ZeroNights16Enterprise Vulnerability Management - ZeroNights16
Enterprise Vulnerability Management - ZeroNights16
Alexander Leonov
 
7 Software Development Security
7 Software Development Security7 Software Development Security
7 Software Development Security
Alfred Ouyang
 
Setting up a secure development life cycle with OWASP - seba deleersnyder
Setting up a secure development life cycle with OWASP - seba deleersnyderSetting up a secure development life cycle with OWASP - seba deleersnyder
Setting up a secure development life cycle with OWASP - seba deleersnyder
Sebastien Deleersnyder
 
Enterprise Search - Introduction
Enterprise Search - IntroductionEnterprise Search - Introduction
Enterprise Search - Introduction
Amplexor
 
Introduction to Amazon Aurora
Introduction to Amazon AuroraIntroduction to Amazon Aurora
Introduction to Amazon Aurora
Amazon Web Services
 

What's hot (20)

Roles and responsibilities of a CISO
Roles and responsibilities of a CISORoles and responsibilities of a CISO
Roles and responsibilities of a CISO
 
Non relational databases-no sql
Non relational databases-no sqlNon relational databases-no sql
Non relational databases-no sql
 
Relational databases vs Non-relational databases
Relational databases vs Non-relational databasesRelational databases vs Non-relational databases
Relational databases vs Non-relational databases
 
Oracle Transparent Data Encryption (TDE) 12c
Oracle Transparent Data Encryption (TDE) 12cOracle Transparent Data Encryption (TDE) 12c
Oracle Transparent Data Encryption (TDE) 12c
 
Web Applications Development with MEAN Stack
Web Applications Development with MEAN StackWeb Applications Development with MEAN Stack
Web Applications Development with MEAN Stack
 
Always on in sql server 2017
Always on in sql server 2017Always on in sql server 2017
Always on in sql server 2017
 
Visualization with Amazon QuickSight
Visualization with Amazon QuickSightVisualization with Amazon QuickSight
Visualization with Amazon QuickSight
 
SQL Server Profiler & Performance Monitor - SarabPreet Singh
SQL Server Profiler & Performance Monitor - SarabPreet SinghSQL Server Profiler & Performance Monitor - SarabPreet Singh
SQL Server Profiler & Performance Monitor - SarabPreet Singh
 
Server Monitoring from the Cloud
Server Monitoring from the CloudServer Monitoring from the Cloud
Server Monitoring from the Cloud
 
Sysmon and Windows Event Forwarding workshop
Sysmon and Windows Event Forwarding workshopSysmon and Windows Event Forwarding workshop
Sysmon and Windows Event Forwarding workshop
 
SOC Certification Runbook Template
SOC Certification Runbook TemplateSOC Certification Runbook Template
SOC Certification Runbook Template
 
Introduction to Amazon Relational Database Service (Amazon RDS)
Introduction to Amazon Relational Database Service (Amazon RDS)Introduction to Amazon Relational Database Service (Amazon RDS)
Introduction to Amazon Relational Database Service (Amazon RDS)
 
Improve Threat Detection with OSSEC and AlienVault USM
Improve Threat Detection with OSSEC and AlienVault USMImprove Threat Detection with OSSEC and AlienVault USM
Improve Threat Detection with OSSEC and AlienVault USM
 
Datastax enterprise presentation
Datastax enterprise presentationDatastax enterprise presentation
Datastax enterprise presentation
 
PostgreSQL - Case Study
PostgreSQL - Case StudyPostgreSQL - Case Study
PostgreSQL - Case Study
 
Enterprise Vulnerability Management - ZeroNights16
Enterprise Vulnerability Management - ZeroNights16Enterprise Vulnerability Management - ZeroNights16
Enterprise Vulnerability Management - ZeroNights16
 
7 Software Development Security
7 Software Development Security7 Software Development Security
7 Software Development Security
 
Setting up a secure development life cycle with OWASP - seba deleersnyder
Setting up a secure development life cycle with OWASP - seba deleersnyderSetting up a secure development life cycle with OWASP - seba deleersnyder
Setting up a secure development life cycle with OWASP - seba deleersnyder
 
Enterprise Search - Introduction
Enterprise Search - IntroductionEnterprise Search - Introduction
Enterprise Search - Introduction
 
Introduction to Amazon Aurora
Introduction to Amazon AuroraIntroduction to Amazon Aurora
Introduction to Amazon Aurora
 

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

Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
hbsd1374
 
Microservices Workshop Part 1
Microservices Workshop Part 1Microservices Workshop Part 1
Microservices Workshop Part 1
Masoud Bahrami
 
Enterprise Resource Planning Implementation Architectures and Frameworks.pdf
Enterprise Resource Planning Implementation Architectures and Frameworks.pdfEnterprise Resource Planning Implementation Architectures and Frameworks.pdf
Enterprise Resource Planning Implementation Architectures and Frameworks.pdf
hadi mikaili manie
 
2017 - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ...
 2017  - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ... 2017  - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ...
2017 - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ...
Aidin NaseriFard
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه داده
Hamid Torkashvand
 
BIAN: چارچوب و مدل مرجع بانکداری بیان
BIAN: چارچوب و مدل مرجع بانکداری بیانBIAN: چارچوب و مدل مرجع بانکداری بیان
BIAN: چارچوب و مدل مرجع بانکداری بیان
Amir Mahjoorian
 
امنیت شبکه
امنیت شبکهامنیت شبکه
امنیت شبکه
arichoana
 
معماری سرویس گرا (Service Oriented Architecture)
معماری سرویس گرا (Service Oriented Architecture)معماری سرویس گرا (Service Oriented Architecture)
معماری سرویس گرا (Service Oriented Architecture)
RayBPMS
 
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_Patterns
Morteza Javan
 
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
amri k
 
قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis
 قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis
قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis
M Mehdi Ahmadian
 
RayBPMS (Rayvarz Business Process Management System)
RayBPMS (Rayvarz Business Process Management System)RayBPMS (Rayvarz Business Process Management System)
مجازي سازي، مجازى سازى
مجازي سازي، مجازى سازىمجازي سازي، مجازى سازى
مجازي سازي، مجازى سازى
marketingfarkhad
 
cloud services for libraries
cloud services for librariescloud services for libraries
cloud services for libraries
mahboubeh ghorbani
 
طرح رایانش ابری در صنعت برق خراسان
طرح رایانش ابری در صنعت برق خراسانطرح رایانش ابری در صنعت برق خراسان
طرح رایانش ابری در صنعت برق خراسان
عباس بني اسدي مقدم
 
طراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتریطراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتری
tarasad
 
Javan Cloud Security 950526 (oCCc63)
Javan Cloud Security 950526 (oCCc63)Javan Cloud Security 950526 (oCCc63)
Javan Cloud Security 950526 (oCCc63)
Morteza Javan
 
Cloud ofthings
Cloud ofthingsCloud ofthings
Cloud ofthings
amin salehzadeh
 

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

Microservices.pdf
Microservices.pdfMicroservices.pdf
Microservices.pdf
 
Microservices Workshop Part 1
Microservices Workshop Part 1Microservices Workshop Part 1
Microservices Workshop Part 1
 
Enterprise Resource Planning Implementation Architectures and Frameworks.pdf
Enterprise Resource Planning Implementation Architectures and Frameworks.pdfEnterprise Resource Planning Implementation Architectures and Frameworks.pdf
Enterprise Resource Planning Implementation Architectures and Frameworks.pdf
 
2017 - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ...
 2017  - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ... 2017  - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ...
2017 - مقاله چالشهای امنیتی در مدلهای رایانش ابری - نویسندگان: ناصری فرد و ...
 
ESB
ESBESB
ESB
 
معرفي فايروال پايگاه داده
معرفي فايروال پايگاه دادهمعرفي فايروال پايگاه داده
معرفي فايروال پايگاه داده
 
BIAN: چارچوب و مدل مرجع بانکداری بیان
BIAN: چارچوب و مدل مرجع بانکداری بیانBIAN: چارچوب و مدل مرجع بانکداری بیان
BIAN: چارچوب و مدل مرجع بانکداری بیان
 
امنیت شبکه
امنیت شبکهامنیت شبکه
امنیت شبکه
 
معماری سرویس گرا (Service Oriented Architecture)
معماری سرویس گرا (Service Oriented Architecture)معماری سرویس گرا (Service Oriented Architecture)
معماری سرویس گرا (Service Oriented Architecture)
 
oCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_PatternsoCCc_24_Cloud_Design_Patterns
oCCc_24_Cloud_Design_Patterns
 
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
بررسی قابلیت ها و کاربردهای نرم افزارها و افزونه های مدل سازی اطلاعات ساختمان...
 
قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis
 قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis قلاب سازی در تحلیل بدافزارهاHooking  in Malware Analysis
قلاب سازی در تحلیل بدافزارهاHooking in Malware Analysis
 
RayBPMS (Rayvarz Business Process Management System)
RayBPMS (Rayvarz Business Process Management System)RayBPMS (Rayvarz Business Process Management System)
RayBPMS (Rayvarz Business Process Management System)
 
مجازي سازي، مجازى سازى
مجازي سازي، مجازى سازىمجازي سازي، مجازى سازى
مجازي سازي، مجازى سازى
 
cloud services for libraries
cloud services for librariescloud services for libraries
cloud services for libraries
 
طرح رایانش ابری در صنعت برق خراسان
طرح رایانش ابری در صنعت برق خراسانطرح رایانش ابری در صنعت برق خراسان
طرح رایانش ابری در صنعت برق خراسان
 
طراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتریطراحی شبکه های کامپیوتری
طراحی شبکه های کامپیوتری
 
Javan Cloud Security 950526 (oCCc63)
Javan Cloud Security 950526 (oCCc63)Javan Cloud Security 950526 (oCCc63)
Javan Cloud Security 950526 (oCCc63)
 
Cloud ofthings
Cloud ofthingsCloud ofthings
Cloud ofthings
 
Proxmox
ProxmoxProxmox
Proxmox
 

More from Amir Mahjoorian

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

More from Amir Mahjoorian (7)

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

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