We are recently witnessing an increased adoption of microservice architectures by the industry for achieving scalability by functional decomposition, fault-tolerance by deployment of small and independent services, and polyglot persistence by the adoption of different database technologies specific to the needs of each service. Despite the accelerating industrial adoption and the extensive research on microservices, there is a lack of thorough investigation on the state of the practice and the major challenges faced by practitioners with regard to data management. To bridge this gap, this paper presents a detailed investigation of data management in microservices. Our exploratory study is based on the following methodology: we conducted a systematic literature review of articles reporting the adoption of microservices in industry, where more than 300 articles were filtered down to 11 representative studies; we analyzed a set of 9 popular open-source microservice-based applications, selected out of more than 20 open-source projects; furthermore, to strengthen our evidence, we conducted an online survey that we then used to cross-validate the findings of the previous steps with the perceptions and experiences of over 120 practitioners and researchers. Through this process, we were able to categorize the state of practice and reveal several principled challenges that cannot be solved by software engineering practices, but rather need system-level support to alleviate the burden of practitioners. Based on the observations we also identified a series of research directions to achieve this goal. Fundamentally, novel database systems and data management tools that support isolation for microservices, which include fault isolation, performance isolation, data ownership, and independent schema evolution across microservices must be built to address the needs of this growing architectural style.
翻译:最近,我们目睹该行业越来越多地采用微观服务结构,通过功能分解实现伸缩性,通过部署小型和独立服务进行过错容忍,通过采用适合每项服务需要的不同数据库技术,实现多球体的持久性。尽管工业采用速度加快,对微观服务进行了广泛研究,但对实践现状和从业者在数据管理方面面临的主要挑战缺乏彻底调查。为弥补这一差距,本文件详细调查了微观服务的数据管理。我们的探索研究基于以下方法:我们系统文献审查报告行业采用微观服务的文章,其中300多篇文章被过滤到11项代表性研究;我们分析了一套9种受欢迎的开放源微观服务应用程序,这些应用程序是从20多个开放源项目中挑选出来的;此外,为了加强我们的证据,我们进行了一项在线调查,我们随后用120多名从业者和研究人员的认知和经验对以往步骤的调查结果进行了交叉论证。通过这一研究,我们得以对行业采用微观服务方式报告,其中300多篇文章被过滤到有11项代表性的研究;我们分析了一套受欢迎的开放源软件应用应用软件,我们无法通过这一系统来消除这一系统上存在的缺陷。