Skip to content

Latest commit

 

History

History
74 lines (56 loc) · 3.55 KB

README.md

File metadata and controls

74 lines (56 loc) · 3.55 KB

Welcome to eShopMicroservices!

Hi! This study project was created to improve the project AspnetMicroservicesExample, based on udemy course Microservices architecture and implementarion on dotnet.

The project will start based on .net 7.

Quality Gate Status

.net + SonarCloud

Services

Catalog.API

  • MongoDB as main database
  • Redis as cache
  • Data, Repository and Entities segregated to be reused in Catalog Minimal API
  • RabbitMQ as message broker to queue email sending

Tests

  • Sonarqube was containerized to be used as the code quality checker.
  • Sonarlint was configured at Visual Studio 2022 integrating with Sonarqube
  • OpenCover is the tool responsible for the code coverage reports generation.
  • Bogus to faker data on Tests. For the local integration with Sonarqube, the commands used to are:
dotnet sonarscanner begin /k:"eShopMicroservices"
/d:sonar.host.url="http://localhost:9100" 
/d:sonar.login= [sonarqube code]
/d:sonar.cs.opencover.reportsPaths=coverage.xml 
 
dotnet build --no-incremental
 
[OpenCoverPath]\OpenCover.Console.exe -target:"dotnet.exe" -targetargs:"test --no-build" -returntargetcode -output:coverage.xml -register:user

dotnet sonarscanner end /d:sonar.login=[sonarqube code]

CI

  • Github Action

Observability

Logs

  • ELK Stack to centralized logging
  • Serilog for "log file convenience" connecting directly to Elastic

Metrics

Tracing

  • OpenTelemetry cloud native option to send tracing
  • Jaeger end-to-end distributed tracing (changed to Grafana Labs Tempo)
  • OpenTelemetry Collector to export tracing to Grafana Labs. (Grafana Agent didn't work in this scenario)
  • Grafana Tempo using Grafana Labs to store and explore tracing data

Ports

Tools Ports

API Dev Ports

API Docker Ports