Andres Osamu Rodriguez Ishida, K. Kontogiannis, C. Brealey
{"title":"Extracting Micro Service Dependencies Using Log Analysis","authors":"Andres Osamu Rodriguez Ishida, K. Kontogiannis, C. Brealey","doi":"10.1109/STC55697.2022.00020","DOIUrl":null,"url":null,"abstract":"Microservice architecture is an architectural style that supports the design and implementation of very scalable systems by distributing complex functionality to highly granular components. These highly granular components are referred to as microservices and can be dynamically deployed on Docker containers. These microservice architecture systems are very extensible since new microservices can be added or replaced as the system evolves. In such highly granular architectures, a major challenge that arises is how to quickly identify whether any changes in the system’s structure violates any policies or design constraints. Examples of policies and design constraints include whether a microservice can call or pass data to another microservice, and whether data handled by one microservice can be stored in a specific database. In order to perform such type of analysis a model that denotes call and data dependencies between microservices must be constructed. In this paper, we present a technique that is based on log analysis and probabilistic reasoning to yield a labeled, typed, directed multigraph that represents call and data exchanges between microservices in a given deployment. This dependency graph can serve as input to analysis engines to be used for identifying design and policy violations as the system evolves or being updated. The proposed dependency graph creation approach has been applied to a medium size open source microservice system with very promising results.","PeriodicalId":170123,"journal":{"name":"2022 IEEE 29th Annual Software Technology Conference (STC)","volume":"51 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2022-10-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2022 IEEE 29th Annual Software Technology Conference (STC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/STC55697.2022.00020","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Microservice architecture is an architectural style that supports the design and implementation of very scalable systems by distributing complex functionality to highly granular components. These highly granular components are referred to as microservices and can be dynamically deployed on Docker containers. These microservice architecture systems are very extensible since new microservices can be added or replaced as the system evolves. In such highly granular architectures, a major challenge that arises is how to quickly identify whether any changes in the system’s structure violates any policies or design constraints. Examples of policies and design constraints include whether a microservice can call or pass data to another microservice, and whether data handled by one microservice can be stored in a specific database. In order to perform such type of analysis a model that denotes call and data dependencies between microservices must be constructed. In this paper, we present a technique that is based on log analysis and probabilistic reasoning to yield a labeled, typed, directed multigraph that represents call and data exchanges between microservices in a given deployment. This dependency graph can serve as input to analysis engines to be used for identifying design and policy violations as the system evolves or being updated. The proposed dependency graph creation approach has been applied to a medium size open source microservice system with very promising results.