/mono2micro

Primary LanguageHTMLMIT LicenseMIT

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)
  • 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
npm start

Run using Docker

docker-compose build
docker-compose up

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.