لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش سیستمهای رویداد-محور، امنیت و میکروسرویسها
- آخرین آپدیت
دانلود Event-Driven Systems, Security, and Microservices
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
بهروزرسانی شده در می ۲۰۲۵.
این دوره اکنون دارای قابلیت Coursera Coach است!
روشی هوشمندانهتر برای یادگیری با گفتگوهای تعاملی و بلادرنگ که به شما کمک میکند دانش خود را آزمایش کنید، پیشفرضها را به چالش بکشید و در حین پیشروی در دوره، درک خود را عمیقتر کنید.
این دوره به بررسی پیادهسازی معماریهای رویداد-محور (Event-Driven) در میکروسرویسها میپردازد و بر ارتباطات امن بین سرویسها تمرکز دارد. شما مهارتهای عملی در استفاده از RabbitMQ و MassTransit برای ارتباطات ناهمگام (Asynchronous) را کسب خواهید کرد که برای توسعه سیستمهای مقیاسپذیر و قابل اعتماد ضروری است. یاد بگیرید چگونه طراحیهای مونو لیت ماژولار (Modular Monolithic) را پیادهسازی کنید و پیچیدگیهای یکپارچهسازی میکروسرویسها را با استفاده از اصول رویداد-محور کشف کنید.
دوره با معرفی پیامرسانی ناهمگام با RabbitMQ و MassTransit آغاز میشود. شما معماریهای مونو لیت ماژولار و نحوه مدیریت ارتباطات ناهمگام بین ماژولها برای مقیاسپذیری بهتر را بررسی خواهید کرد. همچنین الگوهای کلیدی پیامرسانی مانند Publish/Subscribe را بررسی میکنید تا فرآیند کامل سیستمهای رویداد-محور را درک کنید.
در ادامه، بر روی توسعه رویدادهای یکپارچهسازی (Integration Events)، از جمله راهاندازی کتابخانههای پیامرسانی مشترک و استفاده از MassTransit برای مدیریت این رویدادها کار خواهید کرد. این دوره همچنین شامل تستهای عمیق رویدادهای یکپارچهسازی و مدیریت جریان پیامها است تا اطمینان حاصل شود که سیستمهای شما مستحکم و کاربردی هستند.
این دوره برای توسعهدهندگان و مهندسان نرمافزار با دانش پایه در .NET و میکروسرویسها طراحی شده است و همه موارد، از پیادهسازی امنیت با Keycloak تا کانتینری کردن برنامهها با استفاده از Docker-Compose را پوشش میدهد. این دوره تجربه عملی در ساخت سیستمهای امن و مقیاسپذیر در سناریوهای واقعی را فراهم میکند. پیشنیازها: دانش پایه در .NET، میکروسرویسها و مفاهیم معماری رویداد-محور.
سرفصل ها و درس ها
ارتباطات ناهمگام بین ماژولها با RabbitMQ و MassTransit برای بروزرسانی قیمت
Async Communications Between Modules with RabbitMQ & MassTransit for UpdatePrice
مقدمه: ارتباطات ناهمگام بین ماژولها با RabbitMQ و MassTransit
Introduction - Async Communications Between Modules with RabbitMQ & MassTransit
نحوه مدیریت ارتباطات ناهمگام بین ماژولها در معماری مونو لیت ماژولار
How Modular Monolithic Architecture Handles Async Communications Between Modules
الگوی پیامرسانی Fan Out Publish/Subscribe
Fan-Out Publish/Subscribe Messaging Pattern
یادآوری سریع: رویدادهای دامنه در مقابل رویدادهای یکپارچهسازی
Quick Remember: Domain vs Integration Events - Domain Leads to Integration Event
تحلیل دامنه ارتباط ناهمگام بین ماژولهای کاتالوگ و سبد خرید
Domain Analysis of Async Communication Between Catalog and Basket Modules
تحلیل فنی ارتباط ناهمگام بین ماژولهای کاتالوگ و سبد خرید
Technical Analysis of Async Communication Between Catalog and Basket Modules
مراحل توسعه ارتباط ناهمگام بین ماژولهای کاتالوگ و سبد خرید
Steps of Developing Async Communication Between Catalog and Basket Modules
گام اول: بررسی دامنه ماژول کاتالوگ و رویدادهای یکپارچهسازی
Step 1: Examine Catalog Module Domain and Integration Events
گام دوم: ایجاد کتابخانه کلاس Shared.Messaging
Step 2: Create Shared.Messaging Class Library
توسعه رویداد ProductPriceChangedIntegration در کتابخانه Shared.Messaging
Develop ProductPriceChangedIntegration Event in Shared.Messaging Class Library
توسعه متدهای Extension برای ثبت اتصال RabbitMQ در DI
Develop MassTransit Extension Methods to Register RabbitMQ Connection into DI
توسعه متدهای Extension برای ثبت اتصال در DI ماژول کاتالوگ
Develop MassTransit Extension Methods to Register Connection into DI of Catalog
افزودن ارجاع پروژه Shared.Messaging به ماژولهای کاتالوگ و سبد خرید
Add Project Reference to Shared.Messaging in Catalog and Basket Modules
ثبت پکیجهای MassTransit در Bootstrapper API DI در فایل Program.cs
Register MassTransit Packages into Bootstrapper API DI in Program.cs File
رویداد ProductPriceChanged: چگونه رویداد دامنه به رویداد یکپارچهسازی تبدیل میشود
ProductPriceChanged Integration Event: How Domain Leads to Integration Event
گام سوم: انتشار رویداد UpdatePrice توسط کاتالوگ
Step 3: Catalog Publish UpdatePrice Integration Event
گام چهارم: اشتراک و مصرف رویداد ProductPriceChanged توسط سبد خرید
Step 4: Basket Subscribe and Consume ProductPriceChanged Integration Event
توسعه قابلیت UpdateItemPriceInBasket در ماژول سبد خرید
Develop UpdateItemPriceInBasket Feature in Basket Module
توسعه قابلیت UpdateItemPriceInBasket در ماژول سبد خرید - بخش دوم
Develop UpdateItemPriceInBasket Feature in Basket Module - Part 2
فراخوانی دستور UpdateItemPriceInBasket در هندلر رویداد ProductPriceChanged
Call UpdateItemPriceInBasketCommand in ProductPriceChangedIntegrationEventHandler
تست: رویداد ProductPriceChanged با استفاده از In-Memory MassTransit
TEST - ProductPriceChangedIntegrationEvent with In-Memory MassTransit
RabbitMQ چیست و اجزای اصلی آن (تولیدکننده، صف، مصرفکننده) کدامند؟
What is RabbitMQ and Main Components of RabbitMQ (Producer, Queue, Consumer)
تغییر باس In-Memory به بروکر پیام RabbitMQ در MassTransit
Shifting In-Memory Bus to RabbitMQ Message Broker in MassTransit
توسعه متدهای Extension برای ثبت اتصال RabbitMQ در DI
Develop MassTransit Extension Methods to Register RabbitMQ Connection into DI
راهاندازی RabbitMQ برای ارتباط ناهمگام با استفاده از فایل Docker Compose
Setup RabbitMQ for Async Communication Using Docker-Compose File
اجرای Docker Compose در Visual Studio برای نصب RabbitMQ روی داکر
Run Docker-Compose on Visual Studio to Setup RabbitMQ on Docker
تست: رویداد ProductPriceChanged با RabbitMQ MassTransit
TEST - ProductPriceChangedIntegrationEvent with RabbitMQ MassTransit
توسعه ماژول هویت کاربر با احراز هویت Keycloak
Develop User Identity Module with Keycloak Authentication
مقدمه: توسعه ماژول هویت کاربر با احراز هویت Keycloak
Introduction - Develop User Identity Module with Keycloak Authentication
مدیریت هویت و دسترسی در Keycloak
Keycloak Identity and Access Management
مزایای اصلی استفاده از Keycloak
Main Advantages of Using Keycloak
بهترین روشهای استفاده از Keycloak
Best Practices When Using Keycloak
جریانهای OAuth2 و OpenID Connect در Keycloak
OAuth2 + OpenID Connect Flows with Keycloak
استفاده از Keycloak به عنوان سرویس پشتیبان در مونو لیت ماژولار
Keycloak as a Backing Service of Modular Monolith Modules
افزودن Keycloak به فایل Docker Compose برای ارائه دهنده هویت
Setup Keycloak into Docker-Compose File for Identity Provider
اجرای Docker Compose در Visual Studio برای نصب Keycloak روی داکر
Run Docker-Compose on Visual Studio Setup Keycloak Identity Provider on Docker
راهاندازی پایگاه داده هویت Keycloak با اسکیمای PostgreSQL
Setup Keycloak User Identity Database as a PostgreSQL DB Identity Schema
اجرای Docker Compose برای تولید اسکیمای هویت PostgreSQL در Keycloak
Run Docker-Compose for Keycloak PostgreSQL Identity Schema Generation
ایجاد Realm، کاربر و کلاینت برای OpenID Connect در Keycloak
Create Realm, User and Client for OpenID Connect with Keycloak Identity Provider
ایمنسازی ماژولهای EShop با OpenID Connect در ASP.NET
Secure EShop Modules with Keycloak OpenID Connect in ASP.NET
ایمنسازی و تست Endpointهای سبد خرید با یکپارچهسازی Keycloak
Secure and Test Basket Endpoints with Keycloak Integration
دریافت توکن JwtBearer برای OpenID Connect با هویت Keycloak
Get JwtBearer Token for OpenID Connect with Keycloak Identity
دریافت کاربر فعلی از توکن با ClaimsPrincipal در احراز هویت ASP.NET
Get Current User from Token with ClaimsPrincipal in ASP.NET Authentication
تست: ایجاد سبد خرید با کاربر فعلی از توکن با ClaimsPrincipal
TEST - Create Basket with Current User from Token with ClaimsPrincipal
ایمنسازی Endpointهای سبد خرید با OpenID Connect و Keycloak
Secure Basket Endpoints with OpenID Connect Using Keycloak Identity Provider
ماژول سفارش با معماری Vertical Slice و CQRS
Ordering Module with Vertical Slice Architecture and CQRS
مقدمه: ماژول سفارش با معماری Vertical Slice و CQRS
Introduction - Ordering Module with Vertical Slice Architecture and CQRS
تحلیل فنی ماژول سفارش: معماریها، الگوها و کتابخانهها
Technical Analysis of Ordering Module: Architectures, Patterns, Libraries
توسعه موجودیتهای دامنه سفارش با الگوهای Tactical DDD
Develop Ordering Domain Entities with Tactical Domain-Driven Design Patterns
توسعه زیرساخت دادههای سفارش با EF Core Code First و PostgreSQL
Develop Ordering Data-Infrastructure with EF Core Code First and PostgreSQL
توسعه لایه Ordering.Application با CQRS و MediatR
Develop Ordering.Application Layer with CQRS and MediatR
توسعه Endpointهای API سفارش با استفاده از Minimal API و Carter
Develop Ordering API Endpoints Exposing Minimal API Endpoints with Carter
الگوی Outbox برای پیامرسانی قابل اعتماد در میکروسرویسها با مورد استفاده تسویه سبد خرید
Outbox Pattern for Reliable Microservices Messaging with BasketCheckout Use Case
مقدمه: الگوی Outbox برای پیامرسانی قابل اعتماد در میکروسرویسها
Introduction - Outbox Pattern for Reliable Microservices Messaging
تحلیل رویداد تسویه سبد خرید بین ماژولهای سبد خرید و سفارش
Analyze Basket Checkout Event Between Basket and Ordering Modules
توسعه رویداد BasketCheckout در کتابخانه Shared.Messaging
Develop BasketCheckout Event in Shared.Messaging Class Library
یادآوری سریع: راهاندازی ارتباط ناهمگام MassTransit و RabbitMQ
Quick Remember Async Communication MassTransit RabbitMQ Setup
توسعه پوشه قابلیت BasketCheckout برای ارائه Endpoint و انتشار رویداد
Develop BasketCheckout Feature Folder to Expose POST Endpoint and Publish Event
توسعه متد هندلر تسویه سبد خرید برای ارسال رویداد به RabbitMQ
Develop Basket Checkout Handler Method to Publish Event to RabbitMQ via MassTransit
مشکل Dual Write و الگوی Outbox
Dual-write Problem and Outbox Pattern
پیادهسازی الگوی Outbox برای پیامرسانی قابل اعتماد در BasketCheckout
Develop Outbox Pattern for Reliable Microservices Messaging with BasketCheckout
گام ۱ و ۲: ایجاد موجودیت Outbox و تغییر DbContext
Step 1-2: Create the Outbox Entity and Modify the DbContext
گام ۳: بهروزرسانی CheckoutBasketHandler با Outbox و تراکنشهای دیتابیس
Step 3: Update CheckoutBasketHandler with Outbox and Database Begin and Commit
گام ۴: ایجاد یک Background Service برای پردازش پیامهای Outbox
Step 4: Create a Background Service to Process Outbox Messages
اشتراک و مصرف رویداد BasketCheckout در ماژول سفارش از طریق RabbitMQ
Ordering Module to Subscribe-Consume BasketCheckout Event from RabbitMQ
ثبت ماژول سفارش در MassTransit برای ارتباط رویداد-محور ناهمگام
Register Ordering Module into MassTransit for Async Event-driven Communication
افزودن پروژه API به فایل Docker Compose برای محیط چند کانتینری
Add ASP.NET API Project into Docker-Compose File for Multi-container Docker Environment
تنظیم متغیرهای محیطی پروژه API بر اساس appsettings
Set Environment Variables of API Project Configurations According to appsettings
تست کلی: اجرای Docker Compose با پروژه API و سرویسهای پشتیبان
TEST ALL - Docker-Compose All with API Project and Backing Services
تست ماژول سبد خرید در محیط Docker Compose
TEST Basket Module - Docker-Compose All with API Project
تست تسویه سبد خرید با RabbitMQ و ماژول سفارش در Docker Compose
TEST CheckoutBasket with RabbitMQ and Ordering Module - Docker-Compose All with API
تست ماژول سفارش در محیط Docker Compose
TEST Ordering Module - Docker-Compose All with API Project
اپلیکیشنهای کلاینت: مصرف ماژول API در EShop
Client Apps - Consume API Module in EShop Modules
مهاجرت به میکروسرویسها: تبدیل ماژولهای EShop به میکروسرویس با الگوی Strangler Fig
Migrating to Microservices: EShop Modules to Microservices with Strangler Fig
مهاجرت به میکروسرویسها: چالشها و ملاحظات
Migrating to Microservices: Challenges and Considerations
الگوی Strangler Fig برای بازسازی مونو لیت به میکروسرویس
Strangler Fig Pattern for Refactoring Monolith into Microservices
مراحل بازسازی مونو لیت به میکروسرویسها
Steps of Refactoring Monolith into Microservices
گام اول: تجزیه ماژولهای EShop به میکروسرویسها با Bounded Contextهای DDD
Step 1: Decompose EShop Modules to Microservices with DDD Bounded Contexts
گام دوم: اولویتبندی سرویسهای ماژولار برای مهاجرت
Step 2: Prioritize Modules-Services for Migration
گام سوم: استخراج یک سرویس از مونو لیت
Step 3: Extract a Service from a Monolith
گام چهارم: مدیریت پایگاه داده مونو لیت
Step 4: Manage a Monolithic Database
گام پنجم: طراحی و پیادهسازی ارتباطات بینسرویسی
Step 5: Design and Implement Interservice Communication
گام ششم: ارتباط ناهمگام بین سرویسها
Step 6: Async Communication Between Services
گام هفتم: تراکنشهای توزیع شده و سازگاری دادهها
Step 7: Distributed Transactions and Data Consistency
گام هشتم: استقرار میکروسرویسها پس از مونو لیت
Step 8: Deployment of Microservices After Monolithic
نمایش نظرات