Published
Published
net/publication/318425527
CITATIONS READS
70 12,003
3 authors:
Sinem Guney
Atilim University
2 PUBLICATIONS 89 CITATIONS
SEE PROFILE
All content following this page was uploaded by Murat Koyuncu on 03 February 2020.
Abstract. The cloud is an emerging paradigm which leads the way for different
approaches and standards. The architectural styles are evolving based on the
requirements of the cloud as well. In recent years microservices is seen as the
architecture style for scalable, fast evolving cloud applications. As part of this
paper, a systematic mapping study was carried out around microservices. It is
aiming to find out the current trends around microservices, the motivation
behind microservices research, emerging standards and the possible research
gaps. The obtained results can help researchers and practitioner in software
engineering domain who want to be aware of new trends about SOA and cloud
computing.
1 Introduction Context
Fowler, “While there is no precise definition of this architectural style, there are certain
common characteristics around organization around business capability, automated
deployment, intelligence in the endpoints, and decentralized control of languages and
data” [1]. Another definition for microservices is “Microservices are small, autonomous
services that work together” [2].
The characteristics of the microservices are listed as follows [1]:
• Componentization via Services
• Organized around Business Capabilities
• Products not Projects
• Smart endpoints and dumb pipes
• Decentralized Governance
• Decentralized Data Management
• Infrastructure Automation
• Design for failure
• Evolutionary Design
The microservices are developed, deployed and maintained separately. This allows
the teams to be autonomous where they can decide on the technology to use which best
addresses the current needs of the business behavior. The language and the database
might be different from one microservice to another. They do not share data between
each other, instead they use Representational State Transfer (REST) protocol to
communicate to each other. The most important benefits of using microservices are
agility, autonomy, scalability, resilience and easy continuous deployment.
Even though microservices were first mentioned at [60] in 2010, the definition of
the microservice mentioned in that study does not totally map to the current
microservice definition in literature. The study carried out in 2010 [60] defines
microservices as light services using REST. It does not mention most of the charac-
teristics listed at [1]. Problem
There has been another systematic mapping carried out on microservices in 2016
[40]. In that study, the research questions are around the architectural diagrams used for
microservices’ representation, the quality attributes and the challenges. However, the
emerging standards and de facto tools are not mentioned.
In this paper, the aim is to not only analyze the emerging standards but also the
types of research conducted and the practical motivations around carrying out the
microservices architecture. Aim
2 Method
This study is conducted a systematic mapping as defined in [3] with one modification
(see Fig. 1). The modification is that, we carry out the keywording according to the
whole paper instead of keywording according to the abstract. The reason for the
modification to the original process is to enhance the classification criteria through
adding new areas.
A Systematic Literature Review on Microservices 205
The papers are evaluated according to the inclusion and exclusion criteria. The ones
which do not meet the criteria are excluded.
The inclusion criteria:
• All papers returned from the search criteria
Exclusion criteria:
• If the microservices is just mentioned in the research but the focus of the research is
not directly on microservices.
Out of 39, 2 papers were excluded based on the exclusion criteria [30, 41]. As a
result, 37 papers are included into the mapping process.
4 Keywording
• Capacity planning
• Configuration management
• Security and privacy assurance
• Fault management
Some of the research papers included in the current study are focusing on cloud
whereas some are not. As a result, the operational areas were modified to fit the needs
as follows:
• Cost comparison
• Availability/Resiliency
• Performance
• Security
• Test technique
• Functionality/Design
• Analytics/Monitoring
• Scalability
• Deployment
The answer for the second research question (RQ2) will be based on the modified
operational areas.
The results obtained from mapping are converted into different graphs and they are
given below in a way to answer the defined research questions.
RQ1: What type of research is conducted on microservices?
The papers are mapped to the research types as seen in Fig. 2. The most widely
used research type is Solution Proposal which is followed by Validation Research and
Evaluation Research.
The papers are classified according to the service types as seen in Fig. 3. Almost
half of the papers did not explicitly mention the service type they were targeting
208 H. Vural et al.
(represented as NA in the figure). SaaS by far the most common service type being
investigated. Also, some papers refer to more than one service type.
The bubble chart in Fig. 4 illustrates an analysis based on research types versus
service types. The figure shows that there are only two studies on IaaS investigation
regarding microservices. This is an expected outcome given that the microservices is a
high level architectural style. On the other hand, there is only one official philosophical
research papers on microservices. Most probably the reason is that the philosophical
A Systematic Literature Review on Microservices 209
statement of microservices was laid out by Lewis and Fowler [1] on 2014. Mostly, the
research is around Solution Proposal which do not explicitly call out the possible
service types applicable for that solution.
ValidaƟon Research
EvaluaƟon Research
Proposal of SoluƟon
Personal Experience
Opinion Paper
Philosophical Paper
RQ2: What are the main practical motivations behind microservices related research?
The papers are mapped to the operational areas and obtained results are shown in
Fig. 5. The main motives are around functionality followed by performance and test
techniques. Given that the microservices paradigm was first mentioned around 2014
and official research papers started to show up in 2015, it is natural to expect the
functionality be main concerns of research.
210 H. Vural et al.
Figure 6 aims to answer if the study has empirical results or not. Our analysis
shows that the empirical studies are currently small in amount. Figure 7 illustrates an
analysis based on operational areas versus service types. The most remarkable point is
that most of the studies focus on the functionality/design issues. Figure 8 shows if there
is a new solution proposed and/or implemented. As seen in the figure, most of the
Test Technique
Security
Scalability
Performance
FuncƟonality/Design
Deployment
Cost Comparison
Availability/Resiliency
AnalyƟcs/Monitoring
research propose new solutions. Another noticeable point is that the implementation
ratio of new solutions is higher than the implementation ratio of existing solutions.
RQ3: What are the emerging standards and de facto tools on microservices solutions?
The occurrence of standards proposed or implemented in the research papers
included into the systematic mapping can be seen in Fig. 9. The figure includes all the
standards either implemented or proposed in systematic mapping papers. As clearly
seen in the figure, REST can be called out as the standard for Microservices, even
though there is one outlier paper which used non-REST protocol in their study [28].
212 H. Vural et al.
Only Swagger is used for microservice markup language. It is interesting to see that
WADL or API Blueprint is not mentioned.
The occurrence of tools used in proposed or implemented solutions can be found in
Fig. 10. Docker is seen as the most frequently used tool in studies.
The microservices topic is new and the official research started to show up in
research papers in 2015. As a result, it is expected for the number of research on
microservices to increase over time. Figure 11 shows publication numbers over time.
The last search was carried out on the Web of Science in January 2017. On the figure,
A Systematic Literature Review on Microservices 213
Fig. 11. Number of microservices papers over time without applying exclusion criteria
(searched on January 20, 2017)
the line shows the trend. It is seen that the amount of papers increases radically and the
trend line is going up.
The term microservices was first appeared in 2014. All academic papers about
microservices belong to 2015 and 2016. From that, we conclude that it is completely a
new topic.
Considering the mapping results, we can conclude that microservices is a trending
topic and our prediction is that we will see increasing trend in the near future.
Another important conclusion that we draw from the systematic mapping is that
there are not enough empirical studies to clarify many issues under discussion related to
microservices. Also, there is no research specifically targeting the fragile points of
microservices such as distributed transactions.
References
1. Lewis, J., Fowler, M.: “Microservices” martinfowler.com. http://martinfowler.com/articles/
microservices.html. Accessed 20 Dec 2016
2. Newman, S.: Building Microservices. O’Reilly Media, Inc., Sebastopol (2015)
3. Petersen, K., Feldt, R., Mujtaba, S., Mattsson, M.: Systematic mapping studies in software
engineering. In: 12th International Conference on Evaluation and Assessment in Software
Engineering, vol. 17, p. 1 (2008)
4. Dl.acm.org: ACM Digital Library (2016). http://dl.acm.org/dl.cfm. Accessed 05 Jan 2016
5. Citeseerx.ist.psu.edu: CiteSeerX (2016). http://citeseerx.ist.psu.edu/. Accessed 05 Jan 2016
6. Search.ebscohost.com: Computer Source (2016). http://search.ebscohost.com/login.aspx?
authtype=ip,uid&profile=ehost&defaultdb=cph. Accessed 05 Jan 2016
214 H. Vural et al.
26. Malavalli, D., Sathappan, S.: Scalable microservice based architecture for enabling DMTF
profiles. In: 2015 11th International Conference on Network and Service Management
(CNSM) (2015)
27. Krylovskiy, A., Jahn, M., Patti, E.: Designing a smart city internet of things platform with
microservice architecture. In: 2015 3rd International Conference on Future Internet of
Things and Cloud (2015)
28. Ciuffoletti, A.: Automated deployment of a microservice-based monitoring infrastructure.
Procedia Comput. Sci. 68, 163–172 (2015)
29. Meinke, K., Nycander, P.: Learning-based testing of distributed microservice architectures:
correctness and fault injection. In: Bianculli, D., Calinescu, R., Rumpe, B. (eds.) SEFM
2015. LNCS, vol. 9509, pp. 3–10. Springer, Heidelberg (2015). doi:10.1007/978-3-662-
49224-6_1
30. Pahl, C., Jamshidi, P.: Software architecture for the cloud – a roadmap towards
control-theoretic, model-based cloud architecture. In: Weyns, D., Mirandola, R., Crnkovic,
I. (eds.) ECSA 2015. LNCS, vol. 9278, pp. 212–220. Springer, Cham (2015). doi:10.1007/
978-3-319-23727-5_17
31. Nicolaescu, P., Klamma, R.: A methodology and tool support for widget-based web
application development. In: Cimiano, P., Frasincar, F., Houben, G.-J., Schwabe, D. (eds.)
ICWE 2015. LNCS, vol. 9114, pp. 515–532. Springer, Cham (2015). doi:10.1007/978-3-
319-19890-3_33
32. Koren, I., Nicolaescu, P., Klamma, R.: Collaborative drawing annotations on web videos. In:
Cimiano, P., Frasincar, F., Houben, G.-J., Schwabe, D. (eds.) ICWE 2015. LNCS, vol. 9114,
pp. 671–674. Springer, Cham (2015). doi:10.1007/978-3-319-19890-3_54
33. Wikipedia: Cloud computing (2016). https://en.wikipedia.org/wiki/Cloud_computing.
Accessed 05 Jan 2016
34. Fatema, K., Emeakaroha, V., Healy, P., Morrison, J., Lynn, T.: A survey of cloud
monitoring tools: taxonomy, capabilities and objectives. J. Parallel Distrib. Comput. 74(10),
2918–2933 (2014)
35. Wieringa, R., Maiden, N., Mead, N., Rolland, C.: Requirements engineering paper
classification and evaluation criteria: a proposal and a discussion. Requirements Eng. 11(1),
102–107 (2005)
36. Are Gartner’s Predictions on Track - Gartner’s Top 10 Strategic Technology Trends for
2016: At a Glance from October 6, 2015 (2016). https://www.linkedin.com/pulse/how-well-
did-gartner-do-prediction-gartners-top-10-strategic?trk=pulse-det-nav_art. Accessed 20 Dec
2016
37. Sommerville, I.: Software Engineering, 10th edn. Pearson, London (2016). (Chap. 18)
38. Braun, E., Düpmeier, C., Kimmig, D., Schillinger, W., Weissenbach, K.: Generic web
framework for environmental data visualization. In: Wohlgemuth, V., Fuchs-Kittowski, F.,
Wittmann, J. (eds.) Advances and New Trends in Environmental Informatics. PI, pp. 289–
299. Springer, Cham (2017). doi:10.1007/978-3-319-44711-7_23
39. Linthicum, D.: Practical use of microservices in moving workloads to the cloud. IEEE Cloud
Comput. 3(5), 6–9 (2016)
40. Alshuqayran, N., Ali, N., Evans, R.: A systematic mapping study in microservice
architecture. In: 2016 IEEE 9th International Conference on Service-Oriented Computing
and Applications (SOCA) (2016)
41. Inagaki, T., Ueda, Y., Ohara, M.: Container management as emerging workload for
operating systems. In: 2016 IEEE International Symposium on Workload Characterization
(IISWC) (2016)
42. Ueda, T., Nakaike, T., Ohara, M.: Workload characterization for microservices. In: 2016
IEEE International Symposium on Workload Characterization (IISWC) (2016)
216 H. Vural et al.
43. Florio, L., Nitto, E.: Gru: an approach to introduce decentralized autonomic behavior in
microservices architectures. In: 2016 IEEE International Conference on Autonomic
Computing (ICAC) (2016)
44. Gadea, C., Trifan, M., Ionescu, D., Ionescu, B.: A reference architecture for real-time
microservice API consumption. In: Proceedings of the 3rd Workshop on CrossCloud
Infrastructures & Platforms - CrossCloud 2016 (2016)
45. Renz, J., Hoffmann, D., Staubitz, T., Meinel, C.: Using A/B testing in MOOC environments.
In: Proceedings of the Sixth International Conference on Learning Analytics & Knowledge -
LAK 2016 (2016)
46. Hasselbring, W.: Microservices for scalability. In: Proceedings of the 7th ACM/SPEC on
International Conference on Performance Engineering - ICPE 2016 (2016)
47. Scarborough, W., Arnold, C., Dahan, M.: Case study. In: Proceedings of the XSEDE16 on
Diversity, Big Data, and Science at Scale – XSEDE 2016 (2016)
48. Kecskemeti, G., Marosi, A., Kertesz, A.: The ENTICE approach to decompose monolithic
services into microservices. In: 2016 International Conference on High Performance
Computing and Simulation (HPCS) (2016)
49. Barais, O., Bourcier, J., Bromberg, Y., Dion, C.: Towards microservices architecture to
transcode videos in the large at low costs. In: 2016 International Conference on
Telecommunications and Multimedia (TEMU) (2016)
50. Kang, H., Le, M., Tao, S.: Container and microservice driven design for cloud infrastructure
DevOps. In: 2016 IEEE International Conference on Cloud Engineering (IC2E) (2016)
51. Messina, A., Rizzo, R., Storniolo, P., Tripiciano, M., Urso, A.: The database-is-the-service
pattern for microservice architectures. In: Renda, M.E., Bursa, M., Holzinger, A., Khuri, S.
(eds.) ITBAM 2016. LNCS, vol. 9832, pp. 223–233. Springer, Cham (2016). doi:10.1007/
978-3-319-43949-5_18
52. Hassan, S., Bahsoon, R.: Microservices and their design trade-offs: a self-adaptive
roadmap. In: 2016 IEEE International Conference on Services Computing (SCC) (2016)
53. Bogner, J., Zimmermann, A.: Towards integrating microservices with adaptable enterprise
architecture. In: 2016 IEEE 20th International Enterprise Distributed Object Computing
Workshop (EDOCW) (2016)
54. Kratzke, N., Peinl, R.: ClouNS - a cloud-native application reference model for enterprise
architects. In: 2016 IEEE 20th International Enterprise Distributed Object Computing
Workshop (EDOCW) (2016)
55. Thiele, T., Sommer, T., Stiehm, S., Jeschke, S., Richert, A.: Exploring research networks
with data science: a data-driven microservice architecture for synergy detection. In: 2016
IEEE 4th International Conference on Future Internet of Things and Cloud Workshops
(FiCloudW) (2016)
56. Qanbari, S., Pezeshki, S., Raisi, R., Mahdizadeh, S., Rahimzadeh, R., Behinaein, N.,
Mahmoudi, F., Ayoubzadeh, S., Fazlali, P., Roshani, K., Yaghini, A., Amiri, M.,
Farivarmoheb, A., Zamani, A., Dustdar, S.: IoT design patterns: computational constructs
to design, build and engineer edge applications. In: 2016 IEEE First International
Conference on Internet-of-Things Design and Implementation (IoTDI) (2016)
57. Guo, D., Wang, W., Zeng, G., Wei, Z.: Microservices architecture based cloudware
deployment platform for service computing. In: 2016 IEEE Symposium on Service-Oriented
System Engineering (SOSE) (2016)
58. Safina, L., Mazzara, M., Montesi, F., Rivera, V.: Data-driven workflows for microservices:
genericity in jolie. In: 2016 IEEE 30th International Conference on Advanced Information
Networking and Applications (AINA) (2016)
A Systematic Literature Review on Microservices 217
59. Kratzke, N.: About microservices, containers and their underestimated impact on network
performance. In: 6th International Conference on Cloud Computing, GRIDs, and
Virtualization (CLOUD COMPUTING) (2015)
60. Fernandez-Villamor, J.I., Iglesias, C., Garijo, M.: MICROSERVICES lightweight service
descriptions for rest architectural style. In: 2nd International Conference on Agents and
Artificial Intelligence (ICAART 2010) (2010)