Taxonomical Classification and Systematic Review on Microservices

Taxonomical Classification and Systematic Review on Microservices

  IJETT-book-cover           
  
© 2022 by IJETT Journal
Volume-70 Issue-3
Year of Publication : 2022
Authors : Sidath Weerasinghe, Indika Perera
https://doi.org/10.14445/22315381/IJETT-V70I3P225

How to Cite?

Sidath Weerasinghe, Indika Perera, "Taxonomical Classification and Systematic Review on Microservices," International Journal of Engineering Trends and Technology, vol. 70, no. 3, pp. 222-233, 2022. Crossref, https://doi.org/10.14445/22315381/IJETT-V70I3P225

Abstract
The software industry widely used monolithic system architecture in the past to build enterprise-grade software. Such software is deployed on the self-managed on-premises servers. Monolithic architecture systems introduced many difficulties when transitioning to cloud platforms and new technologies due to scalability, flexibility, performance issues, and lower business value. As a result, people are bound to consider the new software paradigm with the separation of concern concept. Microservice architecture was introduced to the world as an emerging software architecture style for overcoming monolithic architectural limitations. This paper illustrates the taxonomical classification of microservice architecture and a systematic review of the current state of the microservice architecture by comparing it to the past and future using the PRISMA model. Conference papers and journal papers the base on the defined keywords from well-known research publishers. The results showcase that most researchers and enterprise-grade companies use microservice architecture to develop cloud-native applications. On the contrary, they are struggling with certain performance issues in the overall application. The acquired results can facilitate the researchers and architects in the software engineering domain who aspire to be concerned with new technology trends about service-oriented architecture and cloud-native development.

Keywords
Microservices, Systematic review, PRISMA, Cloud computing, Architecture.

