Skip to main content

TosKer: Orchestrating Applications with TOSCA and Docker

  • Conference paper
  • First Online:
Advances in Service-Oriented and Cloud Computing (ESOCC 2017)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 824))

Included in the following conference series:

Abstract

Docker is emerging as a simple yet effective solution for deploying and managing multi-component applications in virtualised cloud platforms. Application components can be shipped within portable and lightweight Docker containers, which can then be interconnected to allow components to interact each other. At the same time, the need for an enhanced support for orchestrating the management of the application components shipped within Docker containers is emerging.

In this paper we show how TOSCA can be exploited to provide such an enhanced support, by proposing a representation for describing the components forming an application, as well as the Docker containers used to ship such components. We also present TosKer, an engine for orchestrating the management of multi-component applications based on the proposed TOSCA representation and on Docker.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Notes

  1. 1.

    This can also be done automatically by exploiting TosKeriser  [10]. Given a TOSCA application specification, TosKeriser can indeed automatically (discover and) include the Docker containers offering the software support needed by its components.

  2. 2.

    A more detailed, self-contained introduction to TOSCA can be found in [5, 12].

  3. 3.

    The actual definition of all TOSCA types discussed in this section is publicly available on GitHub at https://github.com/di-unipi-socc/tosker-types.

  4. 4.

    The host requirement is mandatory for nodes of type tosker.nodes.Software, as we assume that each application component must be installed in another component or in a Docker container.

  5. 5.

    The source code of Thinking is publicly available on GitHub at https://github.com/di-unipi-socc/thinking.

  6. 6.

    The resulting TOSCA application specification is publicly available at https://github.com/di-unipi-socc/TosKer/blob/master/data/examples/thoughts-app/thoughts/thoughts.yaml. A CSAR packaging such specification (together with all artifacts needed to deploy and manage the Thinking application) is available at https://github.com/di-unipi-socc/TosKer/blob/master/data/examples/thoughts-app/thoughts.csar.

  7. 7.

    The Orchestrator assumes that components are managed according to the TOSCA standard management lifecycle [27]. If such lifecycle is not respected (e.g., by requiring to delete a component that has not yet been created), then the Orchestrator will raise an error and stop orchestrating the application management.

  8. 8.

    https://github.com/di-unipi-socc/TosKer.

  9. 9.

    The choice of Python was mainly motivated by the availability of two open-source Python libraries: docker-py (https://github.com/docker/docker-py) and tosca-parser (https://github.com/openstack/tosca-parser/). docker-py implements a Python interface for the Docker engine API. tosca-parser is instead a parser for TOSCA application specifications (developed by the OpenStack community).

  10. 10.

    https://pypi.python.org/pypi/tosKer.

  11. 11.

    Details on how to process inputs for TOSCA applications can be found in [27].

  12. 12.

    The TOSCA application specifications and the battery of unit tests that we implemented are publicly available on GitHub at https://github.com/di-unipi-socc/TosKer/tree/master/data/examples and https://github.com/di-unipi-socc/TosKer/tree/master/tests, respectively.

References

  1. Apache Software Foundation: Brooklyn. http://brooklyn.apache.org

  2. Apache Software Foundation: Mesos. http://mesos.apache.org/

  3. Armbrust, M., Fox, A., Griffith, R., Joseph, A.D., Katz, R., Konwinski, A., Lee, G., Patterson, D., Rabkin, A., Stoica, I., Zaharia, M.: A view of cloud computing. Commun. ACM 53(4), 50–58 (2010)

    Article  Google Scholar 

  4. Binz, T., Breitenbücher, U., Haupt, F., Kopp, O., Leymann, F., Nowak, A., Wagner, S.: OpenTOSCA – a runtime for TOSCA-based cloud applications. In: Basu, S., Pautasso, C., Zhang, L., Fu, X. (eds.) ICSOC 2013. LNCS, vol. 8274, pp. 692–695. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-45005-1_62

    Chapter  Google Scholar 

  5. Binz, T., Breitenbücher, U., Kopp, O., Leymann, F.: TOSCA: portable automated deployment and management of cloud applications. In: Bouguettaya, A., Sheng, Q., Daniel, F. (eds.) Advanced Web Services, pp. 527–549. Springer, New York (2014). https://doi.org/10.1007/978-1-4614-7535-4_22

    Chapter  Google Scholar 

  6. Brogi, A., Canciani, A., Neri, D., Rinaldi, L., Soldani, J.: Towards a reference dataset of microservice-based applications. In: Cerone, A., Roveri, M. (eds.) SEFM 2017. LNCS, vol. 10729, pp. 219–229. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-74781-1_16

    Chapter  Google Scholar 

  7. Brogi, A., Canciani, A., Soldani, J.: Fault-aware application management protocols. In: Aiello, M., Johnsen, E.B., Dustdar, S., Georgievski, I. (eds.) ESOCC 2016. LNCS, vol. 9846, pp. 219–234. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-44482-6_14

    Chapter  Google Scholar 

  8. Brogi, A., Carrasco, J., Cubo, J., D’Andria, F., Ibrahim, A., Pimentel, E., Soldani, J.: EU Project SeaClouds - adaptive management of service-based applications across multiple clouds. In: Proceedings of the 4th International Conference on Cloud Computing and Services Science (CLOSER 2014), pp. 758–763 (2014)

    Google Scholar 

  9. Brogi, A., Di Tommaso, A., Soldani, J.: Validating TOSCA application topologies. In: Proceedings of the 5th International Conference on Model-Driven Engineering and Software Development, MODELSWARD, vol. 1, pp. 667–678. SciTePress (2017)

    Google Scholar 

  10. Brogi, A., Neri, D., Rinaldi, L., Soldani, J.: From (incomplete) TOSCA specifications to running applications, with Docker. In: Cerone, A., Roveri, M. (eds.) SEFM 2017. LNCS, vol. 10729, pp. 491–506. Springer, Cham (2018). https://doi.org/10.1007/978-3-319-74781-1_33

    Chapter  Google Scholar 

  11. Brogi, A., Pahl, C., Soldani, J.: Enhancing the orchestration of multi-container Docker applications (2016). Submitted for Publication

    Google Scholar 

  12. Brogi, A., Soldani, J., Wang, P.W.: TOSCA in a Nutshell: promises and perspectives. In: Villari, M., Zimmermann, W., Lau, K.-K. (eds.) ESOCC 2014. LNCS, vol. 8745, pp. 171–186. Springer, Heidelberg (2014). https://doi.org/10.1007/978-3-662-44879-3_13

    Chapter  Google Scholar 

  13. Di Cosmo, R., Mauro, J., Zacchiroli, S., Zavattaro, G.: Aeolus: a component model for the cloud. Inf. Comput. 239, 100–121 (2014)

    Article  MathSciNet  MATH  Google Scholar 

  14. Docker Inc.: Docker. https://www.docker.com/

  15. Docker Inc.: Docker compose. https://github.com/docker/compose

  16. Docker Inc.: Docker swarm. https://github.com/docker/swarm

  17. FastConnect, Bull, Atos: Alien4cloud. https://alien4cloud.github.io/

  18. Fehling, C., Leymann, F., Retter, R., Schupeck, W., Arbitter, P.: Cloud Computing Patterns: Fundamentals to Design, Build, and Manage Cloud Applications. Springer, Vienna (2014). https://doi.org/10.1007/978-3-7091-1568-8

    Book  Google Scholar 

  19. Felter, W., Ferreira, A., Rajamony, R., Rubio, J.: An updated performance comparison of virtual machines and Linux containers. In: 2015 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), pp. 171–172. IEEE Computer Society (2015)

    Google Scholar 

  20. GigaSpaces Technologies: Cloudify. http://cloudify.co/

  21. Lascu, T.A., Mauro, J., Zavattaro, G.: A planning tool supporting the deployment of cloud applications. In: Proceedings of the 2013 IEEE 25th International Conference on Tools with Artificial Intelligence, ICTAI 2013, pp. 213–220. IEEE Computer Society (2013)

    Google Scholar 

  22. Leymann, F.: Cloud computing. it – Information Technology, Methoden und innovative Anwendungen der Informatik und Informationstechnik 53(4), 163–164 (2011)

    Google Scholar 

  23. Matthias, K., Kane, S.P.: Docker: Up and Running. O’Reilly Media, Sebastopol (2015)

    Google Scholar 

  24. Newman, S.: Building Microservices. O’Reilly Media, Inc., Sebastopol (2015)

    Google Scholar 

  25. OASIS: Topology and Orchestration Specification for Cloud Applications (TOSCA), Version 1.0 (2013). http://docs.oasis-open.org/tosca/TOSCA/v1.0/TOSCA-v1.0.pdf

  26. OASIS: Cloud Application Management for Platforms (CAMP), Version 1.1 (2016). http://docs.oasis-open.org/camp/camp-spec/v1.1/camp-spec-v1.1.pdf

  27. OASIS: Topology and Orchestration Specification for Cloud Applications (TOSCA) Simple Profile in YAML, Version 1.0 (2016). http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/TOSCA-Simple-Profile-YAML-v1.0.pdf

  28. Pahl, C.: Containerization and the paas cloud. IEEE Cloud Comput. 2(3), 24–31 (2015)

    Article  Google Scholar 

  29. Pahl, C., Brogi, A., Soldani, J., Jamshidi, P.: Cloud container technologies: a state-of-the-art review. IEEE Trans. Cloud Comput. (in press). https://doi.org/10.1109/TCC.2017.2702586. Early access: http://ieeexplore.ieee.org/document/7922500/

  30. Pahl, C., Lee, B.: Containers and clusters for edge cloud architectures - a technology review. In: Proceedings of the 2015 3rd International Conference on Future Internet of Things and Cloud, FICLOUD 2015, pp. 379–386. IEEE Computer Society (2015)

    Google Scholar 

  31. Smith, R.: Docker Orchestration. Packt Publishing, Birmingham (2017)

    Google Scholar 

  32. The Kubernetes Authors: Kubernetes. http://kubernetes.io/

Download references

Acknowledgments

The authors would like to thank Claus Pahl for all helpful and stimulating discussions on how to enhance the current support for orchestrating multi-component applications with Docker, which were reported in [11] and laid the foundations for the work presented in this paper.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Jacopo Soldani .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG, part of Springer Nature

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Brogi, A., Rinaldi, L., Soldani, J. (2018). TosKer: Orchestrating Applications with TOSCA and Docker. In: Mann, Z., Stolz, V. (eds) Advances in Service-Oriented and Cloud Computing. ESOCC 2017. Communications in Computer and Information Science, vol 824. Springer, Cham. https://doi.org/10.1007/978-3-319-79090-9_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-79090-9_9

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-79089-3

  • Online ISBN: 978-3-319-79090-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics