当前位置: X-MOL 学术Empir. Software Eng. › 论文详情
Our official English website, www.x-mol.net, welcomes your feedback! (Note: you will need to create a separate account there.)
Promises and challenges of microservices: an exploratory study
Empirical Software Engineering ( IF 4.1 ) Pub Date : 2021-05-05 , DOI: 10.1007/s10664-020-09910-y
Yingying Wang , Harshavardhan Kadiyala , Julia Rubin

Microservice-based architecture is a SOA-inspired principle of building complex systems as a composition of small, loosely coupled components that communicate with each other using language-agnostic APIs. This architectural principle is now becoming increasingly popular in industry due to its advantages, such as greater software development agility and improved scalability of deployed applications. In this work, we aim at collecting and categorizing best practices, challenges, and some existing solutions for these challenges employed by practitioners successfully developing microservice-based applications for commercial use. Specifically, we focus our study on “mature” teams developing microservice-based applications for at least two years, explicitly excluding “newcomers” to the field. We conduct a broad, mixed-method study that includes in-depth interviews with 21 practitioners and a follow-up online survey with 37 respondents, covering 37 companies in total. Our study shows that, in several cases, practitioners opt to deviate from the “standard” advice, e.g., instead of splitting microservices by business capabilities, they focus on resource consumption and intended deployment infrastructure. Some also choose to refrain from using multiple programming languages for implementing their microservices, as that practice hinders reuse opportunities. In fact, our study participants identified robust and shared infrastructural support established early on in the development process as one of the main factors contributing to their success. They also identified several pressing challenges related to the efficient managing of common code across services and the support of product variants. The results of our study can benefit practitioners who are interested to learn from each other, borrow successful ideas, and avoid common mistakes. It can also inform researchers and inspire novel solutions to some of the identified challenges.



中文翻译:

微服务的前景和挑战:一项探索性研究

基于微服务的体系结构受SOA启发,将复杂的系统构建为由松散耦合的小型组件组成的组件,这些组件使用与语言无关的API相互通信。由于其优势,例如更大的软件开发敏捷性和已部署应用程序的改进可伸缩性,该体系结构原理现在在行业中变得越来越流行。在这项工作中,我们旨在收集和分类最佳实践,挑战以及针对从业者成功开发出基于微服务的商业化应用所采用的这些挑战的一些现有解决方案。具体来说,我们将研究重点放在开发基于微服务的应用程序的“成熟”团队至少两年,明确将“新手”排除在外。我们进行广泛,混合方法研究,其中包括对21名从业人员的深入访谈和对37名受访者的后续在线调查,涵盖了总共37家公司。我们的研究表明,在某些情况下,从业者选择偏离“标准”建议,例如,他们专注于资源消耗和预期的部署基础架构,而不是按业务能力划分微服务。一些人还选择避免使用多种编程语言来实现其微服务,因为这种做法会阻碍重用机会。实际上,我们的研究参与者认为,在开发过程的早期就建立了强大而共享的基础设施支持,这是他们取得成功的主要因素之一。他们还确定了与跨服务的有效代码有效管理和产品变体的支持相关的几个紧迫挑战。我们的研究结果可以使有兴趣互相学习,借鉴成功想法并避免常见错误的从业者受益。它还可以为研究人员提供信息,并为发现的某些挑战提供新颖的解决方案。

更新日期:2021-05-06
down
wechat
bug