Fostering Microservice Maintainability Assurance through a Comprehensive Framework
本项目提出一个针对微服务架构的自动化评估框架,整合架构可视化、耦合检测、测试覆盖率测量和语义克隆识别等功能,有效提升了微服务系统的可维护性保障能力。
2024-07-23 cs.SE
Mono2Micro: A Practical and Effective Tool for Decomposing Monolithic Java Applications to Microservices
在将生产工作负载迁移到云端时,企业通常面临着将单片应用程序向微服务架构发展的艰巨任务。在IBM,我们开发了一个名为Mono2Micro的工具来帮助完成这项具有挑战性的任务。Mono2Micro执行时空分解,利用定义良好的业务用例和运行时调用关系来创建应用程序类的功能内聚分区。我们对Mono2Micro的初步评估显示了有希望的结果。Mono2Micro与其他分解技术相比表现如何,从业者如何看待该工具?本文介绍了Mono2Micro的技术基础,并给出了回答这两个问题的结果。为了回答第一个问题,我们在一组开源和专有Java应用程序上评估了Mono2Micro对四种现有技术的影响,并使用不同的指标来评估分解的质量和工具的效率。我们的研究结果表明,Mono2Micro在为问题领域定义的特定指标方面显着优于最先进的基线。为了回答第二个问题,我们对21位使用过Mono2Micro的不同行业的从业者进行了调查。这项研究突出了几个好处的工具,有趣的从业者的看法,并进一步改进的范围。总的来说,这些结果表明,Mono2Micro可以为从业者提供有价值的帮助,帮助他们创建功能内聚和可解释的微服务分解。
2021-09-14 cs.SE
An Empirical Study of Security Practices for Microservices Systems
尽管微服务系统有许多好处,但安全性一直是此类系统中的关键问题。有几个因素可以解释这种困难,包括微服务从业者在正确保护微服务系统方面的知识差距。为了(部分)弥合这一差距,我们进行了实证研究。我们首先手动分析了861个微服务安全点,包括来自10个GitHub开源微服务系统的567个问题,9个文档和3个wiki页面,以及306个关于微服务系统安全性的Stack Overflow帖子。在这项研究中,微服务安全点被称为“GitHub问题,Stack Overflow帖子,文档或需要5个或更多微服务安全段落的wiki页面”。我们的分析导致了28个微服务安全实践的目录。然后,我们对74位微服务从业者进行了一项调查,以评估这28种实践的有用性。我们的研究结果表明,调查受访者肯定了28种做法的有用性。我们相信,微服务安全实践目录可以作为微服务从业者的宝贵资源,以更有效地解决微服务系统中的安全问题。它还可以告知研究社区开发微服务特定安全实践和工具所需或较少探索的领域。
2022-11-18 cs.CR cs.SE
Benchmarking Data Management Systems for Microservices
针对现有微服务基准缺失实际数据管理挑战的问题,本文提出新型基准Online Marketplace,覆盖真实微服务核心数据管理需求,实验验证其可支撑关键特性测试,助力新型数据管理系统研发。
2024-05-19 cs.DB cs.SE
Data Management in Microservices: State of the Practice, Challenges, and Research Directions
微服务已经成为数据驱动应用程序的流行架构风格,因为它们能够在功能上将应用程序分解为小型和自治的服务,以实现数据库系统的可扩展性,强隔离性和针对每个服务的工作负载和数据格式的专业化。尽管这种架构风格在工业上的采用正在加速,但缺乏对实践状态和从业者在微服务中面临的数据管理挑战的调查。为了弥合这一差距,我们对报告采用微服务的代表性文章进行了系统的文献综述,我们分析了一组流行的开源微服务应用程序,并进行了一项在线调查,以交叉验证前面步骤的结果与120多位经验丰富的从业者和研究人员的看法和经验。通过这个过程,我们能够对微服务中数据管理的实践状态进行分类,并观察到几个无法单独通过软件工程实践解决的基本挑战,而是需要系统级支持来减轻从业者的负担。我们讨论了最先进的数据库系统在微服务方面的缺点,最后我们为面向微服务的数据库系统设计了一组功能。
2021-08-22 cs.DB cs.SE
Automated Identification of Security Discussions in Microservices Systems: Industrial Surveys and Experiments
缺乏对微服务特定安全挑战和解决方案的认识和了解,通常会导致微服务系统开发中的安全决策不明智。我们声称,识别和利用分散在现有微服务系统中的安全讨论可以部分弥补这一差距。我们将安全讨论定义为“开发人员讨论中的一段,其中包括与安全相关的设计决策、挑战或解决方案”。我们首先调查了67名从业者,发现保护微服务系统是一项独特的挑战,并且能够参与安全讨论对于做出安全决策非常有用。该调查还证实了可以自动识别此类安全讨论的潜在工具的实用性。我们开发了15个机器/深度学习模型来自动识别安全讨论。我们将这些模型应用于手动构建的数据集,该数据集包括4,813个安全讨论和12,464个非安全讨论。我们发现,所有的模型都可以有效地识别安全讨论:平均准确率为84.86%,召回率为72.80%,F1得分为77.89%,AUC为83.75%,G均值为82.77%。DeepM 1是一种深度学习模型,表现最好,在所有指标中均达到84%以上,并显著优于三个基线。最后,从验证调查中收集的从业者反馈显示,DeepM 1确定的安全讨论在实践中具有很好的应用前景。
2021-07-21 cs.SE
Comparing 2D and Augmented Reality Visualizations for Microservice System Understandability: A Controlled Experiment
基于微服务的系统通常很难理解,特别是当它们的规模增长时。抽象视图帮助实践者从一定的角度理解系统。交互式数据可视化的最新进展回避了一个问题,即用于可视化系统设计的已建立软件工程模型是否仍然是面向服务的微服务设计的最合适方法。我们最近的工作提出了在增强现实中为微服务呈现3D可视化。本文分析了这种方法是否带来任何好处,从业者在处理选定的体系结构问题,系统设计质量。为了这个目的,我们进行了一个控制实验,涉及20名参与者调查他们的表现,确定服务依赖,服务基数,和瓶颈。结果表明,3D使新手执行以及专家在检测服务依赖关系,特别是在大型系统中,而没有差异的服务基数和瓶颈的识别报告。我们建议行业和研究人员进一步研究AR用于微服务架构分析,特别是为了简化微服务项目中新开发人员的入职。
2023-03-03 cs.HC cs.SE
Facing the Giant: a Grounded Theory Study of Decision-Making in Microservices Migrations
背景:微服务迁移是具有挑战性且昂贵的项目,需要在多个维度上做出许多决策。现有的研究往往集中在技术问题和决策上(例如,如何拆分服务)。同样重要的组织或业务问题以及它们与技术方面的关系往往超出范围或处于高度抽象的层次。目的:在这项研究中,我们的目标是全面地绘制在微服务迁移项目的各个方面(包括但不限于技术方面)发生的决策。方法:我们在一项扎根理论访谈研究中调查了16个不同的迁移案例,其中19名参与者最近迁移到微服务。本研究通过利益攸关方及其决定,重点关注移徙的人的方面。结果:我们确定了3个决策过程,包括22个决策点和他们的替代方案。决策点与创建利益相关者参与和评估可行性、技术实施和组织结构调整有关。结论:我们的研究为迁移到微服务的决策提供了初步理论。它还为从业者提供了一个路线图,说明他们应该准备做出哪些决策,以及在迁移的哪个点上做出决策。
2021-07-12 cs.SE
Enhancing Trace Visualizations for Microservices Performance Analysis
微服务的性能分析可能是一项具有挑战性的任务,因为对这些系统的典型请求涉及跨独立服务和机器的多个远程过程调用(RPC)。从业者主要依靠分布式跟踪工具来密切监控微服务的性能。这些工具使从业者能够跟踪,收集和可视化RPC工作流和相关的事件,在个人的端到端请求的上下文中。虽然对于分析单个端到端请求是有效的,但当前的分布式跟踪可视化通常不能提供对系统整体性能的全面理解。为了解决这个问题,我们提出了一种新的可视化方法,使聚合性能分析多个端到端的请求。我们的方法建立在以前开发的技术比较请求对的结构差异,并将其扩展为聚合性能分析的请求集。本文介绍了我们的建议,并讨论了我们在开发这种创新方法的初步进展。
2023-02-24 cs.HC cs.PF cs.SE
Designing Microservice Systems Using Patterns: An Empirical Study on Quality Trade-Offs
提高敏捷性、自主性、可扩展性和可重用性的承诺使微服务架构成为开发大规模和云原生商业应用程序的\textit{de facto}标准。软件模式是一种重要的设计工具,通常它们的选择和组合的目标是获得一组期望的质量属性。然而,从研究的角度来看,许多模式还没有得到广泛的验证,对行业实践,使他们没有更多的有趣的理论。为了解决这个问题,我们调查了从业者如何看待14种模式对7个质量属性的影响。因此,我们进行了9次半结构化的访谈,以收集有关以下方面的行业专业知识:(1)软件模式的知识和采用,(2)模式的感知架构权衡,以及(3)专业人员用于测量质量属性的指标。我们发现,我们研究中报告的许多权衡与每个模式的文档相匹配,并确定了一些尚未报告的收益和痛苦,从而对微服务模式产生了新的见解。
2022-01-10 cs.SE
A Systematic Mapping Study on Microservices Architecture in DevOps
背景:近年来,在DevOps中应用微服务架构(MSA)受到了极大的关注。然而,没有对这一专题的研究状况进行全面审查。目的:这项工作旨在系统地识别,分析和分类DevOps中的MSA文献。方法:对2009年1月至2018年7月期间发表的文献进行了系统映射研究(SMS)。结果如下:(1)DevOps中MSA研究的三个主题是“DevOps中的微服务开发和操作”、“DevOps中基于MSA的系统的方法和工具支持”和“DevOps中MSA迁移经验”。(2)确定了他们在DevOps中实施MSA的解决方案中存在的24个问题。(3)MSA主要用方框和线条来描述。(4)在DevOps中使用MSA时,大多数质量属性都会受到积极影响。(5)收集了50个支持在DevOps中构建基于MSA的系统的工具。(6)MSA和DevOps的结合已经应用于广泛的应用领域。结论:这些结果和发现将有利于研究人员和从业人员进行进一步的研究,并为DevOps中的MSA问题带来更多专门的解决方案。
2020-08-18 cs.SE
Understanding the Issues, Their Causes and Solutions in Microservices Systems: An Empirical Study
Tampere University(坦佩雷大学);Wuhan University(武汉大学);University of Derby(德比大学);University of Oulu(奥卢大学);RMIT University(皇家墨尔本理工大学);University of Jyväskylä(于韦斯屈莱大学)
本研究通过实证分析揭示了微服务系统中常见问题、原因及解决方案,提出了技术债务、持续集成等关键问题维度,为下一代微服务系统工程提供研究框架。
2026-02-19 cs.SE
Experimental evaluation of architectural software performance design patterns in microservices
本文首次通过真实云环境实验评估微服务中三种架构设计模式对性能的影响,验证了基于模型的预测与实测结果基本一致,并强调理论模型需结合经验数据。
2024-08-20 cs.SE
Selecting third-party libraries: The practitioners' perspective
选择第三方库是几乎任何软件开发项目的基本要素。然而,决定选择哪些库是一个具有挑战性的实际问题。选择错误的库会在成本、时间和开发工作方面严重影响软件项目,影响的严重程度取决于库在软件架构中的角色。尽管遵循仔细的图书馆选择过程很重要,但在实践中,第三方图书馆的选择仍然是以临时的方式进行的,其中数十个因素在决定中发挥着影响作用。在本文中,我们研究的因素,影响图书馆的选择过程中,所感知的行业开发人员。为此,我们对来自11个不同企业的16名开发人员进行了一项横断面访谈研究,并调查了115名参与选择库的开发人员。我们系统地设计了一套全面的26个技术、人力和经济因素,供开发人员在选择软件库时考虑。其中八个因素是新的文献。我们将解释这些因素中的每一个,以及它们如何在决策中发挥作用。最后,我们讨论了我们的工作的图书馆维护人员,潜在的图书馆用户,包管理器开发人员和经验的软件工程研究人员的影响。
2020-09-09 cs.SE
Microservices and Real-Time Processing in Retail IT: A Review of Open-Source Toolchains and Deployment Strategies
该综述系统梳理 Apache Kafka、Spring Boot、MongoDB 与 Kubernetes 等开源工具链在零售实时微服务中的部署策略,总结其低延迟、容错与自动扩展价值。
2025-06-11 cs.DB cs.SE
Automated Microservice Pattern Instance Detection Using Infrastructure-as-Code Artifacts and Large Language Models
FEUP, INESC TEC(FEUP,INESC TEC);Utah Valley University(犹他山谷大学)
本文提出利用IaC artifacts和大语言模型自动化检测微服务模式实例,通过实验验证该方法在GitHub项目中的有效性,降低检测成本并扩大可检测模式范围。
2025-02-06 cs.AI cs.SE
Decision Models for Selecting Architecture Patterns and Strategies in Quantum Software Systems
School of Computer Science, Wuhan University(武汉大学计算机学院);Tampere University(坦佩雷大学);Massey University(梅西大学);RMIT University(皇家墨尔本理工大学);LUT University(拉彭兰塔-拉赫蒂理工大学);University of Oulu(奥卢大学);University of Derby(德比大学)
本研究针对量子软件系统的六大关键设计领域,基于挖掘研究与SLR数据构建决策模型,经30名从业者访谈验证,可助力其选择合适的架构模式与策略以应对设计挑战
2026-08-10 cs.SE
Capturing Software Architecture Knowledge for Pattern-Driven Design
软件架构是一个知识密集型领域。存储架构知识的一种机制是架构模式的识别和描述。对于软件架构师来说,选择架构模式是一项具有挑战性的任务,因为关于这些模式的知识分散在大量的文献中。方法:我们报告了一个系统的文献综述,目的是建立一个决策模型的建筑模式选择问题。此外,12个经验丰富的从业人员在软件生产组织评估的可用性和有用性提取的知识。\newline结果:概述了29种模式及其对40种质量属性的影响。此外,我们报告在哪些系统中的29种模式的应用,并在哪些组合。实践者证实,架构知识支持软件架构师的决策过程,为新问题选择一组模式。我们调查了建筑师选择模式的潜在趋势。结论:有了可用的知识,架构师可以更快地选择和消除模式组合来设计解决方案。拥有这些现成的知识可以支持软件架构师做出更高效和有效的设计决策,以满足他们的质量问题。
2020-05-17 cs.SE