anitechcs/microservices-reference-application: Polyglot microservices reference application employing opensource know-how stack like Docker and Kubernetes

Polyglot microservices reference software applying opensource technology stack like Docker and Kubernetes

The mian goal of this repository is to display a polyglot micoservices reference architecture and very best methods for containerized environments like Kubernetes. You can obtain an reference implementation exhibiting all mordern working day specifications you would expect from your platform working with totally opensource know-how stack. The core motivation guiding putting together this repo is to have a open up architecture, hold it up to day and suitable with the support of local community.

Enthusiasm powering generating this Repo?

I was designing an architecture for one particular of our next era internal software. The more I imagined about the architecture, I understand how significant is to have an open architecture which can evolve primarily based on present-day industry tendencies, very best procedures and open ideas from the wonderful neighborhood. We are applying this repository as our architecture playground for all of our merchandise and I hope it can definely help quite a few group who are making an attempt to adopt microservices. Possessing a adoptable and foreseeable future proof technological innovation architecture is incredibly significant for escalating business now-a-days.

Technique Architecture

You can uncover large degree procedure architecture in under diagram. It reprents different elements and opensource tools concerned in the application and how they interact with each other. Despite the fact that diagram says Google Cloud Platform, the software can be deployed to any cloud system. Remember to check out deployment folder to find what all platforms are at this time supported.

Please follow our in depth Architecture guide in this article

Demonstration Video clip

Coming soon

Acquiring Began

Intrigued to add to this task and not positive wherever to get started? Please stick to our specific Having started out tutorial for surroundings set up or figuring out repository framework. If you stuck anywhere or need any help from the neighborhood, come to feel totally free to create an Problem for dialogue.

Infrastructure

We are employing Terraform as our infrastructure as code software for this job. First strategy is to offer terraform scripts for main cloud platforms to provision required resources.

For specific details, head above to our Infrastructure Guide. The trraform scripts can be found at deployment/terraform directory.

Deployment

This application can be deployed to any important cloud system. We are giving all kuberenetes assets less than deployment/kubernetes listing. Please refer to Deployment Tutorial for a lot more information.

If you want to operate the full application with supporting equipment this sort of as database, redis, api-gateway, auth server on your neighborhood technique, use the script furnished at applications/docker-compose.sh.

cd microservices-reference-application

# Build image for all companies
./applications/construct-docker-impression.sh

# Commence all expert services
./applications/docker-compose.sh up

# End all expert services
./instruments/docker-compose.sh down

Micro Products and services with Language and Framework

  1. Boostore Internet Software – Typescript(Angular)
  2. BookService – Java(Spring boot)
  3. OrderService – Java(Spring boot)
  4. RatingServie – NodeJS(Specific)
  5. PromotionService – Python(Flask)

Engineering Stack & Applications

  • Docker
  • Kubernetes
  • Istio
  • SpringBoot
  • ExpressJS
  • Flask
  • Angular
  • Keyclok
  • Prometheus
  • Grafana
  • Loki
  • Tempo
  • Ambassador
  • Helm
  • ElasticSearch
  • Redis
  • PostgreSQL
  • HashiCorp’s Vault

Envisioned Characteristics

Want to Add?

Your worthwhile contribution is usually valuable for us to retain this repository up to day and suitable. If you have some cool concept or new attributes necessity, please come to feel absolutely free to open up a Github difficulty. We will focus on and take it up from there. For smaller variations or optimizations, direct pull request are normally welcome. Appriciate your enable in advance.

Caution! 🔥

For simplicity we have established mono repo with all expert services supply code. Hardly ever do that in your precise venture, use individual repository for particular person companies alternatively.