آموزش خدمات میکرو: معماری پاک، DDD، SAGA، صندوق خروجی و کافکا

Microservices: Clean Architecture, DDD, SAGA, Outbox & Kafka

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: آموزش میکروسرویس‌های بوت Spring با معماری‌های Clean & Hexagonal، DDD، SAGA، Outbox، CQRS، Kafka، Kubernetes و GKE توسعه Microservices Architecture با استفاده از Spring Boot و Kafka. پیاده‌سازی الگوی معماری SAGA پیاده‌سازی الگوی معماری صندوق خروجی پیاده‌سازی الگوی معماری CQRS آموزش معماری و برنامه‌نویسی کافکا در کافکا استفاده از کافکا را به‌عنوان فروشگاه رویداد برای خدمات رویداد محور بیاموزید اصول Kubernetes را بیاموزید و با استفاده از دسک‌تاپ Docker یک خوشه محلی را اجرا کنید. Kafka در Kubernetes با استفاده از cp-helm-charts اجرا Postgres در Kubernetes یادگیری Google Cloud و Google Kubernetes Engine (GKE) استقرار میکروسرویس ها در موتور Google Kubernetes

سلام! اسم من علی گلنلر است. من اینجا هستم تا به شما کمک کنم معماری میکروسرویس ها را همزمان با استفاده از معماری های تمیز و شش ضلعی و استفاده از طراحی دامنه محور بیاموزید.

در این دوره، شما بر جنبه‌های معماری معماری میکروسرویس‌ها تمرکز خواهید کرد و از اصول معماری پاک هنگام توسعه هر سرویس استفاده می‌کنید. در اجرای لایه دامنه، اصول طراحی Domain Driven را نیز اعمال خواهید کرد.

شما همیشه می توانید از آخرین نسخه ها برای بوت فنری و سایر وابستگی ها در این دوره استفاده کنید. من به طور مداوم نسخه وابستگی را در سخنرانی های بخش آخر به روز می کنم. برای مشاهده کدهای مورد نیاز و تغییرات پیکربندی برای نسخه های به روز شده، می توانید آن را بررسی کنید. همچنین اگر می‌خواهید در طول دوره از زیرنویس استفاده کنید، می‌توانید زیرنویس‌ها را روی ویدیوها فعال کنید زیرا همه سخنرانی‌ها با زیرنویس‌های دست‌نویس با انتخاب از بین بیش از 20 زبان مختلف به‌روز می‌شوند. پیشنهاد می‌کنم از زیرنویس‌ها برای سهولت در پیگیری سخنرانی‌ها استفاده کنید.


  • اسکات ناکس: "به عنوان یک حرفه ای، می توانم بگویم که این جام مقدس درک معماری های مدرن است. اگر شرکت شما در درک مفاهیم خاصی تلاش می کند، این دوره به شما کمک می کند. با تشکر از علی برای توضیحات عالی !"

شما الگوهای SAGA، Outbox و CQRS را با استفاده از 5 میکروسرویس جاوا بوت Spring که با استفاده از اصول معماری تمیز و شش ضلعی توسعه خواهید داد، پیاده سازی خواهید کرد.


  • Nick Goupinets: "دوره عالی - تجربه توسعه میکروسرویس را با Spring Boot تجربه می کند. به عنوان یک امتیاز اضافی نشان می دهد که چگونه می توان آن را با Kubernetes مستقر کرد. گاهی اوقات بسیار دقیق به نظر می رسد، به نوعی دیدن آن را سخت می کند. جنگل پشت درختان. همچنین معماری Hex. منجر به چیزی شد که به نظر یک راه حل کلی بیش از حد مهندسی شده بود. با این گفته، علی کار فوق العاده ای انجام داد و تمام تصمیمات طراحی را با نمودارهای معماری واضح توضیح داد که این پیچیدگی را جبران می کرد!

همچنین آپاچی کافکا را به عنوان فروشگاه رویداد یاد می‌گیرید و از آن استفاده می‌کنید و از رویدادها برای برقراری ارتباط بین سرویس‌ها و پیاده‌سازی الگوهای معماری استفاده می‌کنید.


  • Nischal Jadhav: "اگر به دنبال تبدیل شدن به یک توسعه دهنده سطح بالا یا یک معمار هستید، پس این بهترین دوره است."

مفاهیمی که خواهید آموخت و اجرا خواهید کرد عبارتند از:

  • میکروسرویس های بوت بهار

  • معماری پاک

  • معماری شش ضلعی

  • طراحی مبتنی بر دامنه

  • سرویس‌های رویداد محور با استفاده از آپاچی کافکا

  • الگوی معماری SAGA

  • الگوی معماری صندوق خروجی

  • الگوی معماری CQRS

  • Kubernetes در محلی با استفاده از دسک‌تاپ Docker

  • Kubernetes در Google Cloud با استفاده از Google Kubernetes Engine (GKE)


  • علی امینیان: "من این دوره را خیلی دوست دارم. ممنون علی برای توضیحات کامل و کدنویسی حرفه ای. از شرکت در این دوره بسیار لذت می برم."

برای ارتباط با ذخیره‌های داده در میکروسرویس‌ها، از Spring Data JPA برای PostgreSQL و Spring Kafka برای Kafka استفاده خواهید کرد.

شما یک رویکرد عملی را دنبال می‌کنید و یک پروژه را از ابتدا توسعه می‌دهید. شما 5 میکروسرویس خواهید داشت که با استفاده از رویدادها با کافکا به عنوان فروشگاه رویداد ارتباط برقرار می کنند.


  • r j: "این یک دوره آموزشی شگفت انگیز است. یک معمار از تیم من این را به من توصیه کرد و او چیزی مشابه اما بزرگتر را در شرکت ما، بزرگترین خرده فروش روی کره زمین، پیاده سازی کرده است."

همچنین در هر بخش آزمون‌های چند گزینه‌ای برای بررسی پیشرفت خود در طول دوره خواهید داشت.


  • Arindam Majumdar: "این دوره به من کمک زیادی کرد تا رویکرد طراحی Domain Driven در Microservices را درک کنم. تا کنون بهترین دوره آموزشی است که من در Udemy تا به حال دیده ام. با تشکر فراوان از علی. کار عالی!! :) "

در پایان دوره خواهید فهمید که چگونه یک معماری میکروسرویس مبتنی بر رویداد را با اصول معماری تمیز و شش ضلعی و با مفاهیم طراحی Domain Driven اجرا کنید. برای توسعه میکروسرویس ها از Spring boot و Java استفاده خواهید کرد. همچنین پیاده سازی الگوهای میکروسرویس های معماری مانند SAGA، Outbox و CQRS را خواهید آموخت. در پایان می‌توانید با استفاده از Google Kubernetes Engine برنامه خود را در Kubernetes در Google Cloud مستقر کنید.


  • Anurag tiwari: "این دوره را تازه شروع کردم، اما می توانم بگویم که این دوره خوب است، علی تمام مفاهیمی مانند out box، الگوی حماسه را به خوبی توضیح می دهد. من این دوره را به شدت برای هر کسی که می خواهد دانش خود را در مورد آن مطالعه کند توصیه می کنم. میکروسرویس ها را با استفاده از الگوهای مختلف مانند الگوی شش ضلعی و حماسی به سطح بعدی ارتقا دهید. من همچنین این دوره را برای مبتدیان توصیه می کنم زیرا شما چیزهای زیادی در مورد ریزسرویس ها و الگوها برای ایجاد سرویس های چابک یاد خواهید گرفت زیرا این دوره بسیار کاربردی است"

من در اجرای هر میکروسرویس از همان معماری های شش ضلعی تمیز و اصول طراحی مبتنی بر دامنه پیروی کرده ام. اگر احساس می‌کنید می‌خواهید برخی از قسمت‌های تکراری را نادیده بگیرید، می‌توانید کد منبعی را که در اولین سخنرانی هر بخش ارائه می‌دهم از بخش 3 دانلود کنید. سپس می توانید از کد منبع ارائه شده برای ادامه بخش استفاده کنید.


  • Narendra Kumar A: "دوره فوق العاده ای است، من تا به حال در Udemy برخورد کرده ام که DDD، معماری پاک و استفاده از مفاهیم الگوها را بسیار تمیز توضیح می دهد."

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


  • Nicolás Alvarez C.: "از دوره بسیار راضی هستم، به نظر من توضیحات عالی بود و معلم به خوبی موضوع را مدیریت می کند! بسیار توصیه می شود ... "


