Nothing Special   »   [go: up one dir, main page]

Skip to main content

Towards a Taxonomy of Microservices Architectures

  • Conference paper
  • First Online:
Software Engineering and Formal Methods (SEFM 2017)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 10729))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 84.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 107.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

Notes

  1. 1.

    Due to the space limit, the full list can be found in: https://goo.gl/j5ec4A.

  2. 2.

    https://www.openapis.org/.

  3. 3.

    https://techcrunch.com/2016/12/02/aws-shoots-for-total-cloud-domination/.

  4. 4.

    https://martinfowler.com/articles/serverless.html.

  5. 5.

    https://blog.zhaw.ch/icclab/research-directions-for-faas/.

  6. 6.

    http://microservices.io/patterns/.

  7. 7.

    E.g., Netflix Fido – https://github.com/Netflix/Fido.

References

  1. Lewis, J., Fowler, M.: Microservices (2014). http://martinfowler.com/articles/microservices.html

  2. Fowler, M.: Monolith first (2015). http://martinfowler.com/bliki/MonolithFirst.html

  3. Newman, S.: Building Microservices. O’Reilly Media Inc., Newton (2015)

    Google Scholar 

  4. Balalaie, A., Heydarnoori, A., Jamshidi, P.: Microservices architecture enables devops: migration to a cloud-native architecture. IEEE Softw. 33(3), 42–52 (2016)

    Article  Google Scholar 

  5. Richardson, C.: Microservices architecture (2014). http://microservices.io/articles/whoisusingmicroservices.html

  6. George, F.: Challenges in implementing microservices (2015). http://gotocon.com/dl/goto-amsterdam-2015/slides/FredGeorge_ChallengesInImplementingMicroServices.pdf

  7. 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)

    Google Scholar 

  8. Richards, M.: Microservices Service-Oriented Architecture. O’Reilly Media, Newton (2015)

    Google Scholar 

  9. 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

    Chapter  Google Scholar 

  10. 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)

    Google Scholar 

  11. Kitchenham, B.: Guidelines for performing systematic literature reviews in software engineering. Technical report, Version 2.3 EBSE Technical Report. EBSE, sn (2007)

    Google Scholar 

  12. 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)

    Google Scholar 

  13. Kratzke, N.: About microservices, containers and their underestimated impact on network performance. In: Proceedings of CLOUD COMPUTING 2015, pp. 165–169 (2015)

    Google Scholar 

  14. 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

    Google Scholar 

  15. Ciuffoletti, A.: Automated deployment of a microservice-based monitoring infrastructure. Procedia Comput. Sci. 68, 163–172 (2015)

    Article  Google Scholar 

  16. 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)

    Google Scholar 

  17. 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

    Chapter  Google Scholar 

  18. 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)

    Google Scholar 

  19. 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)

    Google Scholar 

  20. 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

    Chapter  Google Scholar 

  21. 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)

    Google Scholar 

  22. 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)

    Google Scholar 

  23. 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)

    Google Scholar 

  24. Derakhshanmanesh, M., Grieger, M.: Model-integrating microservices: a vision paper. In: Software Engineering (Workshops), pp. 142–147 (2016)

    Google Scholar 

  25. 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)

    Google Scholar 

  26. 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)

    Google Scholar 

  27. 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)

    Google Scholar 

  28. 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)

    Google Scholar 

  29. 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)

    Google Scholar 

  30. 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)

    Google Scholar 

  31. 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)

    Google Scholar 

  32. 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)

    Google Scholar 

  33. 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

    Google Scholar 

  34. 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)

    Google Scholar 

  35. 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)

    Google Scholar 

  36. 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

    Chapter  Google Scholar 

  37. 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)

    Google Scholar 

  38. 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)

    Google Scholar 

  39. Garriga, M., Flores, A., Cechich, A., Zunino, A.: Web services composition mechanisms: a review. IETE Tech. Rev. 32(5), 376–383 (2015)

    Article  Google Scholar 

  40. 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)

    Article  Google Scholar 

  41. Evans, E.: Domain-Driven Design: Tackling Complexity in the Heart of Software. Addison-Wesley Professional, Boston (2004)

    Google Scholar 

  42. Homer, A., Sharp, J., Brader, L., Narumoto, M., Swanson, T.: Cloud Design Patterns: Prescriptive Architecture Guidance for Cloud Applications. Microsoft Patterns & Practices (2014)

    Google Scholar 

  43. 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)

    Article  Google Scholar 

  44. 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

    Chapter  Google Scholar 

  45. 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)

  46. Roberts, M.: Serverless architectures (2016). http://martinfowler.com/articles/serverless.html

  47. 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

    Chapter  Google Scholar 

  48. 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

    Google Scholar 

  49. Tamburri, D.A., Kazman, R., Fahimi, H.: The architect’s role in community shepherding. IEEE Softw. 33, 70–79 (2016)

    Article  Google Scholar 

  50. Hendrickson, S., Sturdevant, S., Harter, T., Venkataramani, V., Arpaci-Dusseau, A.C., Arpaci-Dusseau, R.H.: Serverless computation with openlambda. Elastic 60, 80 (2016)

    Google Scholar 

  51. 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

    Chapter  Google Scholar 

  52. 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)

    Google Scholar 

  53. Cockroft, A.: Evolution of business logic from monoliths through microservices, to functions (2017). https://goo.gl/H6zKMn

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Martin Garriga .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2018 Springer International Publishing AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics