mansoorafzal / AspnetMicroservices

Development and Communication of Microservices with .NET Core 5 using ASP.NET Web API, Docker Compose, RabbitMQ, MassTransit, Portainer, gRPC, Protocol Buffers, SQL Server, Redis, MongoDB, PostgreSQL, Dapper, Entity Framework Core, AutoMapper, MediatR, FluentValidation, Ocelot, Elasticsearch, Kibana, Polly, OpenTelemetry, Jaeger.
MIT License
18 stars 6 forks source link
automapper dapper docker elasticsearch grpc jaeger kibana masstransit mediatr microservices mongodb ocelot opentelemetry pgadmin polly portainer postgresql rabbitmq redis sql-server

Microservices with ASP.NET Core 5.0

Overview

Implementation is based on the online course on Microservices. It aims to show the working and communication among separate stand-alone Microservices. Each microservice has its own database which includes MongoDB, Redis, PostgreSQL, MySQL and SQL Server. These microservices use event driven communication with RabbitMQ via MassTransit. API Gateway is based on Ocelot. Elasticsearch and Kibana is used for observability and distributed logging. Resilience is implemented with Polly. WatchDog is used to monitor the health check of all microservices. Portainer is setup to view the status of running Docker containers. OpenTelemetry and Jaeger is used for distributed tracing.

TODO

Security will be implemented through IdentityServer4, JSON Web Token, OpenID Connect, Identity Model and OAuth 2. Build pipeline will be setup using Azure Container Registry, Kubernetes, Azure Kubernetes Service and Azure DevOps.

Installation & Setup

To start, run below command:

docker-compose -f .\docker-compose.yml -f .\docker-compose.override.yml up -d

To stop, run below command:

docker-compose -f .\docker-compose.yml -f .\docker-compose.override.yml down

Endpoints & Credentials

List of Packages