一句话:提出基于追踪数据的微服务架构度量方法,定义14项指标评估服务独立性与调用链复杂度。
微服务架构设计高度依赖专家经验,常导致服务拆分不当,且架构会随服务持续演化而退化,因此架构度量对长期演化至关重要。由于服务独立且动态,仅靠源码分析难以捕捉服务间交互。本文提出基于追踪分析的微服务架构度量方法,定义追踪数据模型,支持对请求执行过程以及接口与服务间交互的细粒度分析;基于该模型定义14个架构指标,用于度量服务独立性和调用链复杂度。作者实现该方法,并在学生课程项目、开源微服务基准系统和三个工业微服务系统上开展案例研究。结果表明,该方法能较好刻画微服务架构的独立性与调用链复杂度,帮助开发者识别由不当服务拆分和架构退化引起的问题。
Microservice architecture design highly relies on expert experience and may often result in improper service decomposition. Moreover, a microservice architecture is likely to degrade with the continuous evolution of services. Architecture measurement is thus important for the long-term evolution of microservice architectures. Due to the independent and dynamic nature of services, source code analysis based approaches cannot well capture the interactions between services. In this paper, we propose a trace analysis based microservice architecture measurement approach. We define a trace data model for microservice architecture measurement, which enables fine-grained analysis of the execution processes of requests and the interactions between interfaces and services. Based on the data model, we define 14 architectural metrics to measure the service independence and invocation chain complexity of a microservice system. We implement the approach and conduct three case studies with a student course project, an open-source microservice benchmark system, and three industrial microservice systems. The results show that our approach can well characterize the independence and invocation chain complexity of microservice architectures and help developers to identify microservice architecture issues caused by improper service decomposition and architecture degradation.
DOI 原文 ·
@inproceedings{paperbot7072,
title = {Trace analysis based microservice architecture measurement},
author = {Xin Peng and Chenxi Zhang and Zhongyuan Zhao and Akasaka Isami and Xiaofeng Guo and Yunna Cui},
booktitle = {FSE},
year = {2022},
doi = {10.1145/3540250.3558951}
}