Abstract
An important shift in software delivery is the definition of a cloud service as an independently deployable unit by following the microservices architectural style. Container virtualization facilitates development and deployment by ensuring independence from the runtime environment. Thus, cloud services are built as container-based systems - a set of containers that control the lifecycle of software and middleware components. However, using containers leads to a new paradigm for service development and operation: Self-service environments enable software developers to deploy and operate container-based systems on their own - you build it, you run it. Following this approach, more and more operational aspects are transferred towards the responsibility of software developers. In this work, we propose a concept for self-adaptive cloud services based on container virtualization in line with the microservices architectural style and present a model-based approach that assists software developers in building these services. Based on operational models specified by developers, the mechanisms required for self-adaptation are automatically generated. As a result, each container automatically adapts itself in a reactive, decentralized manner. We evaluate a prototype, which leverages the emerging TOSCA standard to specify operational behavior in a portable manner.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
A root process is a process with UNIX PID 1.
- 11.
For example, POSIX signals are an inter-process communication mechanism typically used in Unix-like operating systems and employed by state of the art container runtime environments.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
References
Balalaie, A., Heydarnoori, A., Jamshidi, P.: Microservices architecture enables devops: migration to a cloud-native architecture. IEEE Softw. 33(3), 42–52 (2016)
Brogi, A., Rinaldi, L., Soldani, J.: TosKer: a synergy between TOSCA and Docker for orchestrating multicomponent applications. Softw. Pract. Exp. 48(11), 2061–2079 (2018)
Burns, B., Oppenheimer, D.: Design patterns for container-based distributed systems. In: Proceedings of the 8th USENIX Conference on Hot Topics in Cloud Computing (HotCloud), pp. 108–113. USENIX (2016)
Fowler, M.: Microservices Resource Guide (2017). https://martinfowler.com/microservices/
Hüttermann, M.: DevOps for Developers. Apress (2012)
Kehrer, S., Blochinger, W.: Autogenic: automated generation of self-configuring microservices. In: Proceedings of the 8th International Conference on Cloud Computing and Services Science, CLOSER, vol. 1, pp. 35–46. INSTICC, SciTePress (2018). https://doi.org/10.5220/0006659800350046
Kehrer, S., Blochinger, W.: TOSCA-based container orchestration on mesos. Comput. Sci. Res. Dev. 33(3), 305–316 (2018)
Kookarinrat, P., Temtanapat, Y.: Design and implementation of a decentralized message bus for microservices. In: 2016 13th International Joint Conference on Computer Science and Software Engineering (JCSSE), pp. 1–6, July 2016
Kratzke, N., Quint, P.C.: Understanding cloud-native applications after 10 years of cloud computing - a systematic mapping study. J. Syst. Softw. 126, 1–16 (2017)
Lewis, J., Fowler, M.: Microservices a definition of this new architectural term (2014). https://martinfowler.com/articles/microservices.html
Leymann, F., Breitenbücher, U., Wagner, S., Wettinger, J.: Native cloud applications: why monolithic virtualization is not their foundation. In: Helfert, M., Ferguson, D., Méndez Muñoz, V., Cardoso, J. (eds.) CLOSER 2016. CCIS, vol. 740, pp. 16–40. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-62594-2_2
Newman, S.: Building Microservices, 1st edn. O’Reilly Media Inc., Sebastopol (2015)
OASIS: Topology and orchestration specification for cloud applications (TOSCA) version 1.0, committee specification 01 (2013). http://docs.oasis-open.org/tosca/TOSCA/v1.0/cs01/TOSCA-v1.0-cs01.html
OASIS: TOSCA simple profile in YAML version 1.0, committee specification 01 (2016). http://docs.oasis-open.org/tosca/TOSCA-Simple-Profile-YAML/v1.0/cs01/TOSCA-Simple-Profile-YAML-v1.0-cs01.html
O’Hanlon, C.: A conversation with werner vogels. Queue 4(4), 14:14–14:22 (2006)
Pahl, C., Brogi, A., Soldani, J., Jamshidi, P.: Cloud container technologies: a state-of-the-art review. IEEE Trans. Cloud Comput. (2017). https://doi.org/10.1109/TCC.2017.2702586
Pahl, C., Jamshidi, P.: Microservices: a systematic mapping study. In: Proceedings of the 6th International Conference on Cloud Computing and Services Science, CLOSER 2016, vols. 1 and 2, pp. 137–146. SCITEPRESS - Science and Technology Publications, Lda (2016)
Schermann, G., Cito, J., Leitner, P.: All the services large and micro: revisiting industrial practice in services computing. In: Norta, A., Gaaloul, W., Gangadharan, G.R., Dam, H.K. (eds.) ICSOC 2015. LNCS, vol. 9586, pp. 36–47. Springer, Heidelberg (2016). https://doi.org/10.1007/978-3-662-50539-7_4
Stubbs, J., Moreira, W., Dooley, R.: Distributed systems of microservices using docker and serfnode. In: 2015 7th International Workshop on Science Gateways, pp. 34–39, June 2015
Toffetti, G., Brunner, S., Blöchlinger, M., Dudouet, F., Edmonds, A.: An architecture for self-managing microservices. In: Proceedings of the 1st International Workshop on Automated Incident Management in Cloud, AIMC 2015, pp. 19–24. ACM, New York (2015)
Toffetti, G., Brunner, S., Blöchlinger, M., Spillner, J., Bohnert, T.M.: Self-managing cloud-native applications: design, implementation, and experience. Future Gener. Comput. Syst. 72(Suppl. C), 165–179 (2017)
Turnbull, J.: The Docker Book: Containerization is the new virtualization. James Turnbull (2014)
Zimmermann, O.: Microservices tenets. Comput. Sci. Res. Dev. 32(3–4), 301–310 (2017)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2019 Springer Nature Switzerland AG
About this paper
Cite this paper
Kehrer, S., Blochinger, W. (2019). Model-Based Generation of Self-adaptive Cloud Services. In: Muñoz, V., Ferguson, D., Helfert, M., Pahl, C. (eds) Cloud Computing and Services Science. CLOSER 2018. Communications in Computer and Information Science, vol 1073. Springer, Cham. https://doi.org/10.1007/978-3-030-29193-8_3
Download citation
DOI: https://doi.org/10.1007/978-3-030-29193-8_3
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-29192-1
Online ISBN: 978-3-030-29193-8
eBook Packages: Computer ScienceComputer Science (R0)