سرفصل ها و درس ها

معرفی Introduction

  • ساختار دوره Structure of the course

  • معماری های تمیز و شش ضلعی Clean & Hexagonal architectures

  • نمای کلی پروژه - قسمت 1 Project overview - Part 1

  • نمای کلی پروژه - قسمت 2 Project overview - Part 2

  • الگوی SAGA SAGA Pattern

  • راه اندازی محیط Setting up the environment

معماری تمیز و معماری شش ضلعی Clean Architecture & Hexagonal Architecture

  • مقدمه ای بر معماری های تمیز و شش ضلعی Introduction to Clean and Hexagonal Architectures

  • معماری شش ضلعی Hexagonal Architecture

  • طراحی اجزای سفارش خدمات با استفاده از معماری پاک Designing components for Order Service using Clean Architecture

  • ایجاد ماژول های Order Service با استفاده از Clean Architecture - بخش 1 Creating Order Service modules using Clean Architecture - PART 1

  • ایجاد ماژول های Order Service با استفاده از Clean Architecture - بخش 2 Creating Order Service modules using Clean Architecture - PART 2

  • اصل وارونگی وابستگی Dependency Inversion Principle

طراحی دامنه محور (DDD) Domain Driven Design (DDD)

  • مقدمه ای بر طراحی دامنه محور Introduction to Domain Driven Design

  • طراحی دامنه محور (DDD) Domain Driven Design (DDD)

  • طراحی اجزای منطق دامنه Order Service Designing Order Service domain logic components

  • ایجاد ماژول دامنه مشترک با کلاس های Entity و Aggregate Root Creating common domain module with base Entity and Aggregate Root classes

  • اضافه کردن اشیاء ارزش و رویدادهای دامنه به ماژول دامنه مشترک Adding value objects and domain events to common domain module

  • پیاده سازی منطق دامنه Order Service با استفاده از DDD - Order Aggregate Root Implementing Order Service domain logic using DDD - Order Aggregate Root

  • مفاهیم DDD DDD concepts

  • افزودن روش های پیاده سازی Order Entity Adding Order Entity implementation methods

  • افزودن روش های تغییر حالت به Order Entity Adding state changing methods to Order Entity

  • کلاس های موجودیت Entity Classes

  • پیاده سازی رویدادهای دامنه در لایه دامنه خدمات سفارش Implemeting Domain Events in Order Service domain layer

  • اجرای سرویس دامنه سفارش Implementing Order Domain Service

  • اجرای خدمات درخواست سفارش - کلاس های DTO Implementing Order Application Service - DTO classes

  • افزودن تعاریف کلاس Mapper و پورت به Order Application Service Adding Mapper class and port definitions to Order Application Service

  • پیاده سازی پورت های ورودی در Order Application Service Implementing input ports in Order Application Service

  • اولین نقطه تماس با لایه دامنه First contact point to the domain layer

  • اجرای ناشر پیام در Order Application Service برای فعال کردن رویدادها Implementing message publisher in Order Application Service to fire the events

  • TransactionalEventListener TransactionalEventListener

  • پیاده سازی دستورات رهگیری فرمان Implementing Order Track Command Handler

  • منطق دامنه خدمات سفارش تست - قسمت 1 Testing Order Service domain logic - Part 1

  • منطق دامنه خدمات سفارش تست - قسمت 2 Testing Order Service domain logic - Part 2

