Microservice architectures promote small, independently developed services, but increase overall architectural complexity. It is crucial that developers understand the architecture and how changes to a service affect the overall system, but rapid and independent development of services increases the risk of architectural drift and discourages the creation and maintenance of documentation. Automatic architecture reconstruction can help avoid these issues, but it is difficult to reuse reconstruction code across multiple projects, as all use different combinations of technologies and project-specific conventions. Reconstruction of architecture-level details is further complicated by the tendency to split microservices into separate repositories, preventing a full view of the system from any one codebase. In this paper, we present and evaluate ModARO, an approach to microservice architecture reconstruction that allows writing modular reconstruction code ('extractors') for any technologies and reusing them across different projects, independent of the surrounding technology stack or whether or not the services are split into multiple codebases. We demonstrate the effectiveness of our approach by configuring ModARO to reconstruct 10 open source projects, and we validate the usefulness and usability of ModARO against a state-of-the-art baseline in a user study with 8 industry practitioners. Using this approach, developers can assemble or create extractors tailored to their technology stacks and distribute architecture reconstruction across repositories, enabling integration into repository CI/CD pipelines.


翻译:微服务架构提倡小型、独立开发的服务,但同时也增加了整体架构的复杂性。开发者理解架构以及服务变更如何影响整个系统至关重要,然而服务的快速独立开发增加了架构漂移的风险,并阻碍了文档的创建与维护。自动化的架构重构有助于避免这些问题,但重构代码在多个项目间难以复用,因为各项目采用不同的技术组合和项目特定的约定。此外,微服务往往被拆分至独立的代码仓库,导致无法从单一代码库获得系统的完整视图,这进一步增加了架构层面细节重构的复杂性。本文提出并评估了 ModARO,这是一种微服务架构重构方法,允许为任意技术编写模块化的重构代码(“提取器”),并在不同项目中复用,且不受周边技术栈或服务是否被拆分至多个代码库的影响。我们通过配置 ModARO 重构 10 个开源项目来验证该方法的有效性,并在一项有 8 位行业从业者参与的用户研究中,将 ModARO 与当前最先进的基线方法进行对比,验证了其实用性与可用性。采用此方法,开发者能够组装或创建适配其技术栈的提取器,并在多个仓库间分布式地进行架构重构,从而支持集成到仓库的 CI/CD 流水线中。

0
下载
关闭预览

相关内容

代码(Code)是专知网的一个重要知识资料文档板块,旨在整理收录论文源代码、复现代码,经典工程代码等,便于用户查阅下载使用。
Agent+Copilot:大模型在智能运维领域的应用
专知会员服务
59+阅读 · 2024年8月11日
国家标准《信息技术云计算参考架构》
专知会员服务
35+阅读 · 2024年5月24日
【2022新书】构建微服务:设计细粒度系统,615页pdf
专知会员服务
91+阅读 · 2022年9月4日
专知会员服务
31+阅读 · 2020年12月21日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
阿里巴巴全球化架构设计挑战
InfoQ
36+阅读 · 2019年11月25日
分布式核心技术知识图谱,带走不谢
架构师之路
12+阅读 · 2019年9月23日
前端微服务在字节跳动的落地之路
前端之巅
41+阅读 · 2019年9月19日
【数据中台】什么是数据中台?
产业智能官
18+阅读 · 2019年7月30日
阿里技术大牛:一份架构师成神路线图!
51CTO博客
31+阅读 · 2019年7月6日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
React Native 分包哪家强?看这文就够了!
程序人生
13+阅读 · 2019年1月16日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
VIP会员
相关资讯
阿里巴巴全球化架构设计挑战
InfoQ
36+阅读 · 2019年11月25日
分布式核心技术知识图谱,带走不谢
架构师之路
12+阅读 · 2019年9月23日
前端微服务在字节跳动的落地之路
前端之巅
41+阅读 · 2019年9月19日
【数据中台】什么是数据中台?
产业智能官
18+阅读 · 2019年7月30日
阿里技术大牛:一份架构师成神路线图!
51CTO博客
31+阅读 · 2019年7月6日
工行基于MySQL构建分布式架构的转型之路
炼数成金订阅号
15+阅读 · 2019年5月16日
使用 Canal 实现数据异构
性能与架构
20+阅读 · 2019年3月4日
React Native 分包哪家强?看这文就够了!
程序人生
13+阅读 · 2019年1月16日
相关基金
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
2+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员