
آموزش ساخت عملی و الگوهای مهم در معماری میکروسرویس
آموزش ساخت عملی و الگوهای مهم در معماری میکروسرویس یکی دیگر از آموزش های گروه آموزشی پرووید می باشد که در این قسمت آن را به شما معرفی می کنیم. این بسته ی آموزشی نیز یکی از دوره های آموزشی دیگر که در حوزه ی فارسی سازی آموزش های انگلیسی تنظیم شده است می باشد. عنوان این بسته ی آموزشی ساختن مایکروسرویس ها است که با نام اصلی Building Microservices از شرکت Pluralsight منتشر شده است.
معماری میکروسرویس ها (Microservices Architecture) چیست؟
معماری مایکروسرویس ها که به آن Microservices Architecture نیز می گوییم یک سبک معماری و یا architectural style می باشد که طبق آن یک برنامه در قالب مجموعهای از سرویس ها ایجاد می شود. این سرویس ها باید دارای شرایط زیر باشند:
- قابلیت نگهداری و تست پذیری بسیار بالا
- loosely coupled بودن
- به طور مستقل از یکدیگر قابل develop و deploy کردن باشند
معماری مایکروسرویس ها باعث می شود که توسعه و تحویل نرم افزارهای پیچیده و بسیار بزرگ به روشی سریع و قابل اطمینان انجام پذیرد.

در پیاده سازی معماری مایکروسرویس ها، سرویس ها می توانند هم با پروتکل های از قبیل HTTP/REST و هم پروتکل های asynchronous از قبیل AMQP با یکدیگر ارتباط برقرار کنند. علاوه بر این، سرویس ها می توانند به صورت مستقل از یکدیگر develop و deploy بشوند. هر سرویس دیتابیس انحصاری خودش را دارد و این موضوع باعث میشود که سرویس ها از یکدیگر decoupled بشوند. علاوه بر این data consistency بین سرویس ها با استفاده از الگوی saga پیاده سازی می شود.
علاوه بر این، می توانید از آموزش معماری میکروسرویس ها در .NET Core و آموزش توسعه میکروسرویس ها در سی شارپ و Azure استفاده کنید.
سرفصل آموزش ویدئویی ساخت عملی و الگوهای مهم در معماری میکروسرویس
فصل اول: مقدمه دوره آموزشی
- مقدمه
فصل دوم: شروع به کار با ساخت Microservice ها
- مقدمه
- گزینههای پیش رو با استفاده از Microservice ها
- ارزش استانداردسازی
- بررسی معماری eShopOnContainers
- ساختن eShopOnContainers
- اجرا کردن eShopOnContainers به صورت Local
- جمع بندی
فصل سوم: پیاده سازی Domain Logic در Microservice ها

