Validation Package for our Microservices 2020 paper on Generation of Container-based Deployment Units Using an Ecosystem of Microservice-Oriented Modeling Languages
If you are interested in reviewing the online-shop models mentioned in the paper expressed in our modeling languages, please follow these steps:
- Clone this repository to your local storage.
- Download the Eclipse dropins from our latest release.
- Download the Eclipse IDE for Java and DSL Developers .
- Copy all in step 2 downloaded dropins to the dropins folder if the Eclipse version.
- Start the downloaded Eclipse version and import files contained in the
online-shop_models
folder of the cloned repository. - The models of the online-shop example are contained in the folders
ItemService
,OrderService
andCustomerService
. The additionalTechnology
folder contains the models of the technology specification used in the service and operation models. The extensions for the different types of models are as follows:.data
: Domain models..mapping
: Mapping models..operation
: Operation models..services
: Microservice models..technology
: Technology models.
The implementation of the online store example, without the deployment-relevant artifacts generated by the code generation pipeline, is contained in online-shop_pre_generation
of our repository. A complete example including all generated artifacts is included in folder online-shop_post_generation
. For deploying our runnable online-shop example, the following steps are needed:
- Switch the
online-shop_post_generation/build
folder in your repository and make thebuild.sh
script executable - Execute the build script with the following command
./build.sh
. Note that the script creates docker containers. Therefore, the docker daemon needs to be running. - For deploying the online-shop example via
docker-compose
, switch back to theonline-shop_post_generation
folder and execute thedocker-compose up --build
command. - For deploying the online-shop example via Kubernetes, simply execute the
deploy.sh
script. Note thatkubectl
needs to be connected to an active Kubernetes cluster.