Abstract
Microservices are becoming the de-facto standard way for software development in the cloud and in service-oriented computing. Service meshes have been introduced as a dedicated infrastructure for managing a network of containerized microservices, in order to cope with the complexity, manageability, and interoperability challenges in especially large-scale microservice architectures. Unfortunately so far no dedicated architecture guidance for designing microservices and choosing among technology options in a service mesh exist. As a result, there is a substantial uncertainty in designing and using microservices in a service mesh environment today. To alleviate this problem, we have performed a model-based qualitative in-depth study of existing practices in this field in which we have systematically and in-depth studied 40 reports of established practices from practitioners. In our study we modeled our findings in a rigorously specified reusable architectural decision model, in which we identified 14 architectural design decisions with 47 decision outcomes and 77 decision drivers in total. We estimated the uncertainty in the resulting design space with and without use of our model, and found that a substantial uncertainty reduction can be potentially achieved by applying our model.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Baresi, L., Garriga, M., De Renzis, A.: Microservices identification through interface analysis. In: De Paoli, F., Schulte, S., Broch Johnsen, E. (eds.) ESOCC 2017. LNCS, vol. 10465, pp. 19–33. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-67262-5_2
Charmaz, K.: Constructing Ground Theory. Sage, Thousand Oaks (2014)
Coplien, J.: Software Patterns: Management Briefings. SIGS Books & Multimedia, New York (1996)
Eismann, S., et al.: A micro-service reference application for cloud researchers. In: 2018 IEEE/ACM International Conference on Utility and Cloud Computing Companion (UCC Companion), pp. 11–12. IEEE (2018)
Envoy: Envoy is an open source edge and service proxy, designed for cloud-native applications. https://www.envoyproxy.io/
Glaser, B.G., Leonard Strauss, A.: The Discovery of Grounded Theory: Strategies for Qualitative Research, vol. 3. Aldine de Gruyter, Chicago (1967)
Gorton, I., Klein, J., Nurgaliev, A.: Architecture knowledge for evaluating scalable databases. In: Proceedings of the 12th Working IEEE/IFIP Conference on Software Architecture (WICSA 2015), pp. 95–104 (2015)
Gupta, A.: Microservice design patterns (2017). http://blog.arungupta.me/microservice-design-patterns/
Haselböck, S., Weinreich, R., Buchgeher, G.: Decision guidance models for microservices: service discovery and fault tolerance. In: Proceedings of the Fifth European Conference on the Engineering of Computer-Based Systems. ACM, New York (2017)
Hasselbring, W., Steinacker, G.: Microservice architectures for scalability, agility and reliability in e-commerce. In: 2017 IEEE International Conference on Software Architecture Workshops (ICSAW), pp. 243–246. IEEE (2017)
Istio: What is Istio? https://istio.io/docs/concepts/what-is-istio/
Jamshidi, P., Pahl, C., Mendonça, N.C., Lewis, J., Tilkov, S.: Microservices: the journey so far and challenges ahead. IEEE Softw. 35(3), 24–35 (2018)
Lewis, J., Fowler, M.: Microservices: a definition of this new architectural term, March 2004. http://martinfowler.com/articles/microservices.html
Lytra, I., Sobernig, S., Zdun, U.: Architectural decision making for service-based platform integration: a qualitative multi-method study. In: Proceedings of WICSA/ECSA, pp. 111–120 (2012)
Morgan, W.: The history of the service mesh. https://thenewstack.io/history-service-mesh/
Morgan, W.: What’s a service mesh? and why do i need one? (4 2017). https://blog.buoyant.io/2017/04/25/whats-a-service-mesh-and-why-do-i-need-one/
Newman, S.: Building Microservices: Designing Fine-Grained Systems. O’Reilly, Sebastopol (2015)
Pahl, C., Jamshidi, P.: Microservices: a systematic mapping study. In: 6th International Conference on Cloud Computing and Services Science, Rome, Italy, pp. 137–146 (2016)
Pautasso, C., Zimmermann, O., Leymann, F.: RESTful web services vs. big web services: making the right architectural decision. In: Proceedings of the 17th World Wide Web Conference (WWW), pp. 805–814, April (2008)
Richardson, C.: A pattern language for microservices (2017). http://microservices.io/patterns/index.html
Selimi, M., Cerdà-Alabern, L., Sánchez-Artigas, M., Freitag, F., Veiga, L.: Practical service placement approach for microservices architecture. In: IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing. IEEE (2017)
Smith, F.: What is a service mesh? April 2018. https://www.nginx.com/blog/what-is-a-service-mesh/
Truong, H.L., Gao, L., Hammerer, M.: Service architectures and dynamic solutions for interoperability of IoT, network functions and cloud resources. In: 12th European Conference on Software Architecture: Companion Proceedings, p. 2. ACM (2018)
Voelter, M., Kircher, M., Zdun, U.: Remoting Patterns - Foundations of Enterprise, Internet, and Realtime Distributed Object Middleware. Wiley, Hoboken (2004)
Zdun, U., Navarro, E., Leymann, F.: Ensuring and assessing architecture conformance to microservice decomposition patterns. In: Maximilien, M., Vallecillo, A., Wang, J., Oriol, M. (eds.) ICSOC 2017. LNCS, vol. 10601, pp. 411–429. Springer, Cham (2017). https://doi.org/10.1007/978-3-319-69035-3_29
Zdun, U., Stocker, M., Zimmermann, O., Pautasso, C., Lübke, D.: Guiding architectural decision making on quality aspects in microservice APIs. In: Pahl, C., Vukovic, M., Yin, J., Yu, Q. (eds.) ICSOC 2018. LNCS, vol. 11236, pp. 73–89. Springer, Cham (2018). https://doi.org/10.1007/978-3-030-03596-9_5
Zheng, T., et al.: SmartVM: a SLA-aware microservice deployment framework. World Wide Web 22(1), 275–293 (2019). https://doi.org/10.1007/s11280-018-0562-5
Zimmermann, O.: Microservices tenets. Comput. Sci. - Res. Dev. 32(3), 301–310 (2017)
Zimmermann, O., Koehler, J., Leymann, F., Polley, R., Schuster, N.: Managing architectural decision models with dependency relations, integrity constraints, and production rules. J. Syst. Softw. 82(8), 1249–1267 (2009)
Acknowledgments
This work was supported by: FFG (Austrian Research Promotion Agency) project DECO, no. 846707; FWF (Austrian Science Fund) project ADDCompliance: I 2885-N33.
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
El Malki, A., Zdun, U. (2019). Guiding Architectural Decision Making on Service Mesh Based Microservice Architectures. In: Bures, T., Duchien, L., Inverardi, P. (eds) Software Architecture. ECSA 2019. Lecture Notes in Computer Science(), vol 11681. Springer, Cham. https://doi.org/10.1007/978-3-030-29983-5_1
Download citation
DOI: https://doi.org/10.1007/978-3-030-29983-5_1
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-29982-8
Online ISBN: 978-3-030-29983-5
eBook Packages: Computer ScienceComputer Science (R0)