Many small to large organizations have adopted the Microservices Architecture (MSA) style to develop and deliver their core businesses. Despite the popularity of MSA in the software industry, there is a limited evidence-based and thorough understanding of the types of issues (e.g., errors, faults, failures, and bugs) that microservices system developers experience, the causes of the issues, and the solutions as potential fixing strategies to address the issues. To ameliorate this gap, we conducted a mixed-methods empirical study that collected data from 2,641 issues from the issue tracking systems of 15 open-source microservices systems on GitHub, 15 interviews, and an online survey completed by 150 practitioners from 42 countries across 6 continents. Our analysis led to comprehensive taxonomies for the issues, causes, and solutions. The findings of this study inform that Technical Debt, Continuous Integration and Delivery, Exception Handling, Service Execution and Communication, and Security are the most dominant issues in microservices systems. Furthermore, General Programming Errors, Missing Features and Artifacts, and Invalid Configuration and Communication are the main causes behind the issues. Finally, we found 177 types of solutions that can be applied to fix the identified issues. Based on our study results, we formulated future research directions that could help researchers and practitioners to engineer emergent and next-generation microservices systems.
翻译:许多小到大的组织都采用了微服务架构(MSA)的风格来发展和交付核心业务。尽管软件业的MSA系统很受欢迎,但对微服务系统开发者所经历的问题类型(例如错误、错误、故障、故障和错误)的循证和透彻理解有限,微服务系统开发者对问题类型(例如错误、错误、故障、故障和错误)的了解有限,微服务系统开发者对问题的经验、问题的原因以及解决办法作为解决问题的潜在确定战略。为了缩小这一差距,我们进行了混合方法经验研究,从GitHub15个开放源微观服务系统的问题跟踪系统中收集了2 641个问题的数据,进行了15次访谈,6个大陆42个国家的150名从业人员完成了在线调查。我们的分析导致对问题、原因和解决方案的全面分类。研究结果表明,技术债务、持续整合和交付、例外处理、服务执行和通信以及安全是微服务系统中最突出的问题。此外,总体规划错误、缺失的功能特征和艺术行为以及无效的配置和通信是问题背后的主要原因。最后,我们找到了177类的微观研究人员的研究方向,我们找到了未来研究可以用于更新研究。