On the Nature of Issues in Five Open Source Microservices Systems: An Empirical Study

Due to its enormous benefits, the research and industry communities have shown an increasing interest in the Microservices Architecture (MSA) style over the last few years. Despite this, there is a limited evidence-based and thorough understanding of the types of issues (e.g., faults, errors, failures, mistakes) faced by microservices system developers and causes that trigger the issues. Such evidence-based understanding of issues and causes is vital for long-term, impactful, and quality research and practice in the MSA style. To that end, we conducted an empirical study on 1,345 issue discussions extracted from five open source microservices systems hosted on GitHub. Our analysis led to the first of its kind taxonomy of the types of issues in open source microservices systems, informing that the problems originating from Technical debt (321, 23.86%), Build (145, 10.78%), Security (137, 10.18%), and Service execution and communication (119, 8.84%) are prominent. We identified that “General programming errors”, “Poor security management”, “Invalid configuration and communication”, and “Legacy versions, compatibility and dependency” are the predominant causes for the leading four issue categories. Study results streamline a taxonomy of issues, their mapping with underlying causes, and present empirical findings that could facilitate research and development on emerging and next-generation microservices systems.

[1]  Hernán Astudillo,et al.  An Empirical Study of Scalability Frameworks in Open Source Microservices-based Systems , 2018, 2018 37th International Conference of the Chilean Computer Science Society (SCCC).

[2]  Gregory Gay,et al.  Understanding the Nature of System-Related Issues in Machine Learning Frameworks: An Exploratory Study , 2020, ArXiv.

[3]  Marco Tulio Valente,et al.  What's in a GitHub Star? Understanding Repository Starring Practices in a Social Coding Platform , 2018, J. Syst. Softw..

[4]  Harald C. Gall,et al.  An Empirical Analysis of the Docker Container Ecosystem on GitHub , 2017, 2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR).

[5]  Daniela Cruzes,et al.  Recommended Steps for Thematic Synthesis in Software Engineering , 2011, 2011 International Symposium on Empirical Software Engineering and Measurement.

[6]  Roberto Di Pietro,et al.  To Docker or Not to Docker: A Security Perspective , 2016, IEEE Cloud Computing.

[7]  Dag I. K. Sjøberg,et al.  Architectural Technical Debt in Microservices: A Case Study in a Large Company , 2019, 2019 IEEE/ACM International Conference on Technical Debt (TechDebt).

[8]  Davide Taibi,et al.  On the Definition of Microservice Bad Smells , 2018, IEEE Software.

[9]  Richard T. Vidgen,et al.  An exploration of technical debt , 2013, J. Syst. Softw..

[10]  J. Soldani,et al.  Mining the Architecture of Microservice-Based Applications from their Kubernetes Deployment , 2020, ESOCC Workshops.

[11]  Peng Liang,et al.  A systematic mapping study on technical debt and its management , 2015, J. Syst. Softw..

[12]  Kim-Kwang Raymond Choo,et al.  Challenges in Delivering Software in the Cloud as Microservices , 2016, IEEE Cloud Computing.

[13]  Hernán Astudillo,et al.  Identifying availability tactics to support security architectural design of microservice-based systems , 2019, ECSA.

[14]  Dan Ding,et al.  Fault Analysis and Debugging of Microservice Systems: Industrial Survey, Benchmark System, and Empirical Study , 2018, IEEE Transactions on Software Engineering.

[15]  Alfred Zimmermann,et al.  Assuring the Evolvability of Microservices: Insights into Industry Practices and Challenges , 2019, 2019 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[16]  Theo Lynn,et al.  Microservices migration patterns , 2018, Softw. Pract. Exp..

[17]  Juri Di Rocco,et al.  TopFilter: An Approach to Recommend Relevant GitHub Topics , 2020, ESEM.

[18]  Pitfalls & Challenges Faced During a Microservices Architecture Implementation , 2020 .

[19]  Anya Helene Bagge,et al.  Overcoming Security Challenges in Microservice Architectures , 2018, 2018 IEEE Symposium on Service-Oriented System Engineering (SOSE).

[20]  Peng Liang,et al.  A Systematic Mapping Study on Microservices Architecture in DevOps , 2020, J. Syst. Softw..

[21]  Davide Taibi,et al.  Towards Microservice Smells Detection , 2020, 2020 IEEE/ACM International Conference on Technical Debt (TechDebt).

[22]  Marian Daun,et al.  On Different Search Methods for Systematic Literature Reviews and Maps: Experiences from a Literature Search on Validation and Verification of Emergent Behavior , 2018, EASE.

[23]  Dipta Das,et al.  Automated Code-Smell Detection in Microservices Through Static Analysis: A Case Study , 2020, Applied Sciences.

[24]  Olaf Zimmermann,et al.  Microservices tenets , 2017, Computer Science - Research and Development.

[25]  Matheus Paixão,et al.  We Need to Talk About Microservices: an Analysis from the Discussions on StackOverflow , 2019, 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR).

[26]  Johan Tordsson,et al.  MicroRCA: Root Cause Localization of Performance Issues in Microservices , 2020, NOMS 2020 - 2020 IEEE/IFIP Network Operations and Management Symposium.

[27]  Claus Pahl,et al.  Microservices: The Journey So Far and Challenges Ahead , 2018, IEEE Softw..

[28]  Xi Zheng,et al.  A survey on security issues in services communication of Microservices‐enabled fog applications , 2019, Concurr. Comput. Pract. Exp..

[29]  Fabrizio Montesi,et al.  Microservices: Yesterday, Today, and Tomorrow , 2017, Present and Ulterior Software Engineering.

[30]  Hernán Astudillo,et al.  Actual Use of Architectural Patterns in Microservices-Based Open Source Projects , 2018, 2018 25th Asia-Pacific Software Engineering Conference (APSEC).

[31]  Lu Zhang,et al.  Understanding build issue resolution in practice: symptoms and fix patterns , 2020, ESEC/SIGSOFT FSE.

[32]  Claus Pahl,et al.  Processes, Motivations, and Issues for Migrating to Microservices Architectures: An Empirical Investigation , 2017, IEEE Cloud Computing.

[33]  Sam Newman,et al.  Building microservices - designing fine-grained systems, 1st Edition , 2015 .