MDStudio is a stand-alone framework to build distributed applications using a broker-based (Crossbar) microservice concept. The only requirement for any piece of software or script to become a microservice is a formal definition of the functional endpoints that expose the functionality the software has to offer. In MDStudio, this definition is a very thin layer available in nearly 12 different languages in which communication is network based using JSON and the input/output of the endpoints is fully described using JSON schemas.
To make development and deployment easier we have setup a docker environment hosting the microservice broker and support microservices in a self consistent environment.
NOTE: some of the Python dependencies of MDStudio are version fixed. To prevent accidental updates that may prevent MDStudio from working we advise to install MDStudio and it's dependencies in a virtual environment such as
virtual env
or Anaconda/miniconda virtual environment.
The only requirement MDStudio has is Docker. Next, run the builder and start the microservice docker environment under bash as:
Clone the repository using the devel branch
>> git clone -b devel git@github.com:MD-Studio/MDStudio.git
Install the dependencies from the MDStudio folder
>> pip install -r requirements-dev.txt
Install mdstudio
>> pip install -e mdstudio
>> ./build.sh
>> ./standalone.sh
The docker containers only need to be build once and for subsequent usage running standalone.sh is sufficient.
The docker based environment is the most convenient way for developing microservices and deploying distributed applications. If you are unable to use Docker or want to keep track of the whole environment for yourself, you should follow these installation instructions.
The MDStudio application is written in Python and mostly self contained thanks to the use of an in-application Python virtual environment. The application has currently been successfully tested with Python versions: 2.7
The only external dependencies are:
- MongoDB - A NoSQL database.
- Pipenv - A python virtual environment manager.
- Redis - A fast caching layer.
Install the virtual environment with:
>> pipenv install --skip-lock --dev
The application is started on the command line as:
>> pipenv shell
>> python .
Go to File > Project Settings > Project Interpreter
, and add a remote interpreter,
and make sure it matches this screen.
Note specifically:
Interpreter path | /root/mdstudio/app-4PlAip0Q/bin/python |
Now that you have successfully installed the MDStudio framework you can start having fun by writing some microservices and using their endpoints in any number of different ways as briefly described in the intro.
For guidance and inspiration on how to write and use microservices, please have a look at the MDStudio examples repository on GitHub.