In migrating production workloads to cloud, enterprises often face the daunting task of evolving monolithic applications toward a microservice architecture. At IBM, we developed a tool called Mono2Micro to assist with this challenging task. Mono2Micro performs spatio-temporal decomposition, leveraging well-defined business use cases and runtime call relations to create functionally cohesive partitioning of application classes. Our preliminary evaluation of Mono2Micro showed promising results. How well does Mono2Micro perform against other decomposition techniques, and how do practitioners perceive the tool? This paper describes the technical foundations of Mono2Micro and presents results to answer these two questions. To answer the first question, we evaluated Mono2Micro against four existing techniques on a set of open-source and proprietary Java applications and using different metrics to assess the quality of decomposition and tool's efficiency. Our results show that Mono2Micro significantly outperforms state-of-the-art baselines in specific metrics well-defined for the problem domain. To answer the second question, we conducted a survey of twenty-one practitioners in various industry roles who have used Mono2Micro. This study highlights several benefits of the tool, interesting practitioner perceptions, and scope for further improvements. Overall, these results show that Mono2Micro can provide a valuable aid to practitioners in creating functionally cohesive and explainable microservice decompositions.
翻译:在将生产工作量迁移到云层的过程中,企业往往面临向微观服务结构发展单一应用的艰巨任务。在IBM中,我们开发了一个名为Monot2Micro的工具来协助完成这项具有挑战性的任务。 Mono2Micro 使用一个开放源码和专有爪哇应用程序中的四种现有技术,利用定义明确的商业使用案例和运行时间呼唤关系来建立功能上一致的应用类分隔。我们对Monoto2Micro的初步评价显示了有希望的结果。Monoto2Micro与其他分解技术相比,如何运行该工具?本文描述了Moto2Micro的技术基础,并提出了回答这两个问题的结果。为了回答第一个问题,我们评估了Monno2Micro在开放源码和专利爪哇应用程序中的四种现有技术,并利用不同的计量来评估分解质量和工具的效率。我们的结果显示,Monot2Micro在为问题领域定义得分辨的具体目标中,Monno2Mic-Micro 如何表现了现状,我们为各种行业角色中的21个从业人员进行了调查,他们运用了具有价值的系统化工具,可以进一步展示了这些工具。