In recent years, the detection of anti-patterns in microservice architecture has gained traction, particularly to identify instances of Microservice Architectural Degradation. In such tasks, the microservice architecture is often modeled as a network of microservice dependencies. Recent works have explored how to assess the evolution of such architectural networks by considering the architecture of consecutive releases of the project. Particular anti-patterns related to the structure of the service network include Wrong cuts and Knot services. Community detection is a way to identify groups of services in a network that strongly depend on each other. If such groups cannot be mapped to business processes in the system, or if the same service belongs to multiple communities, this could indicate architectural degradation due to an inappropriate division of responsibilities or unoptimized communication. Temporal community detection methods have been proposed to analyze community structure that evolves in time. We performed temporal community detection within the microservice architecture of six releases of the train-ticket benchmark and analyzed the composition of the discovered communities and their activities over time. We observed a stable architecture with a clear separation of services into two communities, which we could identify with two business processes performed by the system. We found services belonging to several communities, as well as services within the same community with both incoming and outgoing connections. The membership strength metric provided by the leveraged algorithm enables fine-grained assessment of the microservice communities.
翻译:近年来,微服务架构中反模式的检测日益受到关注,尤其是识别微服务架构退化实例。在此类任务中,微服务架构通常被建模为微服务依赖关系网络。近期研究通过考量项目连续发布的架构,探索了如何评估此类架构网络的演化过程。与服务网络结构相关的特定反模式包括错误切割和结服务。社区检测是一种识别网络中相互强依赖服务群体的方法。若此类群体无法映射到系统的业务流程,或同一服务属于多个社区,则可能表明因职责划分不当或通信未优化导致的架构退化。为分析时变的社区结构,已有研究提出时序社区检测方法。本研究针对train-ticket基准六个版本的微服务架构执行时序社区检测,分析了所发现社区的组成及其随时间的动态变化。我们观察到稳定的架构中,服务被清晰划分为两个社区,并可将其与系统执行的两项业务流程相对应。研究发现存在跨社区归属的服务,以及同一社区内兼具入向与出向连接的服务。所采用算法提供的隶属强度指标,能够实现对微服务社区的细粒度评估。