ZHANG Qi-Xun
School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China;School of Software and Microelectronics, Peking University, Beijing 102600, ChinaWU Yi-Fan
School of Software and Microelectronics, Peking University, Beijing 102600, ChinaYANG Yong
School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, ChinaJIA Tong
Institute for Artificial Intelligence, Peking University, Beijing 100871, ChinaLI Ying
School of Software and Microelectronics, Peking University, Beijing 102600, China;National Engineering Research Center for Software Engineering, Peking University, Beijing 100871, ChinaWU Zhong-Hai
School of Software and Microelectronics, Peking University, Beijing 102600, China;National Engineering Research Center for Software Engineering, Peking University, Beijing 100871, ChinaMicroservice architectures have been widely deployed and applied, which can greatly improve the efficiency of software system development, reduce the cost of system update and maintenance, and enhance the extendibility of software systems. However, However, microservices are characterized by frequent changes and heterogeneous fusion, which result in frequent faults, fast fault propagation, and great influence. Meanwhile, complex call dependency or logical dependency between microservices makes it difficult to locate and diagnose faults timely and accurately, which poses a challenge to the intelligent operation and maintenance of microservice architecture systems. The service dependency discovery technology identifies and deduces the call dependency or logical dependency between services from data during system running and constructs a service dependency graph, which helps to timely and accurately discover and locate faults and diagnose causes during system running and is conducive to intelligent operation and maintenance requirements such as resource scheduling and change management. This study first analyzes the problem of service dependency discovery in microservice systems and then summarizes the technical status of the service dependency discovery from the perspective of three types of runtime data, such as monitoring data, system log data, and trace data. Then, based on the fault cause location, resource scheduling, and change management of the service dependency graph, the study discusses the application of service dependency discovery technology to intelligent operation and maintenance. Finally, the study discusses how service dependency discovery technology can accurately discover call dependency or logical dependency and use service dependency graph to conduct change management and predicts future research directions.
张齐勋,吴一凡,杨勇,贾统,李影,吴中海.微服务系统服务依赖发现技术综述.软件学报,2024,35(1):118-135
Copy