Este projeto é uma aplicação baseada em arquitetura de microsserviços, utilizando .NET, Docker, RabbitMQ, PostgreSQL, Kubernetes (AKS) e integração com serviços da Azure como o Key Vault.
- Microservices.ApiGateway: API Gateway para rotear requisições aos microsserviços.
- Microservices.OrderService: Serviço responsável pela lógica de pedidos.
- Microservices.ProductService: Serviço responsável pelos produtos.
- Microservices.UserService: Serviço responsável pela autenticação e gerenciamento de usuários.
- dbs/: Scripts e recursos para criação e build do ambiente de banco de dados via Docker.
- init-db/: Scripts de inicialização do banco de dados PostgreSQL.
- aks/: Manifests e arquivos secretos para deploy em Kubernetes (AKS).
- docker-compose.build.yaml: Compose usado para build e deploy dos serviços.
- docker-compose.development.yaml: Compose para ambiente de desenvolvimento.
- RabbitMQ: Utilizado como broker para comunicação assíncrona entre serviços.
- Azure Key Vault: Gerenciamento de segredos sensíveis (como strings de conexão).
- Azure Kubernetes Service (AKS): Orquestração e deploy dos microsserviços.
- .NET SDK 7+
- Docker
- Docker Compose
- PostgreSQL
- RabbitMQ
- (Opcional) kubectl e Azure CLI
- Clone o repositório:
git clone <url-do-repo>
cd <nome-do-projeto>-
Configure seu
.enva partir do.env.example. -
Suba os containers com:
docker-compose -f docker-compose.development.yaml up --build- Acesse os serviços nas portas definidas (ver
docker-composepara detalhes).
Testes unitários são implementados com xUnit. Você pode executá-los via terminal com:
dotnet test.dockerignore/.gitignore: Arquivos de exclusão de build e git.LICENSE: Licença do projeto.Microservices.sln: Solução principal do projeto no Visual Studio.
- Monitoramento com Prometheus + Grafana
- Logging estruturado com Serilog + ILogger
- Integração com Redis e ElasticSearch
- CI/CD com Azure Pipelines
- Documentação com Swagger
Distribuído sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.