Model-Based Generation of Self-adaptive Cloud Services

  • Stefan KehrerEmail author
  • Wolfgang Blochinger
Conference paper
Part of the Communications in Computer and Information Science book series (CCIS, volume 1073)


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.


Microservices Container Self-adaptation Model-based deployment DevOps TOSCA 


  1. 1.
    Balalaie, A., Heydarnoori, A., Jamshidi, P.: Microservices architecture enables devops: migration to a cloud-native architecture. IEEE Softw. 33(3), 42–52 (2016)CrossRefGoogle Scholar
  2. 2.
    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)Google Scholar
  3. 3.
    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)Google Scholar
  4. 4.
    Fowler, M.: Microservices Resource Guide (2017).
  5. 5.
    Hüttermann, M.: DevOps for Developers. Apress (2012)Google Scholar
  6. 6.
    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).
  7. 7.
    Kehrer, S., Blochinger, W.: TOSCA-based container orchestration on mesos. Comput. Sci. Res. Dev. 33(3), 305–316 (2018)CrossRefGoogle Scholar
  8. 8.
    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 2016Google Scholar
  9. 9.
    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)CrossRefGoogle Scholar
  10. 10.
    Lewis, J., Fowler, M.: Microservices a definition of this new architectural term (2014).
  11. 11.
    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). Scholar
  12. 12.
    Newman, S.: Building Microservices, 1st edn. O’Reilly Media Inc., Sebastopol (2015)Google Scholar
  13. 13.
    OASIS: Topology and orchestration specification for cloud applications (TOSCA) version 1.0, committee specification 01 (2013).
  14. 14.
    OASIS: TOSCA simple profile in YAML version 1.0, committee specification 01 (2016).
  15. 15.
    O’Hanlon, C.: A conversation with werner vogels. Queue 4(4), 14:14–14:22 (2006)CrossRefGoogle Scholar
  16. 16.
    Pahl, C., Brogi, A., Soldani, J., Jamshidi, P.: Cloud container technologies: a state-of-the-art review. IEEE Trans. Cloud Comput. (2017).
  17. 17.
    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)Google Scholar
  18. 18.
    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). Scholar
  19. 19.
    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 2015Google Scholar
  20. 20.
    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)Google Scholar
  21. 21.
    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)Google Scholar
  22. 22.
    Turnbull, J.: The Docker Book: Containerization is the new virtualization. James Turnbull (2014)Google Scholar
  23. 23.
    Zimmermann, O.: Microservices tenets. Comput. Sci. Res. Dev. 32(3–4), 301–310 (2017)CrossRefGoogle Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Parallel and Distributed Computing GroupReutlingen UniversityReutlingenGermany

Personalised recommendations