Institutional Knowledge at Singapore Management University Institutional Knowledge at Singapore Management University Delta debugging microservice systems Delta debugging microservice systems

Debugging microservice systems involves the deployment and manipulation of microservice systems on a containerized environment and faces unique challenges due to the high complexity and dynamism of microservices. To address these challenges, in this paper, we propose a debugging approach for microservice systems based on the delta debugging algorithm, which is to minimize failure-inducing deltas of circumstances (e.g., deployment, environmental configurations) for effective debugging. Our approach includes novel techniques for defining, deploying/manipulating, and executing deltas following the idea of delta debugging. In particular, to construct a (failing) circumstance space for delta debugging to minimize, our approach defines a set of dimensions that can affect the execution of microservice systems. Our experimental study on a medium-size microservice benchmark system shows that our approach can effectively identify failure-inducing deltas that help diagnose the root causes.

[1]  Jun Sun,et al.  Poster: Benchmarking Microservice Systems for Software Engineering Research , 2018, 2018 IEEE/ACM 40th International Conference on Software Engineering: Companion (ICSE-Companion).

[2]  Tibor Gyimóthy,et al.  Coarse Hierarchical Delta Debugging , 2017, 2017 IEEE International Conference on Software Maintenance and Evolution (ICSME).

[3]  Claus Pahl,et al.  Benchmark Requirements for Microservices Architecture Research , 2017, 2017 IEEE/ACM 1st International Workshop on Establishing the Community-Wide Infrastructure for Architecture-Based Software Engineering (ECASE).

[4]  Patricia Lago,et al.  Research on Architecting Microservices: Trends, Focus, and Potential for Industrial Adoption , 2017, 2017 IEEE International Conference on Software Architecture (ICSA).

[5]  Alberto Lluch-Lafuente,et al.  Microservices: Yesterday, Today, and Tomorrow , 2016, Present and Ulterior Software Engineering.

[6]  Nour Ali,et al.  A Systematic Mapping Study in Microservice Architecture , 2016, 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA).

[7]  Xiangyu Zhang,et al.  Comparative causality: Explaining the differences between executions , 2013, 2013 35th International Conference on Software Engineering (ICSE).

[8]  Martin Burger,et al.  Minimizing reproduction of software failures , 2011, ISSTA '11.

[9]  Xiangyu Zhang,et al.  Memory indexing: canonicalizing addresses across executions , 2010, FSE '10.

[10]  Xiangyu Zhang,et al.  Algorithms for Automatically Computing the Causal Paths of Failures , 2009, FASE.

[11]  Zhendong Su,et al.  HDD: hierarchical delta debugging , 2006, ICSE.

[12]  H. Cleve,et al.  Locating causes of program failures , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[13]  Andreas Zeller,et al.  Simplifying and Isolating Failure-Inducing Input , 2002, IEEE Trans. Software Eng..

[14]  A. Zeller Isolating cause-effect chains from computer programs , 2002, SIGSOFT '02/FSE-10.

[15]  Andreas Zeller,et al.  Yesterday, my program worked. Today, it does not. Why? , 1999, ESEC/FSE-7.