در این دوره به بررسی مفهوم مایکروسرویس و تفکر و دلیل وجودی این سبک معماری پرداخته می شود. مزایا و مشکلات اساسی این معماری در مقایسه با مانولیت ها بررسی خواهد شد. سپس در ادامه با بررسی و بیان چالش ها و مسائل تکنیکال در این باره؛ نگاهی به تاثیرات متقابل و دوطرفه معماری مایکروسرویس و اجایلیتی و متدولوژی های چابک می شود. به داده های توزیع شده و polyglot database ها که مهمترین بحث و چالش در این سبک معماری می باشد و رویکردهای متفاوت جهت پرداختن به این چالش ها نیز نگاهی دقیق خواهد شد. از آن جایی که تقریبا همیشه با یک legacy system مواجه هستیم که قصد تغییر در طراحی و معماری و بهبود هایی در آن را داریم؛ refactoring strategy های مختلف جهت refactor نمودن یک سیستم موجود(مانولیت یا غیر مانولیت) جهت حرکت به سمت معماری مایکروسرویس ها نیز مورد نقد و بررسی قرار خواهند گرفت. اشتباهات رایج و البته مهم که باید از آن اجتناب شود نیز در قالب یکسری tips های مهم بیان خواهد شد.
مخاطبین :
- توسعه دهنده ها؛ طراحان و معماران نرم افزار
اهداف دوره :
در انتهای اين دوره دانشجويان قادر خواهند بود:
دلیل و ماهیت وجودی مایکروسرویس ها را درک کنند. قبل از استفاده از این سبک معماری و رفتن به سمت مایکروسرویس ها به پیش نیازها و چالش های آن آشنا بوده و با علم بیشتری اقدام کنند. چه موقع باید و چه وقت نباید از این سبک معماری استفاده کنند. رویکردهای مختلف جهت تبدیل یک سیستم موجود به مایکروسرویس ها را بشناسند و آنها را با هم مقایسه کنند. استراتژی ها و راه های متفاوت جهت پرداختن به توزیع شدگی داده ها در این سبک معماری چه از نقطه نظر حفظ consistency داده ها و چه از نظر شفافیت و پرفورمنس در data fetching در این معماری را بشناسند.
پیش نیاز ها :
- مخاطبان این دوره نیاز می باشد آشنایی ابتدایی با طراحی، پیاده سازی و معماری سیستم های Enterprise داشته باشند
مدت زمان : 8 ساعت
سرفصل
- مقدمه ای بر مایکروسرویس ها
- تفکر و اهداف ورای مایکروسرویس
- مقایسه مایکروسرویس ها و مانولیت ها مزایا و معایب
- جایگاه مایکروسرویس ها در میان SOA ها؛ تفاوت ها و مشابهت های آنها
- بررسی تاثیرات متقابل و دوطرفه معماری مایکروسرویس ها و اجایلیتی و متدولوژی های چابک
- مسائل integration در مایکروسرویس ها
- رویکردهای مختلف جهت refactor نمودن یک مانولیت به معماری مایکروسرویس
- Deployment Strategy های مختلف
- بررسی Polyglot Database ها و چالش های آنها و رویکردهای مواجه با این چالش ها در معماری مایکروسرویس
- Orchestration and Choreography در مایکروسرویس ها
- بررسی مفهوم Smart Endpoints and Dumb pipes