Skip to content

di-unipi-socc/TosKer

Repository files navigation


pipy travis docs

TosKer is an orchestrator engine capable of automatically deploying and managing multi-component applications specified in OASIS TOSCA, by exploiting Docker as a lightweight virtualization framework. It was first presented in

A. Brogi, L. Rinaldi, J. Soldani
TosKer: A synergy between TOSCA and Docker for orchestrating multicomponent applications.
Software: Practice and Experience, vol. 48, num. 11, pp. 2061-2079.

If you wish to reuse the tool or the sources contained in this repository, please properly cite the above mentioned paper. Below you can find the BibTex reference:

@article{tosker,
  author = {Brogi, Antonio and Rinaldi, Luca and Soldani, Jacopo},
  title = {TosKer: A synergy between TOSCA and Docker for orchestrating multicomponent applications},
  journal = {Software: Practice and Experience},
  volume = {48},
  number = {11},
  pages = {2061-2079},
  doi = {10.1002/spe.2625}
}

The documentation of TosKer can be found here.

Table of Contents

Quick Guide

Installation

TosKer requires Docker installed and configured on the hosting machine. It is possible to install TosKer by using pip:

# pip install tosker

The minimum Python version supported is 2.7. It is possible to find other installation methods on the documentation.

Example of usage

After installation, it is possible to use TosKer to deploy some example applications. First of all download the TosKer repository and go to the example folder:

$ git clone https://github.com/di-unipi-socc/TosKer.git
$ cd TosKer/data/examples

We can now try to deploy the Thinking application, to do so we can go on the thinking-app and execute the thinking.up.plan. The thinking.up.plan will put all the components of the Thinking application on the running state.

$ cd thinking-app
$ tosker exec thinking.csar --plan thinking.up.plan

After the command TosKer execute the plan on the topology and the Thinking application will be up and running. The application will be accessible on the http://localhost:8080 url. More using the command ls it is possible to show the state of the components of the application:

$ tosker ls

Now suppose that we want to delete the GUI application we can run the command:

$ tosker exec thinking.csar gui:Standard.stop gui:Standard.delete

In this way we can instruct tosker to execute single operation on the topology without issuing a complete plan. Using the ls command again will show that the component GUI is deleted.

At this point if we want to delete all the component of the Thinking application except the GUI, which is already in the deleted state, we can exploit the thinking.down.plan. Indeed, we can remove the first 2 line, the one with the operation to delete the GUI component, with the tail command and pipe the result to TosKer. Thus, we can execute the following:

$ tail -n +3 thinking.down.plan | tosker exec thinking.csar -

License

MIT license