MicroCafe / mono2micro

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Mono2Micro

Tools to migrate a monolith to a microservices architecture, focusing on microservices identification, where the set of identified microservices minimizes the number of system transactions (microservices) associated with a business transaction, aiming to control introduction of relaxed consistency in the system.

Currently implemented for Spring-Boot monoliths that use FenixFramework and Spring Data ORMs.

Pre-Requisites

  • java 8+ (java --version)
  • nodejs 10+ (node --version)
  • npm 6+ (npm --version)
  • python 3.5+ (python --version)
  • (Non docker) run: pip install -r backend/src/main/resources/requirements.txt
  • Create the file specific.properties in backend/src/main/resources with the correct python command (example in file specific.properties.example)

Run manually

To run the collectors:

cd collectors/
see README.md for each collector

To run the backend:

cd backend/
mvn clean install -DskipTests
mvn spring-boot:run

To run the frontend:

cd frontend/
npm install --legacy-peer-deps
npm start

Run using Docker

docker-compose build
docker-compose up

Run using Docker, clean install

docker-compose build --no-cache
docker-compose up --build

Due to a limitation in SpringBoot documented in spring-projects/spring-boot#2895, .jar files cannot be generated with more than 655535 total files inside. Due to this, make sure the folder backend/src/main/resources/codebases is empty before building the project.

Publications Data

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

License:MIT License


Languages

Language:HTML 99.3%Language:Java 0.4%Language:JavaScript 0.1%Language:Python 0.1%Language:Go 0.0%Language:TypeScript 0.0%Language:CSS 0.0%Language:Dockerfile 0.0%Language:Shell 0.0%Language:Makefile 0.0%