آپاچی کافکا Apache Kafka

  • مقدمه ای بر آپاچی کافکا Introduction to Apache Kafka

  • تاب آوری کافکا Resiliency of Kafka

  • اجرای آپاچی کافکا با استفاده از داکر Running Apache Kafka using Docker

  • پیاده سازی ماژول عمومی داده پیکربندی کافکا Implementing Kafka config data generic module

  • پیاده سازی ماژول ژنریک مدل کافکا Implementing Kafka model generic module

  • اجرای ماژول ژنریک تولیدکننده کافکا Implementing Kafka producer generic module

  • پیاده سازی ماژول عمومی مصرف کننده کافکا Implementing Kafka consumer generic module

  • برنامه نویسی روی کافکا Programming on Kafka

تکمیل اجزای خدمات سفارش Completing Order service components

  • ماژول برنامه: اضافه کردن کنترلر وب Application module: Adding Web Controller

  • ماژول برنامه: اضافه کردن مشاوره کنترلر Application module: Adding Controller Advice

  • حاشیه نویسی بهار Spring annotations

  • ماژول دسترسی به داده: افزودن سفارش JPA Entity Data access module: Adding Order JPA Entity

  • ماژول دسترسی به داده: افزودن مخزن JPA و اجرای آداپتور Data access module: Adding JPA Repository & Adapter implementation

  • ماژول دسترسی به داده ها: افزودن پیاده سازی مشتری و رستوران Data access module: Adding Customer and Restaurant implementations

  • ماژول پیام رسانی: افزودن Mapper و داده های پیکربندی Messaging module: Adding Mapper and Config Data

  • ماژول پیام رسانی: افزودن پیاده سازی های Publisher Messaging module: Adding Publisher implementations

  • ماژول پیام رسانی: افزودن پیاده سازی های شنونده Messaging module: Adding Listener implementations

  • ماژول کانتینر: اضافه کردن کلاس راه‌انداز و پیکربندی بهار Container module: Adding spring boot starter class and config

  • ماژول ظرف: توضیح خواص مصرف کننده کافکا Container module: Explaining kafka consumer properties

  • ماژول کانتینر: افزودن فایل طرحواره پایگاه داده سفارش Container module: Adding Order database schema file

  • ایجاد خدمات مشتری و اجرای خدمات سفارش Creating Customer Service & Running Order Service

اجرای سرویس پرداخت Implementing Payment Service

  • ماژول هسته دامنه: اضافه کردن اشیاء Aggregate Root، Entity و Value Domain core module: Adding Aggregate Root, Entity and Value objects

  • ماژول هسته دامنه: اضافه کردن رویدادهای استثنا و دامنه Domain core module: Adding Exception and Domain events

  • ماژول هسته دامنه: اجرای سرویس دامنه پرداخت Domain core module: Implementing Payment Domain Service

  • ماژول دامنه سرویس برنامه: افزودن Mapper، Config و Ports Application Service domain module: Adding Mapper, Config and Ports

  • ماژول دامنه سرویس برنامه: پیاده سازی پورت های ورودی - قسمت 1 Application Service domain module: Implementing input ports - Part 1

  • ماژول دامنه سرویس برنامه: پیاده سازی پورت های ورودی - قسمت 2 Application Service domain module: Implementing input ports - Part 2

  • ماژول دامنه سرویس برنامه: فرآیند رویداد آتش سوزی مجدد Application Service domain module: Refactoring fire event process

  • مفاهیم DDD DDD Concepts

  • پیاده سازی ماژول دسترسی به داده ها Implementing Data Access module

  • پیاده سازی ماژول پیام رسانی: اضافه کردن Mapper و Publishers Implementing Messaging module: Adding Mapper and Publishers

  • پیاده سازی ماژول پیام رسانی: افزودن شنوندگان Implementing Messaging module: Adding Listeners

  • پیاده سازی ماژول Container Implementing Container module

اجرای سرویس رستوران Implementing Restaurant Service

  • ماژول هسته دامنه: افزودن ریشه و نهادهای جمعی Domain core module: Adding Aggregate Root and Entities

  • ماژول هسته دامنه: اضافه کردن استثنا، رویدادهای دامنه و سرویس دامنه Domain core module: Adding Exception, Domain events and Domain Service

  • ماژول دامنه سرویس برنامه: افزودن Mapper، DTO و پورت ها Application Service domain module: Adding Mapper, DTO and Ports

  • ماژول دامنه سرویس برنامه: پیاده سازی پورت های ورودی Application Service domain module: Implementing input ports

  • پیاده سازی ماژول دسترسی به داده ها Implementing Data Access module

  • پیاده سازی ماژول پیام رسانی Implementing Messaging module

  • پیاده سازی ماژول Container Implementing Container module

الگوی معماری SAGA SAGA Architecture Pattern

  • مقدمه ای بر الگوی SAGA Introduction to SAGA pattern

  • الگوی SAGA SAGA Pattern

  • اجرای حماسه پرداخت سفارش Implementing Order Payment Saga

  • استفاده از حماسه پرداخت سفارش در پیام رسانی و اجرای حماسه تأیید سفارش Using Order Payment Saga in Messaging & Implementing Order Approval Saga

  • آزمایش سرتاسر برنامه با تغییرات الگوی SAGA Testing the application end-to-end with SAGA pattern changes

  • تست سناریوهای شکست Testing failure scenarios

  • ملاحظات پیاده سازی الگوی SAGA SAGA Pattern Implementation Considerations

الگوی معماری صندوق خروجی Outbox Architecture Pattern

  • مقدمه ای بر الگوی صندوق خروجی Introduction to Outbox pattern

  • الگوی صندوق خروجی Outbox Pattern

  • به روز رسانی طرح و پیکربندی پایگاه داده سرویس سفارش برای الگوی صندوق خروجی Updating Order Service database schema and config for Outbox Pattern

  • لایه دامنه سفارش مجدد: اضافه کردن مدل‌های صندوق خروجی و به‌روزرسانی پورت‌ها Refactoring Order domain layer: Adding Outbox models & Updating ports

  • لایه دامنه Order Refactoring: افزودن زمانبندی صندوق خروجی Refactoring Order domain layer: Adding Outbox scheduler

  • لایه دامنه سفارش مجدد: اضافه کردن زمانبندی پاک کننده صندوق خروجی برای پرداخت Refactoring Order domain layer: Adding Outbox cleaner scheduler for Payment

  • لایه دامنه سفارش مجدد: اضافه کردن زمانبندی صندوق خروجی برای تأیید Refactoring Order domain layer: Adding Outbox schedulers for Approval

  • لایه دامنه Order Refactoring: به روز رسانی OrderCreate Command Handler Refactoring Order domain layer: Updating OrderCreate Command Handler

  • لایه دامنه سفارش Refactoring: به روز رسانی حماسه پرداخت سفارش - قسمت 1 Refactoring Order domain layer: Updating Order Payment Saga - Part 1

  • لایه دامنه سفارش Refactoring: به روز رسانی حماسه پرداخت سفارش - قسمت 2 Refactoring Order domain layer: Updating Order Payment Saga - Part 2

  • لایه دامنه سفارش Refactoring: در حال به روز رسانی حماسه تایید سفارش Refactoring Order domain layer: Updating Order Approval Saga

  • به روز رسانی تست خدمات درخواست سفارش برای تغییرات الگوی صندوق خروجی Updating the Order Application Service Test for Outbox pattern changes

  • Refactoring Order Access ماژول برای الگوی صندوق خروجی Refactoring Order Data Access module for Outbox pattern

  • ماژول ارسال سفارش مجدد برای الگوی صندوق خروجی - قسمت 1 Refactoring Order Messaging module for Outbox pattern - Part 1

  • ماژول ارسال سفارش مجدد برای الگوی صندوق خروجی - قسمت 2 Refactoring Order Messaging module for Outbox pattern - Part 2

  • حماسه پرداخت سفارش تست Testing Order Payment Saga

  • به روز رسانی طرح پایگاه داده پرداخت، پیکربندی و ساختار بسته برای صندوق خروجی Updating Payment database schema, config and package structure for Outbox

  • بازسازی لایه دامنه پرداخت: افزودن زمانبندی صندوق خروجی Refactoring Payment domain layer: Adding Outbox schedulers

  • لایه دامنه پرداخت مجدد: به روز رسانی اجرای شنونده پیام Refactoring Payment domain layer: Updating Message listener implementation

  • ماژول دسترسی به داده پرداخت مجدد برای الگوی صندوق خروجی Refactoring Payment Data Access module for Outbox pattern

  • ماژول پیام‌رسانی پرداخت مجدد برای الگوی صندوق خروجی Refactoring Payment Messaging module for Outbox pattern

  • آزمایش شنونده پیام درخواست پرداخت برای پرداخت مضاعف Testing Payment Request Message Listener for double payment

  • سرویس رستوران Refactoring برای الگوی صندوق خروجی - قسمت 1 Refactoring Restaurant Service for Outbox pattern - Part 1

  • سرویس رستوران Refactoring برای الگوی صندوق خروجی - قسمت 2 Refactoring Restaurant Service for Outbox pattern - Part 2

  • آزمایش سرتاسر برنامه با تغییرات الگوی صندوق خروجی Testing the application end-to-end with Outbox pattern changes

  • تست سناریوهای شکست Testing failure scenarios

