Skip to content

Monorepo for versioning a distributed system where teachers and students can keep track and monitor their academical duties.

Notifications You must be signed in to change notification settings

llunno/TasDis_microsservices

Repository files navigation

Java Spring PostgreSQL RabbitMQ OpenAPI Docker Kubernetes

TasDis

TasDis is a Distributed system where teachers and students can keep track and monitor their academical duties. This project was developed for Scalable Software Engineering class from Infnet Institute.

How to run locally

The projects provides a devcontainer environment to easily run it locally.

The docker image will provide the following features in the container:

  • Java 21;
  • Docker in Docker (A newly created docker daemon inside the container);
  • Kubernetes (Minikube) with Helm and kubectl;
  • k9s (A CLI tool to manage Kubernetes clusters);
  • Skaffold (A CLI tool to manage the development workflow for Kubernetes applications);
  • Deployed RabbitMQ Helm Chart (A message broker to handle the communication between the services);
  • Deployed PostgreSQL Helm Chart (A database to store the data);
  • Deployed Zipkin Helm Chart (A distributed tracing system to monitor the services);

Pre-requisites:

  • Docker;
  • Devcontainers extension for Visual Studio Code/other supported IDEs or DevContainers CLI;

Inside the container, follow the steps below:

1. Run the following command to build the microsservices images, push it to the github registry and deploy it to the kubernetes cluster:

    make skaffold-dev

2. Access the Swagger UI to view API endpoints.

OBS: If it isn't the first time you're running a postgresql helm chart, the postgreSQL persistent volume may already be created. In this case, the databases for the microsservices may not be created because custom scripts are only executed when the container is started for the first time. To solve this, make sure to delete the persistent volume claim associated with the postgreSQL deployment.

About

Monorepo for versioning a distributed system where teachers and students can keep track and monitor their academical duties.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages