Microservices have become a popular architectural style for data-driven applications, given their ability to functionally decompose an application into small and autonomous services to achieve scalability, strong isolation, and specialization of database systems to the workloads and data formats of each service. Despite the accelerating industrial adoption of this architectural style, an investigation of the state of the practice and challenges practitioners face regarding data management in microservices is lacking. To bridge this gap, we conducted a systematic literature review of representative articles reporting the adoption of microservices, we analyzed a set of popular open-source microservice applications, and we conducted an online survey to cross-validate the findings of the previous steps with the perceptions and experiences of over 120 experienced practitioners and researchers. Through this process, we were able to categorize the state of practice of data management in microservices and observe several foundational challenges that cannot be solved by software engineering practices alone, but rather require system-level support to alleviate the burden imposed on practitioners. We discuss the shortcomings of state-of-the-art database systems regarding microservices and we conclude by devising a set of features for microservice-oriented database systems.
翻译:微观服务已成为数据驱动应用中流行的建筑风格,因为微观服务能够在功能上将一个应用程序分解成小型和自主服务,以实现可扩缩性、很强的孤立性,并使数据库系统专业化以适应每项服务的工作量和数据格式。尽管这种建筑风格在工业上得到加速采用,但对微观服务中数据管理做法的现状和从业者面临的挑战缺乏调查。为了缩小这一差距,我们对报告采用微观服务的代表性文章进行了系统化文献审查,我们分析了一套广受欢迎的开放源微观服务应用程序,我们进行了在线调查,以便根据120多名经验丰富的从业者和研究人员的看法和经验,对以往步骤的调查结果进行交叉验证。通过这一进程,我们得以对微观服务中的数据管理做法进行分类,并观察一些仅靠软件工程实践无法解决的基本挑战,而是需要系统一级的支持以减轻从业者的负担。我们讨论了在微观服务方面最先进的数据库系统的缺陷,我们最后通过为面向微观服务的数据库系统设计一套特征,对以前步骤的调查结果进行了交叉验证。