Abstract
The microservices architectural style is gaining more and more momentum for the development of applications as suites of small, autonomous, and conversational services, which are then easy to understand, deploy and scale. However, the proliferation of approaches leveraging microservices calls for a systematic way of analyzing and assessing them as a completely new ecosystem: the first cloud-native architectural style. This paper defines a preliminary analysis framework in the form of a taxonomy of concepts, encompassing the whole microservices lifecycle, as well as organizational aspects. This framework is necessary to enable effective exploration, understanding, assessing, comparing, and selecting microservice-based models, languages, techniques, platforms, and tools. Then, we analyze state of the art approaches related to microservices using this taxonomy to provide a holistic perspective of available solutions.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
Due to the space limit, the full list can be found in: https://goo.gl/j5ec4A.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
E.g., Netflix Fido – https://github.com/Netflix/Fido.
References
Lewis, J., Fowler, M.: Microservices (2014). http://martinfowler.com/articles/microservices.html
Fowler, M.: Monolith first (2015). http://martinfowler.com/bliki/MonolithFirst.html
Newman, S.: Building Microservices. O’Reilly Media Inc., Newton (2015)
Balalaie, A., Heydarnoori, A., Jamshidi, P.: Microservices architecture enables devops: migration to a cloud-native architecture. IEEE Softw. 33(3), 42–52 (2016)
Richardson, C.: Microservices architecture (2014). http://microservices.io/articles/whoisusingmicroservices.html
George, F.: Challenges in implementing microservices (2015). http://gotocon.com/dl/goto-amsterdam-2015/slides/FredGeorge_ChallengesInImplementingMicroServices.pdf
Toffetti, G., Brunner, S., Blöchlinger, M., Spillner, J., Bohnert, T.M.: Self-managing cloud-native applications: design, implementation, and experience. In: Future Generation Computer Systems, vol. (2016, in Press)
Richards, M.: Microservices Service-Oriented Architecture. O’Reilly Media, Newton (2015)
Wilde, N., Gonen, B., El-Sheikh, E., Zimmermann, A.: Approaches to the evolution of SOA systems. In: El-Sheikh, E., Zimmermann, A., Jain, L.C. (eds.) Emerging Trends in the Evolution of Service-Oriented and Enterprise Architectures. ISRL, vol. 111, pp. 5–21. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-40564-3_2
Hassan, S., Bahsoon, R.: Microservices and their design trade-offs: a self-adaptive roadmap. In: IEEE International Conference on Services Computing (SCC), pp. 813–818. IEEE (2016)
Kitchenham, B.: Guidelines for performing systematic literature reviews in software engineering. Technical report, Version 2.3 EBSE Technical Report. EBSE, sn (2007)
Wohlin, C.: Guidelines for snowballing in systematic literature studies and a replication in software engineering. In: Proceedings of the 18th International Conference on Evaluation and Assessment in Software Engineering, p. 38. ACM (2014)
Kratzke, N.: About microservices, containers and their underestimated impact on network performance. In: Proceedings of CLOUD COMPUTING 2015, pp. 165–169 (2015)
Bogner, J., Zimmermann, A.: Towards integrating microservices with adaptable enterprise architecture. In: 2016 IEEE 20th International Enterprise Distributed Object Computing Workshop (EDOCW), pp. 1–6, September 2016
Ciuffoletti, A.: Automated deployment of a microservice-based monitoring infrastructure. Procedia Comput. Sci. 68, 163–172 (2015)
Florio, L., Di Nitto, E.: Gru: an approach to introduce decentralized autonomic behavior in microservices architectures. In: 2016 IEEE International Conference on Autonomic Computing (ICAC), pp. 357–362. IEEE (2016)
Gabbrielli, M., Giallorenzo, S., Guidi, C., Mauro, J., Montesi, F.: Self-reconfiguring microservices. In: Ábrahám, E., Bonsangue, M., Johnsen, E.B. (eds.) Theory and Practice of Formal Methods. LNCS, vol. 9660, pp. 194–210. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-30734-3_14
Gadea, C., Trifan, M., Ionescu, D., Ionescu, B.: A reference architecture for real-time microservice API consumption. In: Proceedings of the 3rd Workshop on CrossCloud Infrastructures & Platforms, p. 2. ACM (2016)
Guo, D., Wang, W., Zeng, G., Wei, Z.: Microservices architecture based cloudware deployment platform for service computing. In: 2016 IEEE Symposium on Service-Oriented System Engineering (SOSE), pp. 358–363. IEEE (2016)
Gysel, M., Kölbener, L., Giersche, W., Zimmermann, O.: Service cutter: a systematic approach to service decomposition. In: Aiello, M., Johnsen, E.B., Dustdar, S., Georgievski, I. (eds.) ESOCC 2016. LNCS, vol. 9846, pp. 185–200. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-44482-6_12
Heorhiadi, V., Rajagopalan, S., Jamjoom, H., Reiter, M.K., Sekar, V.: Gremlin: systematic resilience testing of microservices. In: 2016 IEEE 36th International Conference on Distributed Computing Systems (ICDCS), pp. 57–66. IEEE (2016)
Kecskemeti, G., Marosi, A.C., Kertesz, A.: The ENTICE approach to decompose monolithic services into microservices. In: 2016 International Conference on High Performance Computing & Simulation (HPCS), pp. 591–596. IEEE (2016)
Liu, D., Zhu, H., Xu, C., Bayley, I., Lightfoot, D., Green, M., Marshall, P.: CIDE: an integrated development environment for microservices. In: IEEE International Conference on Services Computing (SCC), pp. 808–812. IEEE (2016)
Derakhshanmanesh, M., Grieger, M.: Model-integrating microservices: a vision paper. In: Software Engineering (Workshops), pp. 142–147 (2016)
Safina, L., Mazzara, M., Montesi, F., Rivera, V.: Data-driven workflows for microservices: genericity in jolie. In: IEEE International Conference on Advanced Information Networking and Applications (AINA), pp. 430–437. IEEE (2016)
Nikol, G., Träger, M., Harrer, S., Wirtz, G.: Service-oriented multi-tenancy (SO-MT): enabling multi-tenancy for existing service composition engines with Docker. In: 2016 IEEE Symposium on Service-Oriented System Engineering (SOSE), pp. 238–243. IEEE (2016)
Rahman, M., Gao, J.: A reusable automated acceptance testing architecture for microservices in behavior-driven development. In: 2015 IEEE Symposium on Service-Oriented System Engineering (SOSE), pp. 321–325. IEEE (2015)
Savchenko, D.I., Radchenko, G.I., Taipale, O.: Microservices validation: mjolnirr platform case study. In: 2015 38th International Convention on Information and Communication Technology, Electronics and Microelectronics (MIPRO), pp. 235–240. IEEE (2015)
Sousa, G., Rudametkin, W., Duchien, L.: Automated setup of multi-cloud environments for microservices-based applications. In: 9th IEEE International Conference on Cloud Computing (2016)
Stubbs, J., Moreira, W., Dooley, R.: Distributed systems of microservices using docker and serfnode. In: International Workshop on Science Gateways (IWSG), pp. 34–39. IEEE (2015)
Sun, Y., Nanda, S., Jaeger, T.: Security-as-a-service for microservices-based cloud applications. In: 2015 IEEE 7th International Conference on Cloud Computing Technology and Science (CloudCom), pp. 50–57. IEEE (2015)
Villamizar, M., Garcés, O., Ochoa, L., Castro, H., Salamanca, L., Verano, M., Casallas, R., Gil, S., Valencia, C., Zambrano, A., et al.: Infrastructure cost comparison of running web applications in the cloud using AWS lambda and monolithic and microservice architectures. In: 2016 16th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing (CCGrid), pp. 179–182. IEEE (2016)
Ben Hadj Yahia, E., Réveillère, L., Bromberg, Y.-D., Chevalier, R., Cadot, A.: Medley: an event-driven lightweight platform for service composition. In: Bozzon, A., Cudre-Maroux, P., Pautasso, C. (eds.) ICWE 2016. LNCS, vol. 9671, pp. 3–20. Springer, Cham (2016). https://doi.org/10.1007/978-3-319-38791-8_1
Bak, P., Melamed, R., Moshkovich, D., Nardi, Y., Ship, H., Yaeli, A.: Location and context-based microservices for mobile and internet of things workloads. In: 2015 IEEE International Conference on Mobile Services (MS), pp. 1–8. IEEE (2015)
Levcovitz, A., Terra, R., Valente, M.T.: Towards a technique for extracting microservices from monolithic enterprise systems. In: 3rd Brazilian Workshop on Software Visualization, Evolution and Maintenance (VEM), pp. 97–104 (2015)
Meinke, K., Nycander, P.: Learning-based testing of distributed microservice architectures: correctness and fault injection. In: Bianculli, D., Calinescu, R., Rumpe, B. (eds.) SEFM 2015. LNCS, vol. 9509, pp. 3–10. Springer, Heidelberg (2015). https://doi.org/10.1007/978-3-662-49224-6_1
Viennot, N., Lécuyer, M., Bell, J., Geambasu, R., Nieh, J.: Synapse: a microservices architecture for heterogeneous-database web applications. In: Proceedings of the Tenth European Conference on Computer Systems, p. 21. ACM (2015)
Amaral, M., Polo, J., Carrera, D., Mohomed, I., Unuvar, M., Steinder, M.: Performance evaluation of microservices architectures using containers. In: 2015 IEEE 14th International Symposium on Network Computing and Applications (NCA), pp. 27–34. IEEE (2015)
Garriga, M., Flores, A., Cechich, A., Zunino, A.: Web services composition mechanisms: a review. IETE Tech. Rev. 32(5), 376–383 (2015)
Garriga, M., Mateos, C., Flores, A., Cechich, A., Zunino, A.: Restful service composition at a glance: a survey. J. Netw. Comput. Appl. 60, 32–53 (2016)
Evans, E.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional, Boston (2004)
Homer, A., Sharp, J., Brader, L., Narumoto, M., Swanson, T.: Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications. Microsoft Patterns & Practices (2014)
Casale, G., Chesta, C., Deussen, P., Di Nitto, E., Gouvas, P., Koussouris, S., Stankovski, V., Symeonidis, A., Vlassiou, V., Zafeiropoulos, A., et al.: Current and future challenges of software engineering for services and applications. Procedia Comput. Sci. 97, 34–42 (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
Dragoni, N., Giallorenzo, S., Lafuente, A.L., Mazzara, M., Montesi, F., Mustafin, R., Safina, L.: Microservices: yesterday, today, and tomorrow, arXiv preprint arXiv:1606.04036 (2016)
Roberts, M.: Serverless architectures (2016). http://martinfowler.com/articles/serverless.html
de Lemos, R., et al.: Software engineering for self-adaptive systems: a second research roadmap. In: de Lemos, R., Giese, H., Müller, H.A., Shaw, M. (eds.) Software Engineering for Self-Adaptive Systems II. LNCS, vol. 7475, pp. 1–32. Springer, Heidelberg (2013). https://doi.org/10.1007/978-3-642-35813-5_1
Bass, L.: Software Quality Assurance In Large Scale and Complex Software-intensive Systems, vol. 1. Morgan Kauffmann, San Francisco (2015). Ch. Forewords by Len Bass
Tamburri, D.A., Kazman, R., Fahimi, H.: The architect’s role in community shepherding. IEEE Softw. 33, 70–79 (2016)
Hendrickson, S., Sturdevant, S., Harter, T., Venkataramani, V., Arpaci-Dusseau, A.C., Arpaci-Dusseau, R.H.: Serverless computation with openlambda. Elastic 60, 80 (2016)
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
Baresi, L., Guinea, S., Leva, A., Quattrocchi, G.: A discrete-time feedback controller for containerized cloud applications. In: ACM Sigsoft International Symposium on the Foundations of Software Engineering (FSE). ACM (2016, accepted for publication)
Cockroft, A.: Evolution of business logic from monoliths through microservices, to functions (2017). https://goo.gl/H6zKMn
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
Garriga, M. (2018). Towards a Taxonomy of Microservices Architectures. 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_15
Download citation
DOI: https://doi.org/10.1007/978-3-319-74781-1_15
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)