=Paper= {{Paper |id=Vol-2072/paper1 |storemode=property |title=Challenges of Microservices Architecture: A Survey on the State of the Practice |pdfUrl=https://ceur-ws.org/Vol-2072/paper1.pdf |volume=Vol-2072 |authors=Javad Ghofrani,Daniel Lübke |dblpUrl=https://dblp.org/rec/conf/zeus/GhofraniL18 }} ==Challenges of Microservices Architecture: A Survey on the State of the Practice== https://ceur-ws.org/Vol-2072/paper1.pdf
      Challenges of Microservices Architecture:
       A Survey on the State of the Practice

                         Javad Ghofrani and Daniel Lübke

                 Leibniz Universtität Hannover, Hannover, Germany,
              {javad.ghofrani,daniel-luebke}@inf.uni-hannover.de



       Abstract. Microservices have been one of the fastest-rising trends in
       the development of enterprise applications and enterprise application
       landscapes. Even though various mapping studies investigated the open
       challenges around microservices from literature, it is difficult to have a
       clear view of existing challenges in designing, developing, and maintaining
       systems based on microservices architecture as it is perceived by practi-
       tioners. In this paper, we present the results of an empirical survey to
       assess the current state of practice and collect challenges in microservices
       architecture. Therefore, we synthesize the 25 collected results and produce
       a clear overview for answering our research questions. The result of our
       study can be a basis for planning future research and applications of
       microservices architecture.

       Keywords: Empirical software engineering, State of Practice, Microser-
       vices, Software Architecture


1    Introduction
Microservices architecture (MSA) is based on a share-nothing philosophy and
relies on a long evolving experience in software engineering and system design.
This architectural style structures a system as a set of loosely-coupled small
services which are isolated in small coherent and autonomous units [9].
     Many organizations, such as Amazon, Netflix, and the Guardian, utilize
MSA to develop their continuous delivery of large and complex applications
while providing flexibility and diversity of technology stack [2]. In addition to
structuring the development of the systems, design principles of MSA are used
to migrate systems with traditional architectural style into MSA. Since MSA
is still young, there are many open issues and optimization possibilities in this
field. Even though many research papers (e.g., Vural et al. [8]) tried to identify
the issues and proposed solutions from literature around MSA, many aspects
of the practical challenges in MSA are still unexplored. This makes it difficult
for researchers to have a realistic overview of the real challenges encountered in
practice related to MSA and their potential for academic and industrial adoption
[2]. The goal of this paper is to characterize the current state of the practice about
MSA and provide a complementary overview on the existing scientific research.
In order to achieve this goal, we conducted an online survey. Specifically, we




N. Herzberg, C. Hochreiner, O. Kopp, J. Lenhard (Eds.): 10th ZEUS Workshop, ZEUS 2018,
   Dresden, Germany, 8-9 February 2018, published at http://ceur-ws.org/Vol-2072
2      Ghofrani Javad and Daniel Lübke

selected three research questions related to the existing challenges and solutions
from MSA in the practice. RQ1: What are the main challenges/concerns in
the design and the development process of microservices? RQ2: What are the
main reasons leveraging and preventing the usage of systematic approaches in
microservices architectures? RQ3: Are there any suggestions or solutions from
the experts to improve aspects of the microservices architecture?
    The main contributions of this paper are: (i) providing an up-to-date map of
the state of the practice in MSA and its complexities for future research; (ii) an
evaluation of the potential research field on MSA. The audience of this paper
are both researchers interested to supplement and update their overview of most
recent challenges in this field for their future contributions as well as practitioners
interested to get an overview of existing challenges and solutions, thereby making
better decisions for their organization.
    The rest of the paper is organized as follows. Section 2 gives an overview on
the existing reviews from literature, whereas the design of our study is presented
in Section 3. We elaborate the results of our study in Section 4 by putting them
in a broader perspective for answering the proposed research questions. With
Section 5 we conclude the paper and discuss the future work. The full survey
data including the questionnaire and preprocessed results is shared and available
online [5].


2    Related Work
As described in the previous section, the existing academic studies reviewed
the literature to provide an overview of open challenges in MSA. There is no
academic survey on the state of the practice in MSA as of now. As a basis for
our study, we consider the following systematic literature reviews and mapping
studies conducted about state of the art in MSA.
    Pahl and Jamshidi [7], Alshuqayran et al. [1], and Di Francesco et al. [2]
conducted systematic mapping studies about MSA. Pahl and Jamshidi [7] inves-
tigated 21 publications until 2015 and reported the existing research trends and
directions in this field with regards to applications in the cloud. The informal
survey of Dragoni et al. [3] around MSA opens an academic viewpoint to the
open problems for novices. The main difference between our study and [1–3, 7]
is the research approach, which is used to provide an overview of open issues
and challenges in MSA. The previous approaches prefer the academical aspect
of existing literature while we explore the practical side of the domain. The
provided results by Pahl and Jamshidi [7] are subject to the passage of time
and are perhaps even outdated because of the fast progress of MSA’s underlying
technologies.


3    Study Design
Since surveys provide a better overview of usage of technology in the software
industry [4], we performed an online survey to get the practical picture of MSA.
              Challenges and Solutions of Microservices Architecture              3

We designed our survey in a brain storming session with a group of five researchers
and created a mind-map. We created a list of questions and possible answers
based on our mind-map. An iterative review process is performed to assure that
the survey questions are comprehensive and relevant to the domain. Finally, we
performed pilot tests with two other volunteers.
     We created our online survey based on the guidelines described by Jacob et al.
[6]. Our survey is mainly based on using multiple choice and numerical questions
to provide an “other” option to consider missing options. The answers of “other”
options are used either to create new categories or considered as belonging to one
of the existing categories by analyzing the survey results. Self-containment of the
survey questions are also adhered by providing required information about the
context or expressions of a question. In order to avoid long questionnaire for the
intended audience, we split the questionnaire into five parts: Profiling, Domain,
Modeling, Non-functional, and a Final part. The participants were informed
about the results of the survey after leaving their email addresses in the final
step of the survey. Our survey was available on the LimeSurvey Server, hosted by
Software Engineering Group of Leibniz Universität Hannover, between November
17, 2017 and January 5, 2018.
    First, we reached the potential participants via our personal contacts and asked
them to take part and also forwarded our invitations to potential participants
that they may know. In addition, we posted the survey invitation to several online
communities, XING, meet-up groups, and advertised the survey via mailing lists
of the NGINX, Inc. In order to control who was answering our survey, we started
our survey with a filter question about taking part in a project with relevance to
MSA.



4    Results


In total, 40 experts participated in our survey and 25 of them has answered yes to
the filter question about being involved in any project or program that are related
to the microservices architecture. Since our research is related to the practical
part of the MSA, we consider only the answers of the participants who answered
yes to the filter question and answered at least one of the other questions from
our survey. The Majority of the respondents, 19 (76%), are practitioners from
industry whereas only 2 of them (0.08%) are from academia. Furthermore, 4
participants are active in both academic and industrial contexts. By asking
about the role of the participants in their current activities, 17 (68%) stated that
they are developers, 11 (44%) system architects, and 3 (12%) of them are team
leaders. All of the team leaders and 8 of the system architects are developers
simultaneously. Relative to experience with MSA, 11 (44%), have between 1 and
2 years, and 8 (32%) have between 2 and 5 years of experience. 21 participants
stated that they use agile methods in their organizations.
4         Ghofrani Javad and Daniel Lübke

4.1       RQ1: What are the main challenges/concerns in the design and
          the development process of microservices?
To answer RQ1, we asked our participants about their main challenges in the
development process of microservices. According to the 8 comments and free-text
answers of the survey to this question, the distributed nature of the MSA is one
of the main challenges in the development and debugging of the systems based
on this architectural style. “Too many repositories to maintain”, “Hard to find
issues in a distributed system. Rarely any benefit”, “networking between dockers”,
“sharing base data among different services considering performance limitations”,
and “debugging a microservice that relies on other services can be tricky” are
some12 of these comments. Next common challenge is the skill and knowledge.

It seems
    10      that there are difficulties between customers and development teams
in “understanding
     8
                           MS of the Top Management/Director levels”,                                “getting
                                                                                                Not at all Important the
right developers/engineers”, and “Changing the people’s mindsSlightly                             thatimportant
                                                                                                            are used
to traditional monoliths”. Finally, “correct separation of domains”                                  and “finding
     6
                                                                                                Important

the 4appropriate service cuts” are the third majority of the concerns                                      stated by
                                                                                                Fairly important
                                                                                                Very important
our 2participants. Nevertheless, they have also recommended to use MSA instead
of other
     0     architectural approaches in case of “Distributed teams that can have
logical separations”.
         Security Performance Resilience Memory Usage Reliability Response time Fault tolerance



     12

     10

      8                                                                                                         Not at all Important
                                                                                                                Slightly important
      6
                                                                                                                Important
      4                                                                                                         Fairly important
                                                                                                                Very important
      2

      0
           Security   Performance   Resilience   Memory Usage   Reliability   Response Time   Fault Tolerance



Fig. 1. Priority of MSA features that should be optimized, according to the number of
votes given by practitioners


   In order to get an overview of the main concerns of our participants regarding
nonfunctional features of their MSA, we asked “How important is it for you to
optimize the following features of your microservice architecture?”
    – Security
    – Performance
    – Resilience
    – Memory Usage
    – Reliability
    – Response time
    – Fault tolerance 1
 1
     We use 5 levels of importance: Not at all important, Slightly important, Important,
     Fairly Important, and Very important
                          Challenges and Solutions of Microservices Architecture        5

    Fig. 1 depicts the frequency and the importance level of each the features.
One can see that Security, Performance, and Response Time are mentioned as
very important to optimize in MSA. The optimization of Resilience, Reliability
and Fault Tolerance are considered to be the next priorities while the Memory
Usage is only important.
    Furthermore, we asked our participants “ What were your goals when deciding
on a microservice architecture?”. Fig. 2 shows that Scalability (16/25) and Agility
(13/25) are commonly desired compared to Extendability (9/25), Maintainability
(9/25), and Reliability (7/25).



        Reliability



  Maintainability



      Extendability



            Agility



        Scalability


                      0       2      4      6       8      10     12      14       16       18




       Fig. 2. Participants’ primary intention for using a microservice architecture




4.2        RQ2: What are the main reasons leveraging and preventing the
           usage of systematic approaches in microservices architectures?

We asked the participants “How do you derive service boundaries?”. On the one
hand, a big amount of the participants (7/25) use Manually / Good Feeling
methods based on their experiences and skills. Looking at the skills of these
participants reveals that most of them have less than 2 years of experience with
MSA. On the other hand, 6/25 of participants inform us that they use systematic
approaches, especially Domain Driven Design, for deriving the service boundaries.
It shows a significant correlation (85%) with their experience on MSA, between 2
to 5 years. Automatic methods, such as tooling, formal methods, and algorithms
for deriving service boundaries were used by 3 participants. Two of them have
less than 2 years of experience in MSA and only one has between 2 and 5 years
of experience. These answers are depicted in Fig. 3.
    The next question was: “Which notation(s) do you use to describe your
architecture?”. As shown in Fig. 4, 8/25 of the participants stated that they
use Graphical Modeling Languages (GML) because of agility, simplicity, and
easily available GML tools. 2/25 use Textual Modeling Languages (TML) and
6               Ghofrani Javad and Daniel Lübke

    7

    6

    5

    4
                                                                                                                                              Less than 2 years
    3
                                                                                                                                              Between 2 and 5 years
    2

    1

    0
            Systematic (e.g., Domain Driven Design)   Automatic (e.g., tooling, formal models and Manually /Good Feeling (e.g., experiences
                                                                    algorithms, ...)                            and skills)



Fig. 3. Popularity of each method among the participants with less than 2 years (blue
bars) and between 2 to 5 years (red bars) of MSA experience


4/25 of them use Domain Specific Languages (DSL). Nevertheless, 9/25 of
participants stated that they do not use any notation in this context. None of
the participants named any tool, technique, and framework for modeling their
MSA which indicates the limited awareness on existing tools for MSA among the
practitioners.


    10
        9
        8
        7
        6
        5
        4                                                                                                                                       respondent count
        3
        2
        1
        0
              Textual Modeling Languages     Graphical Modeling Languages       Domain Specific Languages                   None
                        (TML)                                                            (DSL)




Fig. 4. Notations that are used by practitioners to describe their MSA, according to 25
collected responses




4.3           RQ3: Are there any suggestions or solutions from the experts to
              improve aspects of the microservices architecture?
Finding a trade-off between reusing and developing the architectural artifacts
is a well-known issue in any software architecture. We asked the participants
about their opinion on usage of artifacts from third-parties within a MSA as the
following question: “If you use any artifacts from third-parties in your microservice
architecture, do you consider the following features? How important are they for
you?”.
 – Last Release Date
 – Security
                          Challenges and Solutions of Microservices Architecture                         7

 – Last Release
 – Memory Usage
 – License 2

    As Fig. 5 illustrates, Security, License, and Memory usage are the most
respected concerns according to the given priorities. Furthermore, one respondent
mentioned that “he/she often finds out about memory footprint or computing
time only after he/she has integrated and tested” about third-party frameworks
or libraries. There is also an interesting suggestion from a respondent to start
renaming microservice nomenclature in order to facilitate the utilization of
Domain Driven Design tools within the MSA context.


    10
    9
    8
    7                                                                             Very important
    6                                                                             Fairly important
    5
                                                                                  Important
    4
    3
                                                                                  Slightly important
    2                                                                             Not at all important
    1
    0
          Last Release Date    Security   Last Release   Memory Usage   License



Fig. 5. The importance of various aspects of artifacts from third-parties according to
the collected responses




5        Conclusions and Future Work

In this paper we reported the results of our online survey that we conducted
among experts of Microservices architecture (MSA). We have investigated survey
responses to answer our three research questions about challenges in MSA. Since
the majority of our experts are from industry, our research reflects the practical
issues in MSA. Our work can be used as a complementary work to the existing
literature reviews to guide researchers to the open issues and problems in MSA
and offer an overview from practical point of view.
    Among the collected responses, the lack of notations, methods, and frameworks
to architect MSA can be considered as important points. The lack of tool or
framework support for selecting third-party artifacts according to their features,
e.g. security, last release, as well as the shortage of knowledge of the practitioners
about systematic methods are the top main gaps, which can be addressed
in the future work. According to the results of our survey, optimization in
Security, Response Time, and Performance have higher priorities than Resilience,
Reliability, Fault Tolerance, and Memory Usage.
2
    We use 5 levels of importance: Not at all important, Slightly important, Important,
    Fairly Important, and Very important
8      Ghofrani Javad and Daniel Lübke

   Future work includes (i) conducting a survey each year to monitor the change
over time, (ii) performing a new survey with a larger scope to collect more details
about further aspects of MSA in the practice and (iii) proposing solutions for
the identified gaps.


References
[1] Alshuqayran, N., Ali, N., Evans, R.: A systematic mapping study in microser-
    vice architecture. In: Service-Oriented Computing and Applications (SOCA),
    2016 IEEE 9th International Conference on. pp. 44–51. IEEE (2016)
[2] Di Francesco, P., Malavolta, I., Lago, P.: Research on architecting microser-
    vices: Trends, focus, and potential for industrial adoption. In: Software Ar-
    chitecture (ICSA), 2017 IEEE International Conference on. pp. 21–30. IEEE
    (2017)
[3] Dragoni, N., Giallorenzo, S., Lafuente, A.L., Mazzara, M., Montesi, F.,
    Mustafin, R., Safina, L.: Microservices: yesterday, today, and tomorrow. In:
    Present and Ulterior Software Engineering, pp. 195–216. Springer (2017)
[4] Fink, A.: The survey handbook, vol. 1. Sage (2003)
[5] Ghofrani, J., Lübke, D.: Online material for survey on challenges of microser-
    vices architecture (2018), https://doi.org/10.6084/m9.figshare.5852598
[6] Jacob, R., Heinz, A., Décieux, J.P.: Umfrage: Einführung in die Methoden
    der Umfrageforschung. Walter de Gruyter (2013)
[7] Pahl, C., Jamshidi, P.: Microservices: A systematic mapping study. In:
    CLOSER (1). pp. 137–146 (2016)
[8] Vural, H., Koyuncu, M., Guney, S.: A Systematic Literature Review on
    Microservices, pp. 203–217. Springer International Publishing, Cham (2017)
[9] Wolff, E.: Microservices: Flexible Software Architecture. Addison-Wesley
    Professional (2016)