Industry practices and challenges for the evolvability assurance of microservices

Industry practices and challenges for the evolvability assurance of microservices
复制标题

微服务可演进性保障的行业实践与挑战

DOI:
10.1007/s10664-021-09999-9
复制
发表时间:
2021
影响因子:
4.1
通讯作者:
A. Zimmermann
A. Zimmermann
中科院分区:
计算机科学2区
文献类型:
--
作者:
J. Bogner;J. Fritzsch;S. Wagner;A. Zimmermann

文献摘要

被引文献

相似文献

微服务作为一种轻量级、去中心化的架构风格,具有细粒度的服务,为软件的长期可持续发展提供了一些有益的特征。 Netflix、Amazon 或 Spotify 等早期采用者的成功案例表明,这些系统可以实现高度的灵活性和可进化性。然而,所描述的优势特征没有提供具体的指导,并且人们对工业中微服务的可演化性保证流程以及该领域的挑战知之甚少。洞察当前的实践状况是该领域相关研究的非常重要的前提。因此,我们想探索从业者如何构建微服务的可进化性保证流程,他们使用哪些工具、指标和模式,以及他们认为系统的可进化性面临哪些挑战。我们首先进行了 17 次半结构化访谈,并与来自 10 家公司的软件专业人员讨论了 14 种不同的基于微服务的系统及其保证流程。随后,我们进行了系统的灰色文献综述(GLR),并使用创建的访谈编码系统分析了 295 个从业者在线资源。综合分析揭示了在权力下放和标准化之间找到合理平衡的重要性。像架构原则这样的指导方针被认为对于确保可演化性的基本一致性很有价值,而专门的测试自动化是一个普遍的主题。源代码质量是我们访谈参与者使用工具和指标的主要目标,而测试工具和生产力指标是我们 GLR 资源的重点。在这两项研究中,从业者都没有提及架构或面向服务的工具和指标,尽管服务切割或微服务集成等最关键的挑战具有架构性质。从业者依靠指南、标准化或事件驱动消息传递等模式来部分解决一些报告的可演化性挑战。然而,需要专门的技术、工具和指标来支持行业对服务粒度和依赖性的持续评估。未来在维护、演进和技术债务领域的微服务研究应该考虑我们的发现和报告的行业情绪。
Microservices as a lightweight and decentralized architectural style with fine-grained services promise several beneficial characteristics for sustainable long-term software evolution. Success stories from early adopters like Netflix, Amazon, or Spotify have demonstrated that it is possible to achieve a high degree of flexibility and evolvability with these systems. However, the described advantageous characteristics offer no concrete guidance and little is known about evolvability assurance processes for microservices in industry as well as challenges in this area. Insights into the current state of practice are a very important prerequisite for relevant research in this field. We therefore wanted to explore how practitioners structure the evolvability assurance processes for microservices, what tools, metrics, and patterns they use, and what challenges they perceive for the evolvability of their systems. We first conducted 17 semi-structured interviews and discussed 14 different microservice-based systems and their assurance processes with software professionals from 10 companies. Afterwards, we performed a systematic grey literature review (GLR) and used the created interview coding system to analyze 295 practitioner online resources. The combined analysis revealed the importance of finding a sensible balance between decentralization and standardization. Guidelines like architectural principles were seen as valuable to ensure a base consistency for evolvability and specialized test automation was a prevalent theme. Source code quality was the primary target for the usage of tools and metrics for our interview participants, while testing tools and productivity metrics were the focus of our GLR resources. In both studies, practitioners did not mention architectural or service-oriented tools and metrics, even though the most crucial challenges like Service Cutting or Microservices Integration were of an architectural nature. Practitioners relied on guidelines, standardization, or patterns like Event-Driven Messaging to partially address some reported evolvability challenges. However, specialized techniques, tools, and metrics are needed to support industry with the continuous evaluation of service granularity and dependencies. Future microservices research in the areas of maintenance, evolution, and technical debt should take our findings and the reported industry sentiments into account.