Reference
[1] L. O’Brien, P. Merson, and L. Bass, Quality Attributes for Service-Oriented Architectures, in International Workshop on Systems Development in SOA Environments (SDSOA’07: ICSE Workshops 2007), Minneapolis, MN, USA. (2007) 3–3. doi: 10.1109/SDSOA.2007.10.
[2] N. Alshuqayran, N. Ali, and R. Evans, A Systematic Mapping Study in Microservice Architecture, in 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA), Macau, China. (2016) 44–51. doi: 10.1109/SOCA.2016.15.
[3] N. Kratzke, A Brief History of Cloud Application Architectures, Appl. Sci. 8(8) (2018) 1368. doi: 10.3390/app8081368.
[4] S. Hassan, R. Bahsoon, and R. Kazman, Microservice Transition and its Granularity Problem: A Systematic Mapping Study, Softw. Pract. Exp. 50(9) (2020) 1651–1681. doi: 10.1002/spe.2869.
[5] H. Vural, M. Koyuncu, and S. Guney, A Systematic Literature Review on Microservices, in Computational Science and its Applications – ICCSA. 10409 (2017).
[6] O. Gervasi, B. Murgante, S. Misra, G. Borruso, C. M. Torre, A. M. A. C. Rocha, D. Taniar, B. O. Apduhan, E. Stankova, and A. Cuzzocrea, Eds. Cham: Springer International Publishing. (2017) 203–217. doi: 10.1007/978-3-319-62407-5_14.
[7] James Lewis, Microservices, Martinfowler.com. [Online]. Available: https://martinfowler.com/articles/microservices.html
[8] C. Pahl and P. Jamshidi, Microservices: A Systematic Mapping Study: in Proceedings of the 6th International Conference on Cloud Computing and Services Science, Rome, Italy. (2016) 137–146. doi: 10.5220/0005785501370146.
[9] J. Soldani, D. A. Tamburri, and W.-J. Van Den Heuvel, The Pains and Gains of Microservices: A Systematic Grey Literature Review, J. Syst. Softw. 146 (2018) 215–232. doi: 10.1016/j.jss.2018.09.082.
[10] Vilnius Gediminas Technical University, Saultekio al. 11, LT-10223 Vilnius, O. Pozdniakova, D. Mažeika, and Vilnius Gediminas Technical University, Saultekio al. 11, LT-10223 Vilnius, Systematic Literature Review of the Cloud-ready Software Architecture, Balt. J. Mod. Comput. 5(1) (2017) 124–135. doi: 10.22364/bjmc.2017.5.1.08.
[11] J. Opara-Martins, R. Sahandi, and F. Tian, Critical Analysis of Vendor Lock-In and its Impact on Cloud Computing Migration: A Business Perspective, J. Cloud Comput. 5(1) (2016) 4. doi: 10.1186/s13677-016-0054-z.
[12] J. Ghofrani and D. Lübke, Challenges of Microservices Architecture: A Survey on the State of The Practice. 8.
[13] IEEE Xplore. [Online]. Available: www.ieeexplore.ieee.org/Xplore/home.jsp
[14] ACM Digital Library. [Online]. Available: www.dl.acm.org/
[15] CiteSeerX. [Online]. Available: www.citeseerx.ist.psu.edu/index;jsessionid=16DB95ECCF154FE7425AFA00F9934740
[16] ScienceDirect.com | Science, Health and Medical Journals, Full-Text Articles and Books. [Online]. Available: www.sciencedirect.com/
[17] M. J. Page et al., PRISMA 2020 Explanation and Elaboration: Updated Guidance and Exemplars for Reporting Systematic Reviews, BMJ. (2021) 160. doi: 10.1136/bmj.n160.
[18] A. Bucchiarone, N. Dragoni, S. Dustdar, S. T. Larsen, and M. Mazzara, From Monolithic to Microservices: An Experience Report from the Banking Domain, IEEE Softw. 35(3) (2018) 50–55. doi: 10.1109/MS.2018.2141026.
[19] V. Lenarduzzi, F. Lomio, N. Saarimäki, and D. Taibi, Does Migrating a Monolithic System to Microservices Decrease the Technical Debt? J. Syst. Softw. 169 (2020) 110710. doi: 10.1016/j.jss.2020.110710.
[20] F. Auer, V. Lenarduzzi, M. Felderer, and D. Taibi, From Monolithic Systems to Microservices: An Assessment Framework, Inf. Softw. Technol. 137 (2021) 106600. doi: 10.1016/j.infsof.2021.106600.
[21] O. Al-Debagy and P. Martinek, A Comparative Review of Microservices and Monolithic Architectures, in 2018 IEEE 18th International Symposium on Computational Intelligence and Informatics (CINTI), Budapest, Hungary. (2018) 000149–00154. doi: 10.1109/CINTI.2018.8928192.
[22] M. Villamizar et al., Evaluating the Monolithic and the Microservice Architecture Pattern to Deploy Web Applications in the Cloud, In 2015 10th Computing Colombian Conference (10CCC), Bogota, Colombia. (2015) 583–590. doi: 10.1109/ColumbianCC.2015.7333476.
[23] M. Kamimura, K. Yano, T. Hatano, and A. Matsuo, Extracting Candidates of Microservices from Monolithic Application Code, in 2018 25th Asia-Pacific Software Engineering Conference (APSEC), Nara, Japan. (2018) 571–580. doi: 10.1109/APSEC.2018.00072.
[24] G. Mazlami, J. Cito, and P. Leitner, Extraction of Microservices from Monolithic Software Architectures, in 2017 IEEE International Conference on Web Services (ICWS), Honolulu, HI, USA. (2017) 524–531. doi: 10.1109/ICWS.2017.61.
[25] A. Selmadji, A.-D. Seriai, H. L. Bouziane, R. Oumarou Mahamane, P. Zaragoza, and C. Dony, From Monolithic Architecture Style to Microservice one Based on a Semi-Automatic Approach, in 2020 IEEE International Conference on Software Architecture (ICSA), Salvador, Brazil. (2020) 157–168. doi: 10.1109/ICSA47634.2020.00023.
[26] J. Kazanavicius and D. Mazeika, Migrating Legacy Software to Microservices Architecture, in 2019 Open Conference of Electrical, Electronic and Information Sciences (eStream), Vilnius, Lithuania. (2019) 1–5. doi: 10.1109/eStream.2019.8732170.
[27] V. Velepucha and P. Flores, Monoliths to microservices - Migration Problems and Challenges: A SMS, in 2021 Second International Conference on Information Systems and Software Technologies (ICI2ST), Quito, Ecuador. (2021) 135–142. doi: 10.1109/ICI2ST51859.2021.00027.
[28] D. Kuryazov, D. Jabborov, and B. Khujamuratov, Towards Decomposing Monolithic Applications into Microservices, in 2020 IEEE 14th International Conference on Application of Information and Communication Technologies (AICT), Tashkent, Uzbekistan. (2020) 1–4. doi: 10.1109/AICT50176.2020.9368571.
[29] S. Sarkar, G. Vashi, and P. P. Abdulla, Towards Transforming an Industrial Automation System from Monolithic to Microservices, in 2018 IEEE 23rd International Conference on Emerging Technologies and Factory Automation (ETFA), Turin. (2018) 1256–1259. doi: 10.1109/ETFA.2018.8502567.
[30] S. Eski and F. Buzluca, An Automatic Extraction Approach: Transition to Microservices Architecture from Monolithic Application, in Proceedings of the 19th International Conference on Agile Software Development: Companion, Porto Portugal. (2018) 1–6. doi: 10.1145/3234152.3234195.
[31] Z. Ren et al., Migrating Web Applications from Monolithic Structure to Microservices Architecture, in Proceedings of the Tenth Asia-Pacific Symposium on Internetware, Beijing China. (2018) 1–10. doi: 10.1145/3275219.3275230.
[32] A. K. Kalia et al., Mono2Micro: An AI-based Toolchain for Evolving Monolithic Enterprise Applications to a Microservice Architecture, in Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Virtual Event USA. (2020) 1606–1610. doi: 10.1145/3368089.3417933.
[33] S. Weerasinghe and I. Perera, An Exploratory Evaluation of Replacing ESB with Microservices in Service-Oriented Architecture, Presented at the International Research Conference on Smart Computing and Systems Engineering. (2021).
[34] T. Ueda, T. Nakaike, and M. Ohara, Workload characterization for microservices, in 2016 IEEE International Symposium on Workload Characterization (IISWC). (2016) 1–10. doi: 10.1109/IISWC.2016.7581269.
[35] A. de Camargo, I. Salvadori, R. dos S. Mello, and F. Siqueira, An Architecture to Automate Performance Tests on Microservices, in Proceedings of the 18th International Conference on Information Integration and Web-Based Applications and Services, New York, NY, USA. (2016) 422–429. doi: 10.1145/3011141.3011179.
[36] M. Gribaudo, M. Iacono, and D. Manini, Performance Evaluation of Replication Policies in Microservice Based Architectures, Electron. Notes Theor. Comput. Sci. 337 (2018) 45–65. doi: 10.1016/j.entcs.2018.03.033.
[37] A. Balalaie, A. Heydarnoori, and P. Jamshidi, Microservices Architecture Enables DevOps: Migration to a Cloud-Native Architecture, IEEE Softw. 33(3) (2016) 42–52. doi: 10.1109/MS.2016.64.
[38] G. Marquez, F. Osses, and H. Astudillo, Review of Architectural Patterns and Tactics for Microservices in Academic and Industrial Literature, IEEE Lat. Am. Trans. 16(9) (2018) 2321–2327. doi: 10.1109/TLA.2018.8789551.
[39] H. Suryotrisongko, D. P. Jayanto, and A. Tjahyanto, Design and Development of Backend Application for Public Complaint Systems Using Microservice Spring Boot, Procedia Comput. Sci. 124 (2017) 736–743. doi: 10.1016/j.procs.2017.12.212.
[40] H. Dinh-Tuan and M. Mora-Martinez, Development Frameworks for Microservice-Based Applications: Evaluation and Comparison. 9.
[41] T. de Oliveira Rosa, J. F. L. Daniel, E. M. Guerra, and A. Goldman, A Method for Architectural Trade-Off Analysis Based on Patterns: Evaluating Microservices Structural Attributes, in Proceedings of the European Conference on Pattern Languages of Programs 2020, Virtual Event Germany. (2020) 1–8. doi: 10.1145/3424771.3424809.
[42] J. Dobaj, J. Iber, M. Krisper, and C. Kreiner, A Microservice Architecture for the Industrial Internet-of-Things, in Proceedings of the 23rd European Conference on Pattern Languages of Programs, Irsee Germany. (2018) 1–15. doi: 10.1145/3282308.3282320.
[43] G. Marquez and H. Astudillo, Actual Use of Architectural Patterns in Microservices-Based Open Source Projects, in 2018 25th Asia-Pacific Software Engineering Conference (APSEC), Nara, Japan. (2018) 31–40. doi: 10.1109/APSEC.2018.00017.
[44] M. K and M. P, Evaluation of Data Storage Patterns in Microservices Architecture, in 2020 IEEE 15th International Conference of System of Systems Engineering (SoSE), Budapest, Hungary. (2020) 373–380. doi: 10.1109/SoSE50414.2020.9130516.
[45] F. Osses, G. Márquez, and H. Astudillo, Exploration of Academic and Industrial Evidence about Architectural Tactics and Patterns in Microservices, in Proceedings of the 40th International Conference on Software Engineering: Companion Proceedings, Gothenburg Sweden. (2018) 256–257. doi: 10.1145/3183440.3194958.
[46] F. Montesi and J. Weber, From the Decorator Pattern to Circuit Breakers in Microservices, in Proceedings of the 33rd Annual ACM Symposium on Applied Computing, Pau France. (2018) 1733–1735. doi: 10.1145/3167132.3167427.
[47] H. Harms, C. Rogowski, and L. Lo Iacono, Guidelines for Adopting Frontend Architectures and Patterns in Microservices-Based Systems, in Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, Paderborn Germany. (2017) 902–907. doi: 10.1145/3106237.3117775.
[48] G. Márquez and H. Astudillo, Identifying Availability Tactics to Support Security Architectural Design of Microservice-Based Systems, in Proceedings of the 13th European Conference on Software Architecture - ECSA ’19, Paris, France. 2 (2019) 123–129. doi: 10.1145/3344948.3344996.
[49] F. Li et al., Microservice Patterns for the Life Cycle of Industrial Edge Software, in Proceedings of the 23rd European Conference on Pattern Languages of Programs, Irsee Germany. (2018) 1–11. doi: 10.1145/3282308.3282313.
[50] R. Petrasch, Model-Based Engineering for Microservice Architectures Using Enterprise Integration Patterns for Inter-Service Communication, in 2017 14th International Joint Conference on Computer Science and Software Engineering (JCSSE), Nakhonsithammarat, Thailand. (2017) 1–4. doi: 10.1109/JCSSE.2017.8025912.
[51] M. Tusjunt and W. Vatanawood, Refactoring Orchestrated Web Services into Microservices using Decomposition Pattern, in 2018 IEEE 4th International Conference on Computer and Communications (ICCC), Chengdu, China. (2018) 609–613. doi: 10.1109/CompComm.2018.8781036.
[52] A. Akbulut and H. G. Perros, Software Versioning with Microservices through the API Gateway Design Pattern, in 2019 9th International Conference on Advanced Computer Information Technologies (ACIT), Ceske Budejovice, Czech Republic. (2019) 289–292. doi: 10.1109/ACITT.2019.8779952.
[53] S. Vergara, L. Gonzalez, and R. Ruggia, Towards Formalizing Microservices Architectural Patterns with Event-B, in 2020 IEEE International Conference on Software Architecture Companion (ICSA-C), Salvador, Brazil. (2020) 71–74. doi: 10.1109/ICSA-C50368.2020.00022.
[54] S. du Plessis, B. Mendes, and N. Correia, A Comparative Study of Microservices Frameworks in IoT Deployments, in 2021 International Young Engineers Forum (YEF-ECE), Caparica / Lisboa, Portugal. (2021) 86–91. doi: 10.1109/YEF-ECE52297.2021.9505049.
[55] D. Lu, D. Huang, A. Walenstein, and D. Medhi, A Secure Microservice Framework for IoT, in 2017 IEEE Symposium on Service-Oriented System Engineering (SOSE), San Francisco, CA, USA. (2017) 9–18. doi: 10.1109/SOSE.2017.27.
[56] X. Liu, S. Jiang, X. Zhao, and Y. Jin, A Shortest-Response-Time Assured Microservices Selection Framework, in 2017 IEEE International Symposium on Parallel and Distributed Processing with Applications and 2017 IEEE International Conference on Ubiquitous Computing and Communications (ISPA/IUCC), Guangzhou. (2017) 1266–1268. doi: 10.1109/ISPA/IUCC.2017.00192.
[57] R. Manciola Meloca, R. Ré, and A. Luis Schwerz, An Analysis of Frameworks for Microservices, in 2018 XLIV Latin American Computer Conference (CLEI). (2018) 542–551. doi: 10.1109/CLEI.2018.00071.
[58] Y. Wang, L. Cheng, and X. Sun, Design and Research of Microservice Application Automation Testing Framework, in 2019 International Conference on Information Technology and Computer Application (ITCA), Guangzhou, China. (2019) 257–260. doi: 10.1109/ITCA49981.2019.00063.
[59] L. Liu, X. He, Z. Tu, and Z. Wang, MV4MS: A Spring Cloud-Based Framework for the Co-Deployment of Multi-Version Microservices, in 2020 IEEE International Conference on Services Computing (SCC), Beijing, China. (2020) 194–201. doi: 10.1109/SCC49832.2020.00033.
[60] Spring Boot. [Online]. Available: www.spring.io/projects/spring-boot
[61] (2021). A. Aslam, Go Micro. Accessed. [Online]. Available: https://github.com/asim/go-micro
[62] Molecular - Progressive Microservices Framework for Node.js. [Online]. Available: www.Moleculer.Services/Index.Html
[63] (2021). Eclipse Vert.x. [Online]. Available: https://vertx.io/
[64] S. Brenner, T. Hundt, G. Mazzeo, and R. Kapitza, Secure Cloud Micro Services Using Intel SGX. (2017) 177–191. doi: 10.1007/978-3-319-59665-5_13.
[65] Chris Richardson, Microservices Patterns. Manning Publications. (2018).
[66] (2021). A Whole System Based on Event Sourcing is an Anti-Pattern. InfoQ. [Online]. Available: www.infoq.com/news/2016/04/event-sourcing-anti-pattern/.
[67] C. Esposito, A. Castiglione, and K.-K. R. Choo, Challenges in Delivering Software in the Cloud as Microservices, IEEE Cloud Comput. 3(5) (2016) 10–14. doi: 10.1109/MCC.2016.105.
[68] F. Rademacher, J. Sorgalla, and S. Sachweh, Challenges of Domain-Driven Microservice Design: A Model-Driven Perspective, IEEE Softw. 35(3) (2018) 36–43. doi: 10.1109/MS.2018.2141028.
[69] B. Götz, D. Schel, D. Bauer, C. Henkel, P. Einberger, and T. Bauernhansl, Challenges of Production Microservices, Procedia CIRP. 67 (2018) 167–172. doi: 10.1016/j.procir.2017.12.194.
[70] N. C. Mendonca, P. Jamshidi, D. Garlan, and C. Pahl, Developing Self-Adaptive Microservice Systems: Challenges and Directions, IEEE Softw. 38(2) (2021) 70–79. doi: 10.1109/MS.2019.2955937.
[71] T. Cerny et al., On Code Analysis Opportunities and Challenges for Enterprise Systems and Microservices, IEEE Access. 8 (2020) 159449–159470. doi: 10.1109/ACCESS.2020.3019985.
[72] M. Kleehaus and F. Matthes, Challenges in Documenting Microservice-Based IT Landscape: A Survey from an Enterprise Architecture Management Perspective, in 2019 IEEE 23rd International Enterprise Distributed Object Computing Conference (EDOC), Paris, France. (2019) 11–20. doi: 10.1109/EDOC.2019.00012.
[73] R. M. Munaf, J. Ahmed, F. Khakwani, and T. Rana, Microservices Architecture: Challenges and Proposed Conceptual Design, in 2019 International Conference on Communication Technologies (ComTech), Rawalpindi, Pakistan. (2019) 82–87. doi: 10.1109/COMTECH.2019.8737831.
[74] J. Fritzsch, J. Bogner, S. Wagner, and A. Zimmermann, Microservices Migration in Industry: Intentions, Strategies, and Challenges, in 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME), Cleveland, OH, USA. (2019) 481–490. doi: 10.1109/ICSME.2019.00081.
[75] S. Eismann, C.-P. Bezemer, W. Shang, D. Okanovi?, and A. van Hoorn, Microservices: A Performance Tester’s Dream or Nightmare?, in Proceedings of the ACM/SPEC International Conference on Performance Engineering, Edmonton AB Canada. (2020) 138–149. doi: 10.1145/3358960.3379124.
[76] T. Yarygina and A. H. Bagge, Overcoming Security Challenges in Microservice Architectures, in 2018 IEEE Symposium on Service-Oriented System Engineering (SOSE), Bamberg. (2018) 11–20. doi: 10.1109/SOSE.2018.00011.
[77] I. Pigazzini, F. A. Fontana, V. Lenarduzzi, and D. Taibi, Towards Microservice Smell Detection, in Proceedings of the 3rd International Conference on Technical Debt, Seoul Republic of Korea. (2020) 92–97. doi: 10.1145/3387906.3388625.
[78] W. K. G. Assunção, J. Krüger, and W. D. F. Mendonça, Variability Management Meet Microservices: Six Challenges of Re-Engineering Microservice-Based Webshops, in Proceedings of the 24th ACM Conference on Systems and Software Product Line: Volume A - Volume A, Montreal Quebec Canada. (2020) 1–6. doi: 10.1145/3382025.3414942.
[79] Y. Sun, S. Nanda, and T. Jaeger, Security-as-a-Service for Microservices-Based Cloud Applications, in 2015 IEEE 7th International Conference on Cloud Computing Technology and Science (CloudCom). (2015) 50–57. doi: 10.1109/CloudCom.2015.93.
[80] N. Kratzke and P.-C. Quint, Investigation of Impacts on Network Performance in the Advance of a Microservice Design, in Cloud Computing and Services Science, Cham. (2017) 187–208. doi: 10.1007/978-3-319-62594-2_10.
[81] T. Saravanan, S. Jha, G. Sabharwal, and S. Narayan, Comparative Analysis of Software Life Cycle Models, in 2020 2nd International Conference on Advances in Computing, Communication Control and Networking (ICACCCN). (2020) 906–909. doi: 10.1109/ICACCCN51052.2020.9362931.
[82] Y. Dang, Q. Lin, and P. Huang, AIOps: Real-World Challenges and Research Innovations, in 2019 IEEE/ACM 41st International Conference on Software Engineering: Companion Proceedings (ICSE-Companion), Montreal, QC, Canada. (2019) 4–5. doi: 10.1109/ICSE-Companion.2019.00023.
[83] M. S D and D. M., Distributed Request Tracing using Zipkin and Spring Boot Sleuth, Int. J. Comput. Appl. 175 (2020) 35–37. doi: 10.5120/ijca2020920617.