Context: A microservice architecture is composed of a set of small services, each running in its own process and communicating with lightweight mechanisms. Many aspects on architecting with microservices are still unexplored and existing research is still far from being crispy clear.
Objective: We aim at identifying, classifying, and evaluating the state of the art on architecting with microservices from the following perspectives: publication trends, focus of research, and potential for industrial adoption.
Method: We apply the systematic mapping methodology. We rigorously selected 103 primary studies and we defined and applied a classification framework to them for extracting key information for subsequent analysis. We synthesized the obtained data and produced a clear overview of the state of the art. Results: This work contributes with (i) a classification framework for research studies on architecting with microservices, (ii) a systematic map of current research of the field, (iii) an evaluation of the potential for industrial adoption of research results, and (iv) a discussion of emerging findings and implications for future research.
Conclusion: This study provides a solid, rigorous, and replicable picture of the state of the art on architecting with microservices. Its results can benefit both researchers and practitioners of the field.
Amazon, Netflix, LinkedIn, Spotify, SoundCloud and other companies (Fowler and Lewis, 2014; Villamizar et al., 2015; Yahia et al., 2016) have evolved their applications towards a microservice architecture (MSA). The most acknowledged definition of the microservices architectural style is the one provided by Fowler and Lewis (2014), which describes it as an approach for developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. Recently, the microservice architectural style has received significant attention from a research point of view. However, as of today it is difficult for both researchers and practitioners to have a clear view of existing research solutions for architecting with microservices. The goal of this paper is to characterize the current state of the art for understanding what we know about scientific research on architecting with microservices. For achieving this goal we designed and conducted a systematic mapping study methodology. Specifically, we select 103 primary studies from 532 potentially relevant papers, we rigorously define a classification framework for categorizing research results on architecting with microservices, and we apply it to the 103 primary studies. Finally, we synthesize the obtained data to produce a clear overview of the state of the art in architecting with microservices. Also, we assess how research results on architecting with microservices can be potentially transferred and adopted in industrial projects. This assessment can play the role of reference framework for acting towards a smoother transfer of research results to practice. The main contributions of this study include:
The main contributions of this paper are:
- a reusable framework for classifying, comparing, and evaluating architectural solutions, methods, and techniques (e.g., tactics, patterns, styles, views, models, reference architectures, or architectural languages) specific for microservices;
- an up-to-date map of the state of the art in architecting with microservices;
- an evaluation of the potential for industrial adoption of existing research results on architecting with microservices;
- an evidence-based discussion of the emerging research trends, patterns, and gaps, and their implications for future research on architecting with microservices.
This study is an extended version of our previous research on architecting with microservices (Di Francesco et al., 2017b). The novelties added in this study are: (i) the extension of the set of primary studies from 71 to 103 entries because now we cover publications until the beginning of May 2017, (ii) a more in-depth elaboration of the extracted data, (iii) an orthogonal analysis about the potential interactions between various parameters of the classification framework, (iv) the analysis of the research trends over the years. The audience of this study is composed of both (i) researchers interested to investigate on the microservices architectural style, and (ii) practitioners willing to understand and adopt existing research on architecting with microservices.
By following the suggestion in Dragoni et al. (2016), the purpose of this study is to provide a broad survey investigating relationships among research contributions on microservices. Specifically, we performed a systematic mapping of 103 primary studies and produced a clear overview of the state of the art on architecting with microservices. We have investigated the research on architecting with microservices under three main perspectives: publication trends, focus of research, and potential for industrial adoption. Using the data that we have extracted from the primary studies, we have performed both a vertical and horizontal analyses. Further, we have performed a detailed trend analysis on the data in order to understand how the research on architecting with microservices has been evolving over time. For each research question, the paper has already summarized (in the boxes titled Main findings) the findings we consider the most interesting. In addition, the following reports our key associated reflections. The scientific interest in microservices exploded in 2015 – hence we expect that the next few years will witness great advances. Our analysis shows that most papers discuss specific solutions and related validation, fact which calls for more fundamental research, reusable practices and lessons learned. Maybe due this bottom-up approach (generalizing from practical solutions), more fundamental principles and claimed benefits have still to be proven. Among them, our analysis of the research focus shows that the quality (and especially performance, functional suitability and maintainability) delivered by microservices architectures is a main research focus, but also yet to be proven; the promised flexibility might come to the cost of a much-higher complexity than expected; and the architecture practices upon which industry can rely are still to be identified. The pervasive role technology is playing in engineering for, and migrating toward, microservices will hopefully shape some of these architecture practices. For example, the increasing utilization of virtualization and containerization technologies might push microservices in the back-end to address, among others, scalability and elasticity concerns in cloud-based solutions. In a similar vein, the increasing popularity of mobile software might give raise to new microservice-based patterns for the front-end. Both are definitely directions deserving much-needed research. Finally, investigating the above-mentioned tradeoff between flexibility and complexity calls for intensive synergy between researchers and practitioners, especially because significant microservice-based systems must consist of much larger numbers of microservices than the toy examples covered by the publications so far.
The Kavian Scientific Research Association (KSRA) is a non-profit research organization to provide research / educational services in December 2013. The members of the community had formed a virtual group on the Viber social network. The core of the Kavian Scientific Association was formed with these members as founders. These individuals, led by Professor Siavosh Kaviani, decided to launch a scientific / research association with an emphasis on education.
KSRA research association, as a non-profit research firm, is committed to providing research services in the field of knowledge. The main beneficiaries of this association are public or private knowledge-based companies, students, researchers, researchers, professors, universities, and industrial and semi-industrial centers around the world.
Our main services Based on Education for all Spectrum people in the world. We want to make an integration between researches and educations. We believe education is the main right of Human beings. So our services should be concentrated on inclusive education.
The KSRA team partners with local under-served communities around the world to improve the access to and quality of knowledge based on education, amplify and augment learning programs where they exist, and create new opportunities for e-learning where traditional education systems are lacking or non-existent.
Journal of Systems and Software
PDF reference and original file: Click here