Skip to main content

From (Incomplete) TOSCA Specifications to Running Applications, with Docker

  • Conference paper
  • First Online:
Software Engineering and Formal Methods (SEFM 2017)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 10729))

Included in the following conference series:

Abstract

Cloud applications typically consist of multiple interacting components, each requiring a virtualised runtime environment providing the needed software support (e.g., operating system, libraries). In this paper, we show how TOSCA and Docker can be effectively exploited to orchestrate multi-component applications, even if their (runtime) specification is incomplete. More precisely, we first propose a TOSCA-based representation for multi-component applications, and we show how to use it to specify only the components forming an application. We then present a way to automatically complete TOSCA application specifications, by discovering Docker-based runtime environments that provide the software support needed by the application components. We also discuss how the obtained specifications can be automatically orchestrated by existing TOSCA engines.

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 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 107.00
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.

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

  2. 2.

    https://hub.docker.com/_/mongo/.

  3. 3.

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

  4. 4.

    A more detailed introduction to Docker can be found in [15, 20].

  5. 5.

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

  6. 6.

    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.

  7. 7.

    The documentation of mongo explicitly states that a mongo container must be attached to a Docker volume to persistently store data.

  8. 8.

    Constraining the operating system distribution is particularly useful when the artifacts implementing the management operations of a software component require to perform distribution-specific system calls (e.g., a .sh script performing a command apt-get, which is supported only in Ubuntu-based distributions).

  9. 9.

    The Python sources of TosKeriser are publicly available on GitHub at https://github.com/di-unipi-socc/toskeriser (under MIT license). TosKeriser is also available on PyPI, and it can be directly installed on Linux hosts by executing the command pip install toskeriser.

  10. 10.

    DockerFinder [3] is a tool allowing to search for Docker containers based on multiple attributes, including the software distributions they support and the operating system distribution they are based on.

  11. 11.

    The help of TosKeriser can be displayed by executing toskerise –help|-h, while its actual version can be displayed by executing toskerise –version|-v.

  12. 12.

    https://github.com/di-unipi-socc/TosKeriser/blob/master/data/examples/thinking-app/thinking.csar.

References

  1. 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 

  2. 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 

  3. Brogi, A., Neri, D., Soldani, J.: DockerFinder: multi-attribute search of Docker images. In: 2017 IEEE International Conference on Cloud Engineering (IC2E), pp. 273–278. IEEE (2017)

    Google Scholar 

  4. Brogi, A., Rinaldi, L., Soldani, J.: TosKer: orchestrating applications with TOSCA and Docker (2017, submitted for publication)

    Google Scholar 

  5. Brogi, A., Soldani, J.: Matching cloud services with TOSCA. In: Canal, C., Villari, M. (eds.) ESOCC 2013. CCIS, vol. 393, pp. 218–232. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-45364-9_18

    Chapter  Google Scholar 

  6. Brogi, A., Soldani, J.: Finding available services in TOSCA-compliant clouds. Sci. Comput. Program. 115, 177–198 (2016)

    Article  Google Scholar 

  7. 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 

  8. Buyya, R., Yeo, C.S., Venugopal, S., Broberg, J., Brandic, I.: Cloud computing and emerging IT platforms: vision, hype, and reality for delivering computing as the 5th utility. Future Gener. Comput. Syst. 25(6), 599–616 (2009)

    Article  Google Scholar 

  9. Di Martino, B., Petcu, D., Cossu, R., Goncalves, P., Máhr, T., Loichate, M.: Building a mosaic of clouds. In: Guarracino, M.R., Vivien, F., Träff, J.L., Cannatoro, M., Danelutto, M., Hast, A., Perla, F., Knüpfer, A., Di Martino, B., Alexander, M. (eds.) Euro-Par 2010. LNCS, vol. 6586, pp. 571–578. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-21878-1_70

    Chapter  Google Scholar 

  10. 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 

  11. Guillén, J., Miranda, J., Murillo, J.M., Canal, C.: A service-oriented framework for developing cross cloud migratable software. J. Syst. Softw. 86(9), 2294–2308 (2013)

    Article  Google Scholar 

  12. Hamdaqa, M., Livogiannis, T., Tahvildari, L.: A reference model for developing cloud applications. In: Leymann, F., Ivanov, I., van Sinderen, M., Shishkov, B. (eds.) CLOSER 2011 - Proceedings of the 1st International Conference on Cloud Computing and Services Science (2011)

    Google Scholar 

  13. Hirmer, P., Breitenbücher, U., Binz, T., Leymann, F.: Automatic topology completion of TOSCA-based cloud applications. In: 44. Jahrestagung der Gesellschaft für Informatik e.V. (GI), vol. 232, pp. 247–258. Lecture Notes in Informatics (LNI) (2014)

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

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

    Google Scholar 

  17. OASIS: Topology and Orchestration Specification for Cloud Applications (TOSCA) Primer (2013). http://docs.oasis-open.org/tosca/tosca-primer/v1.0/tosca-primer-v1.0.pdf

  18. 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

  19. 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

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

    Google Scholar 

  21. Soldani, J., Binz, T., Breitenbücher, U., Leymann, F., Brogi, A.: ToscaMart: a method for adapting and reusing cloud applications. J. Syst. Softw. 113, 395–406 (2016)

    Article  Google Scholar 

  22. Soltesz, S., Pötzl, H., Fiuczynski, M.E., Bavier, A., Peterson, L.: Container-based operating system virtualization: a scalable, high-performance alternative to hypervisors. In: SIGOPS Operating Systems Review, vol. 41, no. 3, pp. 275–287 (2007)

    Google Scholar 

Download references

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

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Brogi, A., Neri, D., Rinaldi, L., Soldani, J. (2018). From (Incomplete) TOSCA Specifications to Running Applications, with Docker. In: Cerone, A., Roveri, M. (eds) Software Engineering and Formal Methods. SEFM 2017. Lecture Notes in Computer Science(), vol 10729. Springer, Cham. https://doi.org/10.1007/978-3-319-74781-1_33

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-74781-1_33

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-74780-4

  • Online ISBN: 978-3-319-74781-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics