Popularity
2.4
Growing
Activity
7.6
Declining
77
5
10

Description

MicroBootstrap is a framework for quickly and conveniently creating microservices on .NET Core including some infrastructures for Service Discovery, Load Balancing, Routing, Mediator, CQRS, Outbox Messages, Inbox Messages, MongoDb, Message Brokers (RabbitMQ, In-Memory), DDD, Tracing, Logging, Monitoning and Microservices.

Programming language: C#
License: MIT License

MicroBootstrap alternatives and similar packages

Based on the "Application Frameworks" category.
Alternatively, view micro-bootstrap alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of MicroBootstrap or a related project?

Add another 'Application Frameworks' Package

README

MicroBootstrap

master branch build status Actions Status License: MIT

MicroBootstrap is a framework for quickly and conveniently creating microservices on .NET Core including some infrastructures for Service Discovery, Load Balancing, Routing, Mediator, CQRS, Outbox Messages, Inbox Messages, MongoDb, Message Brokers (RabbitMQ, In-Memory), DDD, Tracing, Logging, Monitoning and Microservices.

This project inspired by Convey project.

🌀 Keep in mind this repository is work in progress and will add some extra features over time 🚀

Sparkline

Support ⭐

If you like my work, feel free to:

  • ⭐ this repository. And we will be happy together :)
  • Tweet about MicroBootstrap

Thanks a bunch for supporting me!

How to use?

For using this package you can easily add it to your microservices project and use its infrastructure in your project to get rid of any annoying configuration and implement infrastructural stuff for microservice purpose. just add this command to add NuGet package:

dotnet add package MicroBootstrap

Scaling Microservices


For scaling microservice in this project we have 2 option:

  • Using Consul and Fabio: for scaling our microservices we can use of consul and fabio and use of a customize algorithm for load balancing
  • Using Kubernetes: use of kubernetes for scaling but kubernetes limted to round robin aprouch for load balancing

For load testing we can use different tools but I use this tool NBomber. you can use visual studio load test project or other solutions.

How to start with Docker Compose?


Open samples\Game-Microservices-Sample\deployments\docker-compose directory and execute bellow command:

docker-compose -f infrastructure.yml up -d

you can also execute other scripts in docker-compose folder like mongo-rabbit-redis.yml to run only theses infrastructure on your machine.

It will start the required infrastructure in the background. Then, you can start the services independently of each other via dotnet run or ./scripts/start.sh command in each microservice or run them all at once using Docker that create and run needed docker images in compose file:

docker-compose -f services-local.yml up

or using pre-build docker images in docker hub with using this docker compose:

docker-compose -f services.yml up

How to start with Kubernetes?


For setup your local environment for using kubernetes you can use different approuch but I personally perfer to use K3s from rancher team, it is awsome like rancher for kubernetes management :)

Open samples\Game-Microservices-Sample\deployments\k8s directory, in this directory, there are two folders infrastructure and micro-services. in infrastructure folder exits all needed infrastructure for executing our microservices that we use kubectl apply for running them. for example for running mongodb on our cluster we should use these commands:

kubectl apply -f mongo-persistentvolumeclaim.yaml
kubectl apply -f mongo-deployment.yaml
kubectl apply -f mongo-service.yaml

In micro-services folder there are our services. for running our services on our cluster we should kubectl apply command for example:

kubectl apply -f messaging-service-deployment.yaml
kubectl apply -f messaging-service-service.yaml

Tutorials

Thecnologies & Stack


  • .Net Core 3.1
  • RabbitMQ
  • MongoDB
  • Docker
  • RESTEeas
  • Consul
  • Fabio
  • Kubernetes
  • Docker
  • Redis
  • Vault
  • Jaeger
  • Prometheus
  • DDD
  • Clean Architecture
  • SignalR
  • Seq
  • Serilog

Future Works


  • [ ] Integration with Service Mesh and Istio
  • [ ] Integration with Marten and Event Sourcing
  • [ ] Integration with Kafka

🤝 Contributing


  1. Fork it ( https://github.com/mehdihadeli/MicroBootstrap/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request


*Note that all licence references and agreements mentioned in the MicroBootstrap README section above are relevant to that project's source code only.