- مقدمه
- مسئولیتهای مربوط به Microservice
- الگوهای پیاده سازی Domain Logic
- کدامیک از Microservice ها باید شامل Domain Logic باشند؟
- بررسی Service Layer
- بررسی الگوی Transaction Script برای پیادهسازی Domain Logic
- بررسی عملی الگوی Transaction Script در eShopOnContainers
- بررسی الگوهای Serverless برای بررسی پیادهسازی Domain Logic
- بررسی الگوی Domain Model برای پیادهسازی Domain Logic
- بررسی عملی الگوی Domain Model در eShopOnContainers
- بررسی Data Mapping Layer
- بررسی عملی Data Mapping Layer در eShopOnContainers
- بررسی عملی CQRS در eShopOnContainers
- بررسی الگوی Table Module برای پیادهسازی Domain Logic
- جمع بندی
فصل چهارم: نوشتن Test و اهمیت آن در Microservice ها
- مقدمه
- بررسی Unit Test ها
- نوشتن کدهای تست پذیر
- بررسی عملی اجرای Unit Test ها
- بررسی پوشش کد و یا Code Coverage
- بررسی Test-driven Development
- بررسی Service-level Test ها
- بررسی عملی Integration Test در eShopOnContainers
- بررسی End-to-end Test ها
- خودکار کردن اجرای Test ها
- جمع بندی
فصل پنجم: بررسی Authentication و Authorization در Microservice ها
- مقدمه
- مفاهیم Authentication و Authorization
- بررسی دفاع در Microservice ها
- بررسی Authenticate کردن End User ها
- استفاده از OAuth 2.0 و OpenID Connect
- بررسی عملی Identity Microservice
- بررسی عملی SPA Login و JWT
- بررسی انجام Authentication بین Microservice ها
- بررسی Authorization بر اساس Role ها
- بررسی Authorization بر اساس Data Ownership
- بررسی Request های On Behalf Of
- جمع بندی دوره آموزشی
تعیین مرز سرویسها و مسئولیتهای معماری Microservices
در طراحی یک سیستم مبتنی بر Microservices، تصمیم مهم فقط تقسیم برنامه به چند سرویس نیست؛ هر سرویس باید مسئولیت مشخصی داشته باشد و مرزهای آن با بخشهای دیگر سیستم بهدرستی تعیین شوند. این آموزش با عنوان `Building Microservices` به ساخت عملی و الگوهای مهم این معماری میپردازد و برای بررسی تصمیمهای معماری در سطح پیشرفته زمینه فراهم میکند. هنگام طراحی مرز سرویسها، باید توجه داشت که کدام قابلیتها به یک حوزه کاری تعلق دارند و کدام بخشها میتوانند مستقلتر توسعه پیدا کنند. مرزبندی نامناسب ممکن است وابستگی میان سرویسها را افزایش دهد و مزیت جداسازی را کاهش دهد.
در معماری Microservices، استقلال سرویسها تنها به جدا بودن کد آنها محدود نمیشود؛ تغییرات، استقرار و نگهداری نیز باید با توجه به رابطه میان اجزا بررسی شوند. برای مثال، اگر یک تغییر ساده در یک سرویس به اصلاح همزمان چند سرویس دیگر نیاز داشته باشد، ممکن است مرزهای طراحی به بازنگری احتیاج داشته باشند. تمرکز بر ساخت عملی و الگوهای معماری کمک میکند این تصمیمها را بهعنوان بخشی از طراحی سیستم بررسی کنید، نه صرفاً انتخاب یک ساختار پوشه یا پروژه. این نگاه برای توسعهدهندگانی مفید است که با سامانههای بزرگ سروکار دارند و میخواهند مسئولیتها را به شکل سنجیدهتری میان سرویسها تقسیم کنند.
چالشهای پیادهسازی و انتخاب الگوهای مناسب برای Microservices
پیادهسازی Microservices مجموعهای از تصمیمهای مرتبط با ساختار سیستم است و هر انتخاب میتواند روی پیچیدگی توسعه و نگهداری اثر بگذارد. عنوان این آموزش بر ساخت عملی و الگوهای مهم تأکید دارد؛ بنابراین موضوع آن صرفاً آشنایی نظری با نام این معماری نیست، بلکه بررسی رویکردهای موردنیاز برای ساخت چنین سیستمهایی است. در یک پروژه واقعی، باید ارتباط میان نیازهای کسبوکار، مسئولیت هر سرویس و وابستگیهای میان اجزا را در نظر گرفت. انتخاب الگو بدون توجه به مسئلهای که قرار است حل شود، ممکن است پیچیدگی بیشتری به سیستم اضافه کند، بدون اینکه ارزش متناسبی ایجاد کند.
برای ارزیابی یک طراحی Microservices، لازم است به پیامدهای تغییرات نیز توجه شود: آیا میتوان یک قابلیت را بدون دستکاری بخشهای نامرتبط توسعه داد؟ آیا مسئولیت سرویسها بهاندازه کافی روشن است؟ آیا وابستگیهای میان آنها با نیازهای سیستم تناسب دارند؟ این پرسشها به تبدیل مفاهیم معماری به تصمیمهای قابلبررسی در پروژه کمک میکنند. آموزش `Building Microservices` برای توسعهدهندگانی مناسب است که میخواهند در سطح پیشرفتهتر درباره ساختار سرویسها و الگوهای پیادهسازی فکر کنند. تمرکز بر این تصمیمها کمک میکند مزایای جداسازی سرویسها را در کنار هزینههای طراحی و نگهداری آنها ارزیابی کنید.







