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_modelsfolder of the cloned repository. - The models of the online-shop example are contained in the folders
ItemService,OrderServiceandCustomerService. The additionalTechnologyfolder 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/buildfolder in your repository and make thebuild.shscript 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_generationfolder and execute thedocker-compose up --buildcommand. - For deploying the online-shop example via Kubernetes, simply execute the
deploy.shscript. Note thatkubectlneeds to be connected to an active Kubernetes cluster.