Skip to content

Latest commit

 

History

255 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

خوش آمدید به دوره "ایجاد میکروسرویس‌های .NET Core با استفاده از معماری تمیز

این دوره یک آموزش جامع برای توسعه‌دهندگانی است که می‌خواهند یاد بگیرند چگونه میکروسرویس‌های مقیاس‌پذیر، کارآمد و قدرتمند را با استفاده از .NET Core 9 و معماری تمیز ایجاد کنند. در این مسیر، شما با تکنولوژی‌های پیشرفته‌ای آشنا خواهید شد که به شما در طراحی، استقرار و مدیریت میکروسرویس‌ها کمک می‌کنند.


مقدمه و اهمیت میکروسرویس‌ها

میکروسرویس‌ها یک الگوی طراحی هستند که در آن برنامه‌ها از ماژول‌های مستقل تشکیل شده‌اند. این ماژول‌ها در محدوده‌های مشخص با یکدیگر ارتباط برقرار می‌کنند که این امر توسعه، تست و استقرار بخش‌های مجزا از برنامه را بسیار ساده‌تر می‌کند. در این دوره، شما با استفاده از ابزارهایی مانند Docker، Kubernetes، Azure AD، RabbitMQ، Angular (نسخه‌های 15 و 19 در مباحث مختلف)، GRPC، Istio Service Mesh، SQL Server، MongoDB، PostgreSQL، Redis، Ocelot، Nginx، Azure، Helm Charts و قابلیت‌های Auto Scale، تجربه عملی کسب خواهید کرد.


🔥 تکنولوژی‌های مورد استفاده در دوره

  • .NET Core 9 برای توسعه میکروسرویس‌ها
  • Angular 19 برای توسعه فرانت‌اند (همچنین Angular 15 در برخی بخش‌ها مورد استفاده قرار می‌گیرد)
  • Docker و Kubernetes برای مدیریت استقرار و مقیاس‌دهی سرویس‌ها
  • Identity Server 4 برای احراز هویت و مدیریت کاربران
  • RabbitMQ و GRPC برای پیام‌رسانی و ارتباط سریع بین میکروسرویس‌ها
  • Istio Service Mesh برای کنترل ترافیک و تعامل سرویس‌ها
  • SQL Server، MongoDB، PostgreSQL و Redis برای ذخیره‌سازی داده‌ها
  • Ocelot و Nginx برای مدیریت API Gateway
  • Azure و Helm Charts برای استقرار و مدیریت میکروسرویس‌ها

📌 آنچه در این دوره خواهید آموخت

۱. مبانی و اصول میکروسرویس‌ها

  • درک تفاوت معماری میکروسرویس‌ها با سایر معماری‌ها
  • معرفی .NET Core 9 و نحوه پیاده‌سازی میکروسرویس‌ها
  • طراحی ماژولار و مستقل برای هر سرویس

۲. استقرار و مدیریت کانتینرها

  • بسته‌بندی میکروسرویس‌ها با Docker
  • استقرار و مدیریت سرویس‌ها با Kubernetes
  • پیاده‌سازی Auto Scaling در Kubernetes

۳. احراز هویت و امنیت

  • مدیریت کاربران با Identity Server 4
  • تنظیم JWT Token و OAuth 2.0 برای احراز هویت
  • اعمال سطوح دسترسی در میکروسرویس‌ها

۴. پیام‌رسانی و ارتباط بین سرویس‌ها

  • استفاده از RabbitMQ برای پیاده‌سازی صف‌های پیام
  • معرفی و پیاده‌سازی الگوی CQRS و Mediator Pattern
  • استفاده از GRPC برای ارتباطات پرسرعت و بهینه

۵. مدیریت پایگاه داده و ذخیره‌سازی

  • کار با SQL Server، PostgreSQL، MongoDB و Redis
  • بهینه‌سازی کوئری‌ها برای افزایش عملکرد سیستم
  • پیاده‌سازی Database Per Service و Shared Database

۶. مدیریت API Gateway و ترافیک

  • استفاده از Ocelot و Nginx برای مدیریت API Gateway
  • کنترل و مانیتورینگ ترافیک با استفاده از Istio Service Mesh
  • پیاده‌سازی Sidecar Pattern برای تعامل بهتر میکروسرویس‌ها

۷. توسعه فرانت‌اند با Angular 19

  • طراحی و پیاده‌سازی رابط کاربری مدرن با Angular 19
  • ارتباط بین فرانت‌اند و بک‌اند از طریق APIهای میکروسرویس‌ها
  • استفاده از Angular Material برای طراحی حرفه‌ای

۸. استقرار و مانیتورینگ در محیط عملیاتی

  • استقرار میکروسرویس‌ها در Azure
  • استفاده از Helm Charts برای مدیریت تنظیمات
  • پیاده‌سازی ELK Stack برای لاگینگ و مانیتورینگ پیشرفته

