论文标题
微服务分解通过整体的静态和动态分析
Microservice Decomposition via Static and Dynamic Analysis of the Monolith
论文作者
论文摘要
将整体软件系统迁移到微服务中需要分解技术查找并选择适当的服务边界。这些技术通常基于域知识,静态代码分析和非功能性要求,例如可维护性。在本文中,我们通过一种方法来介绍我们的经验,该方法通过对遗留软件系统的运行时行为进行动态分析,包括实时跟踪可视化,以支持分解为微服务。总体而言,我们的方法结合了微服务分解的既定分析技术,例如域驱动设计的有界环境模式,并通过动态软件可视化丰富了收集的信息,以识别适当的微服务边界。在与德国IT服务提供商Adesso SE合作的情况下,我们将方法应用于其现实词的Legacy Lottery Application | Focus中,以确定此分层整体企业Java系统的良好微服务分解。
Migrating monolithic software systems into microservices requires the application of decomposition techniquesto find and select appropriate service boundaries. These techniques are often based on domain knowledge, static code analysis, and non-functional requirements such as maintainability. In this paper, we present our experience with an approach that extends static analysis with dynamic analysis of a legacy software system's runtime behavior, including the live trace visualization to support the decomposition into microservices. Overall, our approach combines established analysis techniques for microservice decomposition, such as the bounded context pattern of domain-driven design, and enriches the collected information via dynamic software visualization to identify appropriate microservice boundaries. In collaboration with the German IT service provider adesso SE, we applied our approach to their real-word, legacy lottery application in|FOCUS to identify good microservice decompositions for this layered monolithic Enterprise Java system.