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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
The source code of Thinking is publicly available on GitHub at https://github.com/di-unipi-socc/thinking.
- 2.
- 3.
- 4.
- 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.
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.
The documentation of mongo explicitly states that a mongo container must be attached to a Docker volume to persistently store data.
- 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.
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.
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.
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.
References
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)
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
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)
Brogi, A., Rinaldi, L., Soldani, J.: TosKer: orchestrating applications with TOSCA and Docker (2017, submitted for publication)
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
Brogi, A., Soldani, J.: Finding available services in TOSCA-compliant clouds. Sci. Comput. Program. 115, 177–198 (2016)
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
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)
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
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
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)
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)
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)
Leymann, F.: Cloud computing. It—Information Technology, Methoden und innovative Anwendungen der Informatik und Informationstechnik 53(4), 163–164 (2011)
Matthias, K., Kane, S.P.: Docker: Up and Running. O’Reilly Media, Sebastopol (2015)
Newman, S.: Building Microservices. O’Reilly Media Inc., Sebastopol (2015)
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
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
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
Smith, R.: Docker Orchestration. Packt Publishing, Birmingham (2017)
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)
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)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer International Publishing AG
About this paper
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)