الگوی معماری CQRS CQRS Architecture Pattern

  • مقدمه ای بر الگوی CQRS Introduction to CQRS pattern

  • الگوی CQRS CQRS Pattern

  • ایجاد موضوع مشتری کافکا و ماژول های مشتری Creating Customer Kafka topic & Customer modules

  • پیاده سازی ماژول های خدمات مشتری Implementing Customer Service modules

  • به روز رسانی Order Service برای استفاده از جدول پایگاه داده محلی با الگوی CQRS Updating Order Service to use local database table with CQRS pattern

  • اجرای سفارش و خدمات مشتری برای آزمایش الگوی CQRS Running Order and Customer Services to test CQRS pattern

Kubernetes (K8s) Kubernetes(K8s)

  • آشنایی با Kubernetes و اجرای یک Kubernetes محلی با استفاده از Docker Desktop Introduction to Kubernetes and running a local Kubernetes using Docker Desktop

  • مفاهیم Kubernetes Kubernetes concepts

  • استقرار Confluent Kafka در Kubernetes محلی با استفاده از cp-helm-charts Deploying Confluent Kafka to local Kubernetes using cp-helm-charts

  • ایجاد فایل های استقرار Kubernetes برای Microservices Creating Kubernetes deployment files for Microservices

  • استقرار میکروسرویس ها در Kubernetes محلی Deploying Microservices into local Kubernetes

  • استقرار Postgres در Kubernetes محلی با استفاده از تصویر داکر Postgres Deploying Postgres to local Kubernetes using Postgres docker image

K8s و Google Kubernetes Engine (GKE) K8s & Google Kubernetes Engine(GKE)

  • ایجاد حساب Google Cloud و ایجاد یک خوشه Kubernetes در GKE Creating Google Cloud account & Creating a Kubernetes cluster in GKE

  • فشار دادن تصاویر داکر به رجیستری مصنوع Google Pushing docker images to Google Artifact Registry

  • مراحل استقرار Google Kubernetes Engine Steps to deploy Google Kubernetes Engine

  • اجرای برنامه در موتور Google Kubernetes - قسمت 1 Running the Application on Google Kubernetes Engine - Part 1

  • اجرای برنامه در موتور Google Kubernetes - قسمت 2 Running the Application on Google Kubernetes Engine - Part 2

  • افزودن مقیاس بندی افقی به خدمات Adding horizontal scaling to services

  • مراحل بعدی و متشکرم Next steps & Thank you!

به روز رسانی نسخه: به آخرین بوت Spring، Spring cloud و سایر وابستگی ها به روز رسانی کنید Version updates: Update to latest Spring boot, Spring cloud & other dependencies

  • به روز رسانی به بوت فنری 2.7.5 Update to spring boot 2.7.5

نمایش نظرات

آموزش خدمات میکرو: معماری پاک، DDD، SAGA، صندوق خروجی و کافکا
جزییات دوره
18 hours
107
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
13,631
- از 5
دارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Ali Gelenler Ali Gelenler

مهندس ارشد نرم افزار

EA Algorithm EA Algorithm

آموزش و مشاوره فناوری اطلاعات