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 filespecific.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.