一句话:提出基于 AST 的分布式微服务代码库静态分析工具,用于检测演化中的破坏性变更与反模式。
微服务架构将应用组织为松耦合、可独立部署的服务,但不同团队维护的服务之间仍存在依赖。当某个微服务的代码发生变更时,可能影响其他服务并在部署时引发破坏,削弱分布式演化过程中的韧性与稳定性;目前缺乏缓解破坏性变更的有效机制。本文介绍的工具面向微服务典型的组件化开发,通过健壮的 AST 解析对分布式代码库进行静态分析,采用统一中间表示和可复用搜索规则,以检测破坏性变更与反模式。当前演示聚焦 Java,并提供网站与视频教程,邀请社区扩展平台支持。
Most leading technology companies are already on the cloud and continue investing in cloud-native systems built on microservices. Despite the trajectory, we lack guidance and best practices when coping with the evolvability of microservice-based systems. In a microservice architecture, applications are structured as a collection of loosely coupled, independently deployable services, each responsible for a specific functionality. However, despite the isolated microservice codebases managed by distinct teams, dependencies exist across microservices. When changes to the microservice code are made, we risk impacting other services with the potential for breakage when these get deployed. This compromises resilience and undermines stability throughout the distributed evolution. Unfortunately, we lack effective mechanisms to mitigate breaking changes when they are introduced. Our tool performs a comprehensive distributed codebase analysis based on robust AST-parsing tailored to component-based development typical for microservices. Such state-of-the-art static analysis is a promising instrument to effectively detect breaking changes or anti-patterns. Given the plethora of platforms, our demonstration focuses on Java and invites contributors to broaden platform support, offering unified intermediate representation to facilitate analysis with reusable search rules. Website: cloudhubs.github.io/cimet/|Video tutorial: youtu.be/mKWueuln_80
@inproceedings{paperbot8943,
title = {Analyzing Evolution of Microservice-based Systems},
author = {Tomas Cerny and Gabriel Goulis and Samanta Perry and Malia Edmonds and Amr S. Abdelfattah and Matteo Esposito and Alexander Bakhtin and Valentina Lenarduzzi and Davide Taibi},
booktitle = {FSE},
year = {2025},
doi = {10.1145/3696630.3728575}
}