👨‍💻 مخاطبان این دوره

  • افراد مبتدی: کسانی که می‌خواهند از صفر وارد دنیای میکروسرویس‌ها شوند.
  • برنامه‌نویسان سطح متوسط: افرادی که با .NET آشنا هستند و می‌خواهند مهارت‌های خود را ارتقا دهند.
  • توسعه‌دهندگان پیشرفته: متخصصانی که قصد دارند از .NET Core 9، Angular 19 و Kubernetes در پروژه‌های واقعی استفاده کنند.
  • همچنین، این دوره برای دانشجویان، حرفه‌ای‌ها، کارآفرینان و معماران نرم‌افزار مناسب است.

📚 منابع آموزشی تکمیلی و دوره‌های مرتبط

لینک‌های دوره:

منابع آموزشی تکمیلی از دانشجویار:


مقدمه تکمیلی – پیاده‌سازی میکروسرویس‌ها با معماری تمیز

در این بخش از دوره، شما با پیاده‌سازی یک پروژه کامل فروشگاهی با استفاده از ASP.NET Core، Docker، Kubernetes، Helm Charts، Service Mesh و Angular (نسخه‌های 18/19) آشنا خواهید شد. این پروژه نه تنها نشان‌دهنده‌ی پیاده‌سازی دقیق تمام لایه‌های نرم‌افزاری است بلکه بر اساس بهترین شیوه‌های صنعتی طراحی شده تا شما را در نگارش پروژه‌های سازمانی حرفه‌ای یاری کند.

فناوری‌های کلیدی مورد استفاده در پروژه شامل:

  • معماری تمیز (Clean Architecture)
  • .NET Core
  • Docker
  • Kubernetes
  • Azure
  • میکروسرویس‌ها
  • Service Mesh
  • Angular
  • ELK Stack
  • Pub/Sub Pattern
  • GRPC
  • Repository Pattern
  • Unit of Work Pattern
  • Specification Pattern
  • Helm Charts

ساختار پروژه

در ادامه، یک نمای کلی از ساختار پروژه ارائه شده است:
نمای ساختار پروژه

ساختار کلاینت:
ساختار کلاینت

استقرارها:
استقرارها


هشدار و مسئولیت‌پذیری

تمام تلاش‌های صورت گرفته برای کامل و دقیق بودن مطالب این پروژه صورت گرفته است؛ اما هیچگونه ضمانتی به صورت ضمنی ارائه نمی‌شود. تمامی پیاده‌سازی‌ها بر اساس تجربیات شخصی و بهترین شیوه‌های صنعتی به‌صورت "همانگونه که هست" ارائه می‌شوند و صرفاً برای مقاصد آموزشی طراحی شده‌اند. همچنین این دوره به‌روز خواهد شد هرگاه فریمورک‌های جدید و پایدار عرضه شوند.


راه‌اندازی و نصب

برای راه‌اندازی محیط توسعه مراحل زیر را دنبال کنید (قبل از اجرا، Docker Desktop را راه‌اندازی نمایید):

  1. ریپازیتوری را کلون کنید.
  2. پس از نصب Docker Desktop، از منوی Settings > Advanced (از طریق آیکون Docker در نوار سیستم) مقدار حداقل حافظه و تعداد CPUها را به صورت زیر تنظیم کنید:
    • حافظه (Memory): 7 GB
    • تعداد CPU: 5
  3. در دایرکتوری ریشه که شامل فایل‌های docker-compose.yml می‌باشد، دستور زیر را اجرا کنید:
docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d

نگاهی کلی به پروژه

نمای پروژه:
نمای پروژه

فناوری‌های استفاده‌شده:
فناوری‌های استفاده‌شده

الگوهای ارتباطی و مدیریت

الگوی Pub/Sub:
الگوی Pub/Sub
در نمودار فوق، مشاهده می‌کنید قبل از رویداد پرداخت، سبد خرید از پایگاه داده Redis حذف می‌شود.

مدیریت کانتینر با Portainer:
Portainer

Elastic Search:
Elastic Search

ACR Workloads:
ACR Workloads

AKS Workloads:
AKS Workloads

نمای Pods در Kube Lens:
Pods Overview

Deployments:
Deployments

Replicasets:
Replicasets

ConfigMaps:
ConfigMaps

Secrets:
Secrets

HPA (Horizontal Pods AutoScaler):
HPA


Istio و Kiali

فعال‌سازی Istio:

kubectl apply -f istio-init.yaml
kubectl apply -f istio-minikube.yaml
kubectl apply -f kiali-secret.yaml

Istio Enabled

نمای Istio در Kubelens:
Istio via Kubelens

مدیریت Service Mesh با Kiali:
برای مشاهده Kiali UI می‌توانید از port-forward در Lens استفاده کنید.
Kiali UI

Kiali Catalog Workload:
Kiali Catalog Workload

Kiali Service Overview:
Kiali Service Overview

Visualization با Graphana:
Graphana Visualization

About

Ecommerce-Microservice

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages