Skip to content

Clean Architecture Microservices example of .Net Core

Notifications You must be signed in to change notification settings

iamcymentho/eShopping

 
 

Repository files navigation

.Net Core Microservices using Clean Architecture Implementation

image

Hi Friends,

Microservices are a design pattern in which applications are composed of independent modules that communicate with each other within well defined boundaries. This makes it easier to develop, test, and deploy isolated parts of your application.

Welcome to "Microservices learning series" - the ultimate course for developers who want to learn how to build scalable, efficient, and robust Microservices using the .Net Core platform along with Docker, Kubernetes, Identity Server 4, Rabbit MQ, Angular 15, GRPC, Istio Service Mesh, SQL Server, MongoDB, PostGreSQL, Redis, Ocelot, Nginx, Azure, Helm Charts, and Auto Scale.

In this comprehensive course, you'll gain hands-on experience with Docker and Kubernetes to deploy and manage your Microservices. You'll learn how to integrate Identity Server 4 for secure authentication and authorization, Rabbit MQ for messaging, and GRPC for efficient communication between Microservices.

You'll also learn how to use Istio Service Mesh to manage Microservices traffic, and how to configure and optimize SQL Server, MongoDB, PostGreSQL, and Redis for your Microservices. You'll use Ocelot and Nginx to manage your Microservices API gateway and deploy your Microservices to Azure using Helm Charts.

By the end of this course, you'll have a solid understanding of how to design, develop, and deploy Microservices using the latest industry-standard tools and practices, including auto-scaling.

Course Links:

Introduction

In this section, you will learn how to build full fledged Ecommerce app using asp.net core, docker, kubernetes, helm charts, service mesh and angular 15. Below are the key takeaways from this project. Anyone who wants to learn and write professional enterpise projects can refer this project. This project not only illustrates how to implement all layers to the point rather it adheres to best practices as followed by industry.

Here, you will learn variety of technologies like

  • Clean Architecture
  • .Net Core
  • Docker
  • Kubernetes
  • Azure
  • Microservices
  • Service Mesh
  • Angular
  • ELK Stack
  • Pub/Sub Pattern
  • GRPC
  • Repository Pattern
  • Unit of Work Pattern
  • Specification Pattern
  • Helm Charts

How Project is structured

Below, I have Pasted the high level glimpse project structure.

image

Client Structure goes like

image

Deployments

image

Warning and Disclaimer

Every effort applied to make this project complete and accurate to the topic, but no warranty is implied. Any implementation in this project are MY OWN and also borrowed from best practices segment. ALL content presented AS-IS, for learning purposes only. Also this course will go keep updated as and when new and stable framework gets released.

Installation

Follow these steps to get your development environment set up: (Before Run Start the Docker Desktop)

  1. Clone the repository
  2. Once Docker for Desktop is installed, go to the Settings > Advanced option, from the Docker icon in the system tray, to configure the minimum amount of memory and CPU like so:
  • Memory: 7 GB
  • CPU: 5
  1. At the root directory which include docker-compose.yml files, run below command:
docker-compose -f docker-compose.yml -f docker-compose.override.yml up -d

Project Overview

image

Technologies Used

image

Workflow

image

image

image

image

image

image

image

image

Pub/Sub Pattern

image

  • In the above diagram as we can see before checkout event created basket gets deleted from Redis database.

Container Management via Portainer

image

Elastic Search

image

ACR Workloads

image

AKS Workloads

image

Pods Overview Kube Lens

image

Deployments

image

Replicasets

image

ConfigMaps

image

Secrets

image

HPA (Horizontal Pods AutoScaler)

image

Istio enabled

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

image

Istio via Kubelens

image

Kiali (Service Mesh Management for Istio)

We can port forward for the same using lens

This will bring Kiali UI like

image

Kiali catalog Workload

image

Kiali Service Overview

image

Graphana Visualization

image

About

Clean Architecture Microservices example of .Net Core

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • SCSS 39.9%
  • C# 36.3%
  • HTML 8.6%
  • TypeScript 7.1%
  • Smarty 4.0%
  • PowerShell 2.5%
  • Other 1.6%