MonoBreaker: A tool to guide the process of decomposing monolithic Django application into microservices
The Django project analyzed by MonoBreaker must follow these requirements:
Django: 1.8+
Django REST framework: 3.5.1+
Python: 3.6+
Use the package manager pip to install MonoBreaker Dependencies.
pip install -r requirements.txtIn your Django Project use django_extensions and Silk
Your settings.py should look like the following:
MIDDLEWARE = [
...,
'silk.middleware.SilkyMiddleware',
...
]
INSTALLED_APPS = (
...
'rest_framework',
'django_extensions',
'silk'
)Extract the following information from your project using the following commands
python manage.py graph_models app_1 app_2 --json > models.json
python manage.py show_urls > urls.txt
Extract the following tables as CSV files from Silk:
silk_request
silk_sqlquery
Add the files to the source folder of you Django Project
Run MonoBreaker:
Usage: python monoBreaker.py [options]
Options:
-h, --help show this help message and exit
--pydir=PYDIR Path to Django Project
Example: python monoBreaker.py --pydir=/Projects/DjangoProject
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.