Applying Model-Driven Engineering to Stimulate the Adoption of DevOps Processes in Small and Medium-Sized Development Organizations

Page created by Aaron Erickson
 
CONTINUE READING
Applying Model-Driven Engineering to Stimulate the Adoption of DevOps Processes in Small and Medium-Sized Development Organizations
Noname manuscript No.
                                         (will be inserted by the editor)

                                         Applying Model-Driven Engineering to Stimulate the
                                         Adoption of DevOps Processes in Small and Medium-Sized
                                         Development Organizations
                                         The Case for Microservice Architecture

                                         Jonas Sorgalla* · Philip Wizenty · Florian Rademacher · Sabine
                                         Sachweh · Albert Zündorf
arXiv:2107.12425v1 [cs.SE] 26 Jul 2021

                                         Received: date / Accepted: date

                                         Abstract                                                           the organizational and technological complexity result-
                                         Purpose: Microservice Architecture (MSA) denotes an                ing from MSA poses particular challenges for small and
                                         increasingly popular architectural style in which busi-            medium-sized organizations (SMOs). We apply Model-
                                         ness capabilities are wrapped into autonomously de-                Driven Engineering to address these challenges.
                                         velopable and deployable software components called                Results: As results of the second analysis, we identify
                                         microservices. Microservice applications are developed             the challenge areas of building and maintaining a com-
                                         by multiple DevOps teams each owning one or more                   mon architectural understanding, and dealing with de-
                                         services. In this article, we explore the state of how             ployment technologies. To support DevOps teams of
                                         DevOps teams in small and medium-sized organiza-                   SMOs in coping with these challenges, we present a
                                         tions (SMOs) cope with MSA and how they can be                     model-driven workflow based on LEMMA—the Lan-
                                         supported.                                                         guage Ecosystem for Modeling Microservice Architec-
                                         Methods: We show through a secondary analysis of an                ture. To implement the workflow, we extend LEMMA
                                         exploratory interview study comprising six cases, that             with the functionality to (i) generate models from API
                                                                                                            documentation; (ii) reference remote models owned by
                                         Attention. This is a preprint draft version.
                                                                                                            other teams; (iii) generate deployment specifications;
                                         J. Sorgalla*                                                       and (iv) generate a visual representation of the overall
                                         IDiAL Institute, University of Applied Sciences and Arts Dort-     architecture.
                                         mund, Otto-Hahn-Straße 27, 44227 Dortmund, Germany
                                         E-mail: jonas.sorgalla@fh-dortmund.de
                                                                                                            Conclusion: We validate the model-driven workflow and
                                         ORCiD: 0000-0002-7532-7767                                         our extensions to LEMMA through a case study show-
                                         P. Wizenty
                                                                                                            ing that the added functionality to LEMMA can bring
                                         IDiAL Institute, University of Applied Sciences and Arts Dort-     efficiency gains for DevOps teams. To develop best
                                         mund, Otto-Hahn-Straße 27, 44227 Dortmund, Germany                 practices for applying our workflow to maximize effi-
                                         E-mail: philip.wizenty@fh-dortmund.de                              ciency in SMOs, we plan to conduct more empirical
                                         ORCiD: 0000-0002-3588-5174
                                                                                                            research in the field in the future.
                                         F. Rademacher
                                         IDiAL Institute, University of Applied Sciences and Arts Dort-     Keywords DevOps, Microservice Architecture,
                                         mund, Otto-Hahn-Straße 27, 44227 Dortmund, Germany                 Development Process, Model-driven Engineering
                                         E-mail: florian.rademacher@fh-dortmund.de
                                         ORCiD: 0000-0003-0784-9245
                                         S. Sachweh                                                         1 Introduction
                                         IDiAL Institute, University of Applied Sciences and Arts Dort-
                                         mund, Otto-Hahn-Straße 27, 44227 Dortmund, Germany
                                         E-mail: sabine.sachweh@fh-dortmund.de
                                                                                                            Microservice Architecture (MSA) is a novel architec-
                                                                                                            tural style for service-based software systems with a
                                         A. Zündorf
                                         Department of Computer Science and Electrical Engineering,
                                                                                                            strong focus on loose functional, technical, and organi-
                                         University of Kassel, Wilhelmshöher Allee 73, 34121 Kassel, Ger-   zational coupling of services [53]. In a microservice ar-
                                         many                                                               chitecture, services are tailored to distinct business ca-
                                         E-mail: zuendorf@uni-kassel.de                                     pabilities and executed as independent processes. The
2                                                                                                             Sorgalla et al.

adoption of MSA is expected to increase an applica-             guages and model transformations for MSA engineer-
tion’s scalability, maintainability, and reliability [53]. It   ing [62] enabling sophisticated modeling support for the
is frequently employed to decompose monolithic appli-           workflow.
cations for which such quality attributes are of critical           The remainder of this article is organized as follows.
scale [8].                                                      In Sect. 2, we describe in detail the microservice archi-
    MSA fosters the adoption of DevOps practices, be-           tecture style particularly related to the design, devel-
cause it promotes to (i) bundle microservices in self-          opment, and operation stages. In addition, we explain
contained deployment units for continuous delivery;             organizational aspects that result from the use of mi-
and (ii) delegate responsibility for a microservice to          croservices. Section 3 illustrates LEMMA as a set of
a single team being composed of members with het-               modeling languages and tools that address the MDE
erogeneous professional backgrounds [3, 52]. Conway’s           of MSA. In Sect. 4, we analyze a dataset based on an
Law [14] is a determining factor in DevOps-based MSA            exploratory interview study in SMOs to identify chal-
engineering. It states that the communication structure         lenging areas in engineering MSA for DevOps teams
of a system reflects the structure of its development or-       in SMOs. Based on these challenge areas, we present
ganization. Thus, in order to achieve loose coupling and        a model-driven workflow in Sect. 6 and describe the
autonomy of microservices, it is also crucial to divide         extensions of LEMMA in order to support the work-
the responsibility for microservices’ development and           flow. In this regard, Subsect. 6.2 present means to de-
deployment between autonomous DevOps teams [52].                rive LEMMA models from API documentation, Sub-
As a result, MSA engineering leads to a distributed de-         sect. 6.3 presents extensions to the LEMMA languages
velopment process, in which several teams create coher-         in order to assemble individual microservice models,
ent services of the same software system in parallel.           Subsect. 6.4 describes additions to create a visual repre-
    While various larger enterprises like Netflix1 , Spo-       sentation of microservice models, Subsect. 6.5 presents
tify , or Zalando3 regularly report about their success-
    2
                                                                means to specify deployment infrastructure, and Sub-
ful adoption of MSA, there are only a small number              sect. 6.6 elaborates on the ability to generate infrastruc-
of experience reports (e.g., [11]) about how microser-          ture code. We validate our contributions to LEMMA in
vices combined with DevOps can be successfully imple-           Sect. 7. Section 8 discusses the model-driven workflow
mented in small and medium-sized development organi-            and LEMMA components towards the application in
zations (SMOs) with less than 100 developers involved.          DevOps teams of SMOs. We present related research in
Such SMOs typically do not have sufficient resources to         Sect. 9. The article ends with a conclusion and outlook
directly apply large-scale process models such as Scrum         on future work in Sect. 10.
at Scale [13, 76] in terms of employees, knowledge, and
experience.
    To support SMOs in bridging the gap between avail-          2 Background
able resources and required effort for a successful adop-
tion of DevOps-based MSA engineering, we (i) inves-             This section provides background on the MSA approach
tigate the characteristics of small- and medium-scale           and its relation towards the DevOps paradigm. It de-
microservice development processes; and (ii) propose            tails special characteristics in the design, development,
means to reduce complexity and increase productivity            operation, and organization of microservice architec-
in DevOps-based MSA engineering within SMOs. More               tures and their realization.
precisely, the contributions of our article are threefold.
First, we identify challenges of SMOs in DevOps-based
MSA engineering by analyzing a data set of an ex-
                                                                2.1 General
ploratory qualitative study and linking it with exist-
ing empirical knowledge. Second, we employ Model-               MSA is a novel approach towards the design, devel-
driven Engineering (MDE) [12] to introduce a work-              opment, and operation of service-based software sys-
flow for coping with the previously identified challenges       tems [53]. Therefore, MSA promotes to decompose the
in DevOps-based MSA engineering for SMOs. Third,                architecture of complex software systems into services,
we present and validate extensions to LEMMA (Lan-               i.e., loosely coupled software components that interact
guage Ecosystem for Modeling Microservice Architec-             by means of predefined interfaces and are composable to
ture), which is a set of Eclipse-based modeling lan-            synergistically realize coarse-grained business logic [24].
    1 https://netflix.github.io                                      Compared to other approaches for architecting ser-
    2 https://labs.spotify.com                                  vice-based software systems, e.g., SOA [24], MSA puts a
    3 https://opensource.zalando.com                            strong emphasis on service-specific independence. This
MDE to Stimulate DevOps Processes in the Context of Microservice Architecture                                          3

independence distinguishes MSA from other approaches            work traffic at runtime [45]. Although there exist ap-
w.r.t. the following features [53, 52, 63]:                     proaches such as Domain-driven Design (DDD) [25] to
                                                                support in the systematic decomposition and granular-
 – Each microservice in a microservice architectures fo-
                                                                ity determination of a microservice architecture [53],
   cuses on the provisioning of a single distinct capa-
                                                                their perceived complexity hampers widespread adop-
   bility for functional or infrastructure purposes.
                                                                tion in practice [27, 8].
 – A microservice is independent from all other archi-
                                                                    An additional specific in microservice design stems
   tecture components regarding its implementation,
                                                                from MSA’s omission of explicit service contracts [56].
   data management, testing, deployment, and opera-
                                                                By contrast to SOA, MSA considers the API of a
   tion.
                                                                microservice its implicit contract [84], thereby dele-
 – A microservice is fully responsible for all aspects re-
                                                                gating concerns in API management, e.g., API ver-
   lated to its interaction with other architecture com-
                                                                sioning to microservices [72]. Consequently, microser-
   ponents, ranging from the determination of commu-
                                                                vices must ensure their compatibility with possible con-
   nication protocols over data and format conversions
                                                                sumers and also inform them about possible interac-
   to failure handling.
                                                                tion requirements. Furthermore, implicit microservice
 – Exactly one team is responsible for a microservice
                                                                contracts foster ad hoc communication, which increases
   and has full accountability for its services’ design,
                                                                runtime complexity and the occurrence of cyclic inter-
   development, and deployment.
                                                                action relationships [77].
    Starting from the above features, the adoption of
MSA may introduce increases in quality attributes [38]
such as (i) scalability, as it is possible to purposefully      2.3 Development Stage
run new instances of microservices covering strongly de-
manded functionality; (ii) maintainability, as microser-        By contrast to monolithic applications, which rely on
vices are seamlessly replaceable with alternative imple-        a holistic, yet vendor-dependent technology stack [18],
mentations; and (iii) reliability, as it delegates responsi-    microservice architectures foster technology heterogene-
bility for robustness and resilience to microservices [53,      ity [53]. Specifically, due to the increase in service-
18,19]. Additionally, MSA fosters DevOps and agile              specific independence, each microservice may employ
development, because its single-team ownership calls            those technologies that best fit a certain capability.
for heterogeneous team composition and microservices’           Typical technology variation points [59] comprise pro-
constrained scope fosters their evolvability [79, 16].          gramming languages, databases, communication pro-
    Despite its potential for positively impacting the          tocols, and data formats. However, technology het-
aforementioned features of a software architecture and          erogeneity imposes a greater risk for technical debt,
its implementation, MSA also introduces complexity              additional maintainability costs, and steeper learning
both to development processes and operation [16, 78,            curves, particularly for new members of a microservice
72]. Consequently, practitioners in SMOs perceive the           team [77].
successful adoption of MSA as complex [8]. Challenges
that must be addressed in MSA adoption are spread
across all stages in the engineering process, and thus          2.4 Operation Stage
concern the design of the architecture, its development
and operation. Furthermore, MSA imposes additional              MSA usually requires a sophisticated deployment and
demands on the organization of the engineering pro-             operation infrastructure consisting of, e.g., continuous
cess.                                                           delivery systems, a basic container technology and or-
                                                                chestration platform, to cope with MSA’s emphasis of
                                                                maintainability and reliability [79]. In addition, mi-
2.2 Design Stage                                                croservices often rely on further infrastructure compo-
                                                                nents such as service discoveries, API gateways, or mon-
A frequent design challenge in MSA engineering con-             itoring solutions [4], which lead to additional adminis-
cerns the decomposition of an application domain into           tration and maintenance effort. Consequently, microser-
microservices that each have a suitable functional gran-        vice operation involves a variety of different technical
ularity [31, 72]. Too coarse-grained microservice capa-         components, thereby resulting in a significant complex-
bilities neglect the aforementioned benefits of MSA in          ity increase compared to monolithic applications [72].
terms of service-specific independence. Too fine-grained            Furthermore, technology heterogeneity also con-
microservices, on the other hand, may require an inef-          cerns microservice operation w.r.t. technology varia-
ficiently high amount of communication and thus net-            tion points like deployment and infrastructure technolo-
4                                                                                                          Sorgalla et al.

gies [59]. Particularly the latter also involve indepen-     challenges in MSA engineering (cf. Sect. 2) by means of
dent decision-making by microservice teams. For ex-          Model-driven Engineering (MDE) [12].
ample, there exist infrastructure technologies, e.g., to         To this end, LEMMA refers to the notion of archi-
increase performance or resilience, which directly focus     tecture viewpoint [39] to support stakeholders in MSA
on a microservice [4]. Hence, teams are basically free       engineering in organizing and expressing their concerns
to decide for suitable solutions based on different cri-     towards a microservice architecture under development.
teria such as compatibility with existing microservice       More specifically, LEMMA clusters four viewpoints on
implementations or available experience.                     microservice architectures. Each viewpoint targets at
                                                             least one stakeholder group in MSA engineering, and
                                                             comprises one or more stakeholder-oriented modeling
2.5 Organizational Aspects                                   languages.
                                                                 The modeling languages enable the construction of
The use of MSA requires a compatible organizational          microservice architecture models and their composi-
structure, i.e., following Conway’s law, a structure that    tion by means of an import mechanism. As a result,
corresponds to the communication principle of mi-            LEMMA allows reasoning about coherent parts of a
croservices. This results in the necessity of using sepa-    microservice architecture [39], e.g., to assess quality at-
rate teams, each of which is fully responsible for one or    tributes and technical debt of microservices [61] or per-
more services (cf. Subsect. 2.1). The requirement that       form DevOps-oriented code generation [60].
a team should cover the entire software lifecycle of its         The following paragraphs summarize LEMMA’s ap-
microservices automatically leads to the need for cross-     proach to microservice architecture model construction
functional teams. In order to ensure collaboration be-       and processing.
tween teams, large companies such as Netflix or Spotify
usually use established large-scale agile process mod-
els [17], e.g., the Scaled Agile Framework (SAFe) [65],      3.1 Microservice Architecture Model Construction
Scrum at Scale [76], or the Spotify Model [70]. Estab-
lishing such a form of organization and to establish or-     Figure 1 provides an overview of LEMMA’s modeling
ganizational alignment may require upfront efforts [53].     languages, their compositional dependencies and the
    Thus, MSA fosters DevOps practices, which can re-        addressed stakeholders in MSA engineering.
sult in lowered cost and accelerate the pace of product          LEMMA’s Domain Data Modeling Language [62]
increments [52]. To this end, it is critical to foster a     allows model construction in the context of the domain
collaborative culture within and across teams to pro-        viewpoint on a microservice architecture. Therefore, it
mote integration and collaboration among team mem-           addresses the concerns of domain experts and microser-
bers with different professional backgrounds [48].           vice developers. First, the language aims to mitigate the
    A key enabler of a collaborative culture is the exten-   complexity of DDD (cf. Sect. 2) by defining a minimal
sive automation of manual tasks to prevent the mani-         set of modeling concepts for the construction of do-
festation of inter-team and extra-team silos [48]. Specif-   main concepts, i.e., data structures and list types, and
ically, it relieves people from personal accountability      the assignment of DDD patterns, e.g., Entity or Value
for a task and may thus help in reducing existing an-        Object [25]. Additionally, it integrates validations to en-
imosities of team members with different professional        sure the semantically correct usage of the patterns. Sec-
backgrounds [44].                                            ond, the language considers underspecification in DDD-
    Another pillar of a collaborative culture is knowl-      based domain model construction [58], thereby facilitat-
edge sharing following established formats and guide-        ing model construction for domain experts. However,
lines [48]. It aims to mitigate the occurrence of insuffi-   microservice developers may later resolve underspec-
cient communication, which can be an impediment in           ification to enable automated model processing [60].
both MSA and DevOps [16, 64].                                All other LEMMA modeling languages depend on the
                                                             Domain Data Modeling Language (cf. Fig. 1) because
                                                             it provides them with a Java-aligned type system [62]
3 Language Ecosystem for Modeling                            given Java’s predominance in service programming [66,
Microservice Architecture                                    8].
                                                                 LEMMA’s Service Modeling Language [62] ad-
In our previous works we developed LEMMA [59, 62].           dresses the concerns of microservice developers
LEMMA is a set of Eclipse-based modeling languages           (cf. Fig. 1) in the service viewpoint on a microservice ar-
and model transformations that aims to mitigate the          chitecture. One goal of the Service Modeling Language
MDE to Stimulate DevOps Processes in the Context of Microservice Architecture                                              5

Figure 1 Overview of LEMMA’s modeling languages, their compositional dependencies and addressed stakeholders. Arrow semantics
follow those of UML for dependency specifications [54].

is to make the APIs of microservices explicit (cf. Sect. 2)     vice models and assign modeled microservices to con-
but keeping their definition as concise as possible based       tainers. Additionally, it is possible to express the de-
on built-in language primitives. That is, the language          pendency of containers on infrastructure nodes such as
provides developers with targeted modeling concepts             service discoveries or API gateways [4]. By providing
for the definition of microservices, their interfaces, op-      microservice operators with a dedicated modeling lan-
erations and endpoints. LEMMA service models may                guage we aim to cope with operation challenges in MSA
import LEMMA domain models to identify the respon-              engineering (cf. Sect. 2). First, the Operation Modeling
sibility of a microservice for a certain portion of the         Language defines a unified syntax for the modeling of
application domain [53] and type operation parameters           heterogeneous operation nodes of a microservice archi-
with domain concepts.                                           tecture. Second, it is flexibly extensible with support for
    LEMMA’s Technology Modeling Language [59] con-              operation technologies, e.g., for microservice monitor-
siders technology to constitute a dedicated architec-           ing or security, leveraging LEMMA technology models
ture viewpoint [37] that frames the concerns of tech-           (cf. Fig. 1). Third, operation models may import other
nology-savvy stakeholders in MSA engineering, i.e., mi-         operation models, e.g., to compose the models of differ-
croservice developers and operators (cf. Fig. 1). The           ent microservice teams to centralize specification and
Technology Modeling Language enables those stake-               maintenance of shared infrastructure components such
holder groups to construct and apply technology mod-            as service discoveries and API gateways.
els. A LEMMA technology model modularizes infor-
mation targeting a certain technology relevant to mi-
croservice development and operation, e.g., program-            3.2 Microservice Architecture Model Processing
ming languages, software frameworks, or deployment
technologies. Furthermore, it integrates a generic meta-        LEMMA relies on the notion of intermediate model
data mechanism based on technology aspects [59]. Tech-          representation [40] to facilitate the processing of con-
nology aspects may, for example, cover annotations              structed models. To this end, LEMMA integrates a
of software frameworks. LEMMA service and opera-                set of intermediate metamodels and intermediate model
tion models depend on LEMMA technology models                   transformations. The intermediate metamodels define
(cf. Fig. 1) and import them to apply the contained             the concepts to which the elements of an intermediate
technology information to, e.g., modeled microservices          model for a LEMMA model conform. An intermediate
and containers. In particular, LEMMA’s Technology               model transformation is then responsible for the auto-
Modeling Language aims to cope with technology het-             mated derivation of an intermediate model from a given
erogeneity in MSA engineering (cf. Sect. 2) by making           input LEMMA model.
technology decisions explicit [73].                                 This approach to model processing yields several
    LEMMA’s Operation Modeling Language [62]                    benefits. First, intermediate metamodels decouple mod-
addresses the concerns of microservice operators                eling languages from model processors. Consequently,
(cf. Fig. 1) w.r.t. the operation viewpoint in MSA en-          languages can evolve independently from processors as
gineering. To this end, the language integrates prim-           long as the intermediate metamodels remain stable.
itives for the concise modeling of microservice con-            For example, it becomes possible to introduce syntactic
tainers, infrastructure nodes, and technology-specific          sugar in the form of additional shorthand notations for
configuration. To model the deployment of microser-             language constructs. Second, intermediate metamodels
vices, LEMMA operation models import LEMMA ser-                 enable to incorporate language semantics into interme-
6                                                                                                         Sorgalla et al.

diate models so that model processors need not antic-           The first compartment shows the structure of in-
ipate them. For instance, LEMMA allows modeling of          termediate model transformations with LEMMA based
default protocols for communication types within tech-      on the example of a service model constructed with
nology models. In case a service model does not explic-     LEMMA’s Service Modeling Language. The service
itly determine a protocol, e.g., for a microservice, the    model imports a variety of domain models and tech-
default protocol of the service’s technology model ap-      nology models constructed with LEMMA’s Domain
plies implicitly. The intermediate transformation, which    Data Modeling Language and Technology Modeling
converts a service model into its intermediate repre-       Language, respectively. As a preparatory step, the ser-
sentation, makes the default protocol explicit. Thus,       vice model is transformed into its intermediate rep-
model processors can directly rely on this information      resentation by means of LEMMA’s Intermediate Ser-
and need not determine the effective protocol for a mi-     vice Model Transformation. Similarly, each imported
croservice themselves.                                      domain model is transformed into a corresponding in-
    Next to intermediate model representations,             termediate domain model leveraging LEMMA’s Inter-
LEMMA also provides a model processing framework4 ,         mediate Domain Model Transformation. To this end,
which facilitates the implementation of Java-based          the transformation algorithm restores the existing im-
model processors, e.g., for microservice developers         port relationships between service models and domain
without a strong background in MDE. To this end,            models for their derived intermediate representations.
the framework leverages the Inversion of Control            However, the algorithm does not invoke intermediate
(IoC) design approach [41], and its realization based       transformations on technology models imported by ser-
on the Abstract Class pattern [71] and Java anno-           vice models. Instead, the applied technology informa-
tations [29]. In addition, the framework implements         tion becomes part of intermediate service models so
the Phased Construction model transformation design         that model processors can directly access them. There-
pattern [46]. That is, the framework consists of several    fore, LEMMA treats technology models and model pro-
phases including phases for model validation and code       cessors as conceptual unities, i.e., a model processor for
generation. To implement a phase as part of a model         a certain technology must be aware of the semantics
processor, developers need to provide an implemen-          of the elements in its technology model and be capa-
tation of a corresponding abstract framework class,         ble in interpreting their application, e.g., within service
e.g., AbstractCodeGenerationModule, and augment             models.
the implementation with a phase-specific annotation,            The second compartment of Fig. 2 concerns model
e.g., @CodeGenerationModule. At runtime, model              processing. A LEMMA model processor constitutes
processors pass control over the program flow to the        an implementation conform to LEMMA’s model pro-
framework. The framework will then (i) parse all given      cessing framework, which thus provides the processor
intermediate LEMMA models; (ii) transform them into         with capabilities for model parsing and phase-oriented
object graphs, which abstract from a concrete model-        model processing. Typical results from processing ser-
ing technology; and (iii) invoke the processor-specific     vice models comprise (i) executable microservice code;
phase implementations with the object graphs. As a          (ii) shareable API specifications, e.g., based on Ope-
result, the added complexities of MDE w.r.t. model          nAPI5 ; (iii) event schemata, e.g., for Apache Avro6 ; and
parsing and the construction of Abstract Syntax Trees       (iv) measures of static complexity and cohesion metrics
as instantiations of language metamodels [12] remain        applicable to MSA [36, 2, 34, 23, 7].
opaque for model processor developers. Moreover,
LEMMA’s model processing framework provides
means to develop model processors as standalone             4 DevOps-Related Challenges in Microservice
executable Java applications. This characteristic is        Architecture Engineering of SMOs
crucial for the integration of model processors into
continuous integration pipelines [42], which constitute     In this section, we present an empirical analysis of mi-
a component in DevOps-based MSA engineering [5, 8].         croservice development processes (cf. Subsect. 2.5) in
    Figure 2 illustrates the interplay of intermediate      SMOs with the goal of identifying SMO-specific chal-
model transformations, and the implementation and ex-       lenges in microservice engineering. For this purpose, we
ecution of model processors with LEMMA.                     perform a secondary analysis [35] of transcribed qual-
                                                            itative interviews from one of our previous works [74].
    Figure 2 comprises two compartments.
                                                            While the initial analysis of the data through inductive
    4 https://github.com/SeelabFhdo/lemma/tree/master/de.      5 http://spec.openapis.org/oas/v3.1.0

fhdo.lemma.model_processing                                    6 https://avro.apache.org
MDE to Stimulate DevOps Processes in the Context of Microservice Architecture                                           7

Figure 2 Example for the interplay of LEMMA’s intermediate model transformations and model processors based on its model
processing framework.

open coding, our secondary analytical procedure specif-         (Column I) with software architects whereby I4 covered
ically aims to identify challenges and obstacles during         two cases.
the development process.                                            As shown Table 1, we distinguish the cases into
                                                                greenfield (new development from scratch), templated
                                                                greenfield (new development based on legacy system),
4.1 Study Design                                                and migration (transformation of a monolithic legacy
                                                                system into an MSA-based system) (Column Type).
The study from which the dataset emerged is a as a              We further categorize each devlopment process by the
comparative multi-case study [83]. The aim of the study         domain of the microservice application under develop-
was to gain exploratory insights into the development           ment (Column Domain). The number of microservices
processes of SMOs. To this end, in-depth interviews             present in the application at the time of the interview
were conducted on-site in 2019 with five software ar-           (Column #Services), number of people (Column #Ppl)
chitects, each from a different company, and afterwards         and teams (Column #Teams) involved vary depending
transcribed. The interviews were conducted in a semi-           on the case. Case three is a special case; although there
structured manner and covered the areas of (i) applied          are formally only two teams, sub-teams are formed de-
development process; (ii) daily routines; (iii) meeting         pending on the customizations to be performed to the
formats; (iv) tools; (v) documentation; and (vi) knowl-         microservice application, so that at certain points in
edge management. Participants were recruited from ex-           time up to five teams work simultaneously on the ap-
isting contacts of our research group to SMOs. Further-         plication. In all cases the interviewees stated to apply
more, we constrained participant selection to the pro-          the Scrum framework [67] for internal team organiza-
fessional level or senior software architects, and SMOs         tion. By contrast, the collaboration across teams was in
that develop microservice systems with equal or less            all cases not following a particular formal methodology
than 100 people.                                                or model (cf. Subsect. 2.5). In addition, all interviewees
                                                                reported that they strive for a DevOps culture [20] in
                                                                their SMOs. A detailed description of the cases can be
                                                                found in our previous work [74].
4.2 Dataset

As depicted in Table 1, the dataset includes transcripts        4.3 Analytical Procedure
and derived paraphrases covering six different cases
(Column C) of microservice development processes in             For the analysis of the dataset, we used the Constant
SMOs. In total, we conducted five in-depth interviews           Comparison method [69]. That is, we rescreened exist-
8                                                                                                               Sorgalla et al.

Table 1 Overview of explored SMO cases [74].

    C      I        Type                  Domain                               #Services         #Ppl             #Teams
                    Templated
    C1     I1                             Public Administration                        60          ≈30                     5
                    Greenfield
    C2     I2       Migration             B2B E-Commerce                                8           10                    3
    C3     I3       Greenfield            IoT                                          18           28          2 (up to 5)
    C4              Migration             B2B E-Commerce                               34          ≈10                    2
           I4
    C5              Migration             B2C E-Commerce                                8          ≈10                    2
                    Templated
    C6     I5                             Logistics                                  15-20          75                  ≈10
                    Greenfield

ing paraphrases and marked challenges and/or solutions            and C6, the system development initially started with
that our interviewees told us about with corresponding            fewer people, and as the software product became suc-
codes for challenges, obstacles, and solutions. We then           cessful, more people and teams were added. Regarding
used the coded statements across all cases to combine             this development and the common architectural under-
similar statements to higher-level challenges.                    standing I1 states that “From one agile team to multiple
                                                                  agile teams is a huge leap, you have to regularly adapt
                                                                  and question the organization. [...] you need a common
4.4 Study Results and Challenges
                                                                  understanding of the architecture and a shared vision
                                                                  of where we want to go [...], we are working on that
Our analysis of the dataset resulted in the discovery of
                                                                  every day and I don’t think we’ll ever be done.”
several common challenges across all cases. Compara-
ble to other empirical studies, e.g., [80] or [33], our par-           A strategy that we observed to create this common
ticipants reported about the high technical complexity            architectural understanding in C1, C3, and C6 is the
and high training effort during a microservice devel-             creation of new meeting formats. However, a contra-
opment process compared to a monolithic approach.                 dicting key aspect of the DevOps culture is to mini-
Other discovered challenges in line with existing lit-            mize coordination across teams as much as possible [5].
erature, e.g., [28], concern the slicing of the business          The arising problem is also experienced by our inter-
domain into individual microservices and the most suit-           viewees. The more people and teams involved in ex-
able granularity of a microservice (cf. Sect. 2).                 changing knowledge to develop an architectural under-
    In the following, we elaborate on two challenge areas         standing, the more time-consuming the exchange be-
(CA) which we found to be of particular concern for               comes. In the case of C6, this has led to the discon-
SMOs adopting a DevOps culture in more detail.                    tinuation of comprehensive knowledge exchanges due
                                                                  to the excessive time involved. They now only meet
CA1: Developing, Communicating, and Stabilizing a                 on the cross-team level to discuss technologies, e.g.,
Common Architectural Understanding                                a particular authentication framework or a new pro-
                                                                  gramming language. We interpret this development as
Developing a common architectural understanding of                a step towards the introduction of horizontal knowl-
the architecture components of an application, espe-              edge exchange formats such as Guilds in the Spotify
cially about the goals and communication relationships            Model [70]. As a result, C6 is currently challenged with
of these components, in the case of MSA the microser-             building a common understanding of the architecture
vices, is essential for developing a software in an organi-       only through these technology-focused discussions. This
zation which follows the DevOps paradigm [5]. The in-             is a problem area that is also evident in the data of other
terviewees also think that the development of a general           empirical studies. For example, Bogner et al. [8] report
understanding of architecture among those involved in             on the creation of numerous development guidelines by
development is an important prerequisite for granting             a large development organization to enforce a common
teams autonomy and trust.                                         architectural understanding. However, the development
    For cases C2, C4 and C5 (cf. Table 1), which each             of guidelines requires that architecture decisions, tech-
comprise approx. ten people and two to three teams,               nology choices, and use cases are documented [32], a
the practices to achieve this understanding are Scrum             practice we encountered only at C4 and C5.
Dailies [67] and regular developer meetings about the                  In terms of technical documentation, the teams in
current status of the architecture. However, in case of           all six cases use Swagger to document the microservices’
more involved people, achieving a common understand-              APIs. Other documentation, such as a wiki system or
ing is reported to be very challenging. For cases C1, C3,         UML diagrams, either is not used or not kept up to
MDE to Stimulate DevOps Processes in the Context of Microservice Architecture                                          9

date. In almost all cases, access to the API documenta-         technologies and the associated high hurdle of learning
tion is not regulated centrally, but is instead provided        and integrating them into the microservice development
by the respective team through explicit requests, e.g.,         process. Second, the transfer of this knowledge not only
by e-mail. Only C3 has extensive and organization-wide          into special units but into the individual microservice
technical documentation as it is described by I3: “Swag-        teams in order to do justice to a DevOps approach.
ger is a good tool, but of course this is not completely            Summarizing CA2, deployment and operation in the
sufficient, which is why we have an area where the en-          SMOs studied is not in the responsibility of the teams to
tire concept of the IT platform [...] is explained. We also     which the respective microservices belong. This seems
have a few tutorials.”                                          to be due to the complexity of operation technologies
    Summarizing CA1, we suspect that due to a mostly            and the associated learning effort. This might particu-
volatile organization, where the number of developers           larly be an issue for SMOs due to the challenging en-
and software features often grows as development pro-           vironment, where there are few resources to substitute,
gresses, as well as the reported hard transition from a         e.g., for a colleague who needs to learn an operation
single to multiple agile teams, SMOs are particularly           technology.
affected by the challenge of implementing a common
architectural understanding as part of a successful Dev-
Ops culture. Documenting architecture decisions, deriv-
ing appropriate guidelines, and an accessible technical         5 Case Study
documentation are key factors for an efficient devel-
                                                                In this section, we present a case study that we will
opment process that become more relevant with more
                                                                use in the following sections to illustrate and validate
teams and developers involved [49] and is therefore of-
                                                                our model-driven workflow (cf. Sect. 6) to address the
ten not considered by SMOs early in the development
                                                                challenges in Sect. 4. We decided for the usage of a case
process.
                                                                study to show the applicability of our approach because
                                                                non-disclosure agreements prevent us from presenting
CA2: Complexity of Deployment Techniques and Tools              our approach in the context of the explored SMO cases
                                                                (cf. Subsect. 4.2). Therefore, we selected an open source
A recurrent challenge we identified is how to deal with         case study microservice architecture, which maps to the
the operation of microservice applications within the           design and implementation of the explored SMO cases
development process. While cross-functional teams fol-          w.r.t. the scope of our approach. More precisely, the
lowing the DevOps paradigm are mentioned in the lit-            case study (i) employs Swagger for API documenta-
erature, e.g., [52], as being recommended for the im-           tion (cf. Subsect. 4.4), (ii) uses synchronous and asyn-
plementation of microservices architectures, in each of         chronous communication means, (iii) is mainly based
the researched cases we found specialized units for op-         on the Java programming language, and (iv) the num-
erating microservices instead of operators included as a        ber of software components matches the smaller SMOs
part of a microservice team. In C1, C2, and C6 we en-           in our qualitative analysis (cf. Subsect. 4.2).
countered entire teams solely dedicated to operational              The case study is based on a fictional insur-
aspects. In all cases, the development process included         ance company called Lakeside Mutual [75]. The ap-
a handover of developed services to those specialized           plication serves to exemplify different API patterns
units for operating the microservice application. Al-           and DDD for MSA. The application comprises sev-
though most interviewees were aware that this contra-           eral micro-frontends [57], i.e., semi-independent fron-
dicts the ownership principle of microservices (cf. Sub-        tends that invoke backend functionality, and microser-
sect. 2.1) and they all stated to try to establish a pure       vices centered around the insurance sector, e.g., cus-
DevOps without specialized teams, the effort to learn           tomer administration, risk management, and customer
the basics of the necessary operational aspects is per-         self-administration functions. The application’s source
ceived as high. In this regard I2 comments “The com-            code as well as documentation is publicly available on
plexity (note: of cloud-based deployment platforms) is          GitHub7 .
already very, very high, you know. I would say that each            Figure 3 depicts the architectural design of the
of these functions in such a platform is a technology in        Lakeside Mutual application. Overall it consists of five
itself that you have to learn.” In contrast to operations,      functional backend microservice. Each microservice is
the SMOs are successful in including other professions,         aligned with a micro-frontend.
such as UI/UX, as parts of their cross-functional teams.
Our data indicates that this is due to two main reasons.            7 https://github.com/Microservice-API-Patterns/

First, the inherently high complexity of the operational        LakesideMutual
10                                                                                                                                                                                     Sorgalla et al.

           Lakeside Mutual

                    «Micro-Frontend»                             «Micro-Frontend»                                 «Micro-Frontend»                        «Micro-Frontend»
              Customer Management Frontend                 Customer Self-Service Frontend                   Policy Management Frontend                 Risk Management Client

                          «http»                                            «http»                                              «http»                               «gRPC»

                  «Functional Microservice»                   «Functional Microservice»                       «Functional Microservice»                «Functional Microservice»
               Customer Management Backend                 Customer Self-Service Backend                    Policy Management Backend                  Risk Management Server

                                                                                                                           «amqp»

                                                                                                     «Infrastructure Microservice»
                                                                                              «amqp»                                              «amqp»
                                                  «http»                                                       Actice MQ
                          «http»
                                                                «http»
                                                                                         «http»

                                                                                                                               «http»
                      «Functional Microservice»                                      «Infrastructure Microservice»                                    «Infrastructure Microservice»
                                                             «http»                                                               «http»
                          Customer Core                                                     Eureka Server                                                  Spring Boot Admin

                                             «http»

           Key:

                  «Micro-Frontend»           Micro-Frontend that provides UI components, e.g., service-specifix views.                                     Asynchronous Communication
                   Micro-Frontend

              «Functional Microservice»      Microservice providing business functionalities via REST interfaces.                                          Synchronous Communication
                   Microservice

             «Infrastructure Microservice»   Backend Microservice offering infrastructural functions for, e.g., service discovery or messaging.
                     Microservice

Figure 3 Structure of the case study Lakeside Mutual microservice application.

    Except for the Risk Management Server, all mi-                                                       6 A Model-Driven Workflow for Coping with
croservices are implemented in Java8 using the Spring                                                    DevOps-Related Challenges in Microservice
framework9 . A micro-frontend communicates with its                                                      Architecture Engineering
aligned microservice using RESTful HTTP [26]. Ad-
ditionally, the Risk Management Client and Risk                                                          This section proposes a model-driven workflow based on
Management Server communicate via gRPC. For inter-                                                       LEMMA (cf. Sect. 3) to cope with the challenges iden-
nal service to service communication, the software sys-                                                  tified in Sect. 4. More precisely, the workflow provides
tem also relies on synchronous RESTful HTTP, but also                                                    a common architectural understanding of a microser-
on asynchronous amqp messaging over an Active MQ                                                         vice application (cf. Challenge CA1 in Subsect. 4.4),
message broker. The Customer Management Backend                                                          and reduces the complexity in deploying and operating
and the Customer Core services also provide generated                                                    microservice architectures (Challenge CA2).
API documentations based on Swagger10 .                                                                       In the following subsections, we present the design
                                                                                                         of the workflow (cf. Subsect. 6.1). Next, we describe
    Besides the functional microservices, the Lakeside                                                   the components, which we have added to LEMMA, to
Mutual application also uses infrastructural microser-                                                   support the workflow. These components include (i) in-
vices. The Eureka Server implements a Service Reg-                                                       teroperability bridges between OpenAPI and LEMMA
istry [63] to enable loose coupling between microservices                                                models (CA1; cf. Subsect. 6.2); (ii) an extension to
and their different instances. For monitoring purposes,                                                  the Service Modeling Language to allow the import of
the Spring Boot Admin service provides a monitoring                                                      remote models (CA1; cf. Subsect. 6.3); (iii) a model
interface for the health status of individual services and                                               processor to visualize microservice architectures (CA1;
the overall application.                                                                                 cf. 6.4); (iv) enhancing the Operation Modeling Lan-
                                                                                                         guage (cf. Subsect. 6.5; and (v) code generators for
                                                                                                         microservice deployment and operation (CA2; cf. Sub-
                                                                                                         sect. 6.6).
                                                                                                              Furthermore, we present in detail prototypical com-
                                                                                                         ponents that we have added to the LEMMA ecosys-
     8 https://www.java.com                                                                              tem to support the workflow. These include deriving
     9 https://spring.io                                                                                 models from API documentation (cf. Subsect. 6.2) and
     10 https://swagger.io/                                                                              assembling microservice models into an architecture
MDE to Stimulate DevOps Processes in the Context of Microservice Architecture                                            11

model (cf. Subsect. 6.3) as a means to build a common           Code-First Approach Here, the team first imple-
architectural understanding (CA1), and enriching mi-            ments the microservice consisting of structure and
croservice models with deployment infrastructure mod-           behavior. Based on the finished implementation, the
els (cf. Subsect. 6.5) as a means to more easily handle         team creates an API Documentation, which can done
operational aspects for SMOs (CA2).                             manually or automatically with tools such as Swag-
    To ensure replicability of our results we have pro-         ger12 . Using the API documentation, a LEMMA do-
vided a GitHub repository11 which contains a docu-              main model and a LEMMA service model are automat-
mentation how to setup LEMMA and our in this ar-                ically derived (cf. Subsect. 6.2) and, if necessary, refined
ticle contributed extensions to it. It further contains         by the team. In parallel, the team creates a LEMMA
all generated artifacts as well as sources and scripts          operation model, since the information required for this
to rerun the generations. Finally, it contains a manu-          kind of model cannot be derived from the API docu-
ally created set of LEMMA models which represent all            mentation (cf. Subsect. 6.2).
Java-based microservices of the Lakeside Mutual case
study (cf. Sect. 5).                                            Model-First Approach Alternatively, the team can de-
                                                                cide to first model the structure and operation of the
                                                                microservice using LEMMA. In the subsequent imple-
                                                                mentation activity, the structural aspects can be gen-
6.1 LEMMA-Based Workflow for Coping with DevOps
                                                                erated based on the previously constructed models and
Challenges
                                                                only the manual implementation of the behavior is nec-
                                                                essary (cf. Sect. 3).
Fig. 4 shows the conceptual elements and their relation-
                                                                    Regardless of which of the two approaches was cho-
ships which underlie the design of our LEMMA-based
                                                                sen, at the end LEMMA domain, service, and operation
workflow for coping with the DevOps challenge areas
                                                                models are available that describe the Dev and Ops as-
(cf. Sect. 4).
                                                                pects of the microservice under development.
    An Organization includes multiple DevOps Teams,
                                                                    The operation model is then used to Generate a
each responsible for one or more Microservices
                                                                Deployment Specification for a container-based en-
(cf. Subsect. 2.5). The sum of all microservices forms
                                                                vironment which mitigates the complexity of the oper-
the Microservice Application that is developed by
                                                                ation (cf. Subsect. 6.6). The team refines this specifi-
the organization. Associated with a microservice is
                                                                cation as needed and then deploys the microservice. In
a corresponding documentation of its interfaces (API
                                                                parallel, the models generated during the workflow are
Documentation). For each microservice owned by it,
                                                                sent to a central model repository and made available
the team constructs a Set of LEMMA Views as a model
                                                                to the entire organization where they can be used by
representation (cf. Sect. 3). The sum of all LEMMA
                                                                other teams to gain insight and a common understand-
models forms an Architecture Model which describes
                                                                ing of the application’s architecture, e.g., by visualizing
the system’s architecture. This model can be used by
                                                                its structure.
the organization, e.g., to gain insight into existing de-
                                                                    Based on the use of model transformations and code
pendencies between the microservices involved.
                                                                generation steps, in the code-first as well as the model-
    Based on the conceptual elements and their rela-
                                                                first approach, we argue that the application of the
tionships, Fig. 5 shows our model-driven workflow for
                                                                workflow is possible with almost the same resources
DevOps-based microservices development in SMOs as
                                                                as the current development processes in the individ-
a UML acitivity diagram [54].
                                                                ual DevOps teams that we were able to explore as
    We depict the workflow from the perspective of a            cases in the empirical study (cf. Sect. 4). At its core,
single DevOps team including all steps required for the         the code-first approach relies on the same development
development of a new microservice. When incremental             steps, i.e., implementing structure and behavior of a
changes are made to individual aspects of a microser-           microservice, as non-model-based processes in the in-
vice, only the steps affected by the changes need to be         dividual teams, so that even teams without experience
performed.                                                      in MDE can adapt the flow in a non-invasive way. Be-
    The process starts with the planning of the de-             sides the actual implementation, the workflow provides
velopment. The team decides whether to follow a                 a service’s description in the form of LEMMA viewpoint
code-first or model-first approach. We support                  models, which can be used as a communication basis
both variants to allow the teams autonomy according             and for knowledge transfer in order to create a com-
to the DevOps paradigm [5].                                     mon architecture understanding (CA1; cf. Subsect. 4.4)
  11 https://github.com/SeelabFhdo/SN2021                          12 https://swagger.io/
12                                                                                                                 Sorgalla et al.

Figure 4 Overview of the concepts within the workflow and their interrelationships represented as a UML class diagram [54].

in the organization. This can be used to, e.g., acceler-          "paths":{                                                          1
ate verbal coordination processes between teams, im-                "/cities/{postalCode}":{                                         2
                                                                      "get":{                                                        3
prove the documentation, or identify microservice bad                   "tags":["city-reference-data-holder"],                       4
                                                                        "summary":"Get the cities for a postal code.",               5
smells ([77]). In addition, by using LEMMA operation                    "operationId":"getCitiesForPostalCodeUsingGET",              6
models and generating deployment specifications, it is                  "produces":["*/*"],                                          7
                                                                        "parameters":[{                                              8
easier for teams of an SMO to address the ops aspects                     "name":"postalCode",                                       9
themselves without passing on the responsibility for de-                  "in":"path",                                               10
                                                                          "description":"the postal code",                           11
ployment to another unit (CA2; cf. Subsect. 4.4). This                    "required":true,                                           12
enables teams to foster the ownership principle of MSA                    "type":"string"                                            13
                                                                        }],                                                          14
(cf. Subsect. 2.1).                                                     "responses":{                                                15
                                                                          "200":{                                                    16
                                                                             "description":"OK",                                     17
                                                                               "schema":{"$ref":"#/definitions/                      18
                                                                                    CitiesResponseDto"}
6.2 Derivation of Microservice Models from API                            },                                                         19
Documentations                                                            ...                                                        20

                                                                  Listing 1 Excerpt of the OAS conform OpenAPICustomerCore-
To enable the model-driven workflow with sophisticated            BackendService.json describing the CustomerCore microservice.
modeling support by LEMMA, we extended the ecosys-
tem with the ability to derive data and service models
from API documentation, that conforms to the Ope-
nAPI Specification13 (OAS) [55], into LEMMA mod-                  information from the API Model is transformed into a
eling files. OAS defines a standardized interface to de-          Domain Data Model, Service Model, and a Technol-
scribe RESTful APIs. One of the most popular tools                ogy Model which each correspond to their respective
implementing OAS is Swagger, which was used by all                LEMMA metamodel (cf. Sect. 3). Table 2 describes
SMOs in the qualitative study (cf. Sect. 4).                      which OAS objects15 are mapped to which LEMMA
    The transformation of OAS files into LEMMA files              model kind.
can be classified as an interoperability issue in which               To be able to transform the in-memory LEMMA
OAS models are to be converted into LEMMA models.                 models as files, we extended LEMMA with extrac-
We therefore applied the interoperability bridge process          tors [9] for technology, service, and data models.
proposed by Brambilla et al. [9]. Fig. 6 shows the ap-                Listing 1 and Listing 2 illustrate the application of
plied interoperability bridge process.                            the process.
    First, using the Swagger parsing framework14 , an                 Listing 1 shows an excerpt of the API documen-
OAS conform API model in the YAML [6] or JSON [21]                tation file of the Customer Core microservice from the
format is converted into an in-memory API Model. We               case study (cf. Sect. 5). In detail, the listing presents the
then perform three model transformations where the                OAS description for a HTTP GET request on the path
                                                                  cities/{postCode} (Lines 2 and 3). This includes,
     13 Version   3.0.3
     14 https://github.com/swagger-api/swagger-parser                15 https://spec.openapis.org/oas/v3.0.3#openapi-object
MDE to Stimulate DevOps Processes in the Context of Microservice Architecture                                         13

Figure 5 Proposed workflow for DevOps teams for model-driven microservices development represented as a UML activity dia-
gram [54].

e.g., the unique id getCitiesForPostalCodeUsingGET              the technology model OpenApi.technology (Line 3),
(Line 6) of the operation, the incoming parameters              which contains, e.g., the OpenAPI-specific primitive
(Line 8 to 14), and the information that a response             data types and the media types used in the Customer-
returns an object based on the CitiesResponseDto                Core OAS model. Line 4 enables the OpenApi technol-
schema (Lines 15 to 19). The excerpt shows only the             ogy for the com.lakesidemutual.customercore.Cus-
response for HTTP status code 200 (Line 16). OAS also           tomerCore microservice whose definition starts in Lines
offers the possibility to define responses for other status     6 and 7. The microservice comprises an interface named
codes, e.g. HTTP status code 404, but these are cur-            cityReferenceDataHolder which was derived by the
rently not considered in the transformation to LEMMA            associated tags in the OAS model (Line 8). The inter-
in our prototypical implementation.                             faces consists of the operation getCitiesForPostal-
                                                                CodeUsingGET named after the OAS operationId
    Listing 2 shows the LEMMA service model auto-
                                                                (Lines 18 to 22). The operation commentary section
matically transformed from the CustomerCore OAS
                                                                (Lines 9 to 14) is populated using the summary informa-
model in Listing 1. First, the results of the other
                                                                tion from OAS. The OAS path is added as an endpoint
transformations are imported into the service model.
                                                                (Line 15) and the operation classified as an HTTP GET
This includes the previously transformed LEMMA do-
                                                                request (Line 17). The OAS response associated with
main data model customerCore.data resulting from
                                                                the HTTP status code 200 is modeled as an OUT pa-
the OAS schemas (Lines 1 and 2), which contains
                                                                rameter and named returnValue (Lines 20 and 21).
all data structures such as CitiesResponseDto, and
14                                                                                                           Sorgalla et al.

Figure 6 Process to transform OAS conform API models into LEMMA models.

Table 2 Applied mappings between OAS and LEMMA concepts.

 OAS Objects          LEMMA Model         Description of Mapping
 Info                 Domain Data         Name and version of the Domain and its Context
 Schemas              Domain Data         DataStructures of the Context
                                          Inline schemas are transformed to additional DataStructures and arrays are mapped
 Paths                Domain Data
                                          to ListTypes
 Info                 Service             Name and commentary of the Microservice
 Tag                  Service             Used to derive a service’s Interfaces which cluster Operations
                                          Operations of an Interface comprising its Endpoints, Parameters, HTTP request
 Paths                Service
                                          method as Aspect, and Commentary
                                          All mentioned media types in a OAS model are transformed to DataFormats of the
 Media Types          Technology
                                          RESTful HTTP Protocol.
 Data Types           Technology          Mapped to TechnologySpecificPrimitiveTypes.

import datatypes from "customerCore.data"                   1 pend on other services. In the case study (cf. Sect. 5),
  as CustomerCoreAPIData                                    2 such a relationship is found between the microservices
import technology from "OpenApi.technology" as OpenApi      3
                                                            4 Customer Management Backend and Customer Core.
@technology(OpenApi)                                        5
public functional microservice                              6
                                                              Such dependencies cannot be derived from an API doc-
  com.lakesidemutual.customercore.CustomerCore {            7 umentation, since its purpose is to describe the provided
  interface cityReferenceDataHolder {                       8
    ---                                                     9 interface of a service and not the invocation of function-
    **Type** GET Operation for path /cities/{postalCode}    10ality provided by other architecture components. How-
    **Summary** Get the cities for a postal code.           11
    **Description**                                         12ever, these dependencies are essential in order to be able
    @required returnValue [INSERT PARAMETER DESC HERE]      13to assemble and assess an architecture model and to
    ---                                                     14
    @endpoints(OpenApi::_protocols.rest:                    15raise a common architectural understanding across the
      "/cities/{postalCode}";)                              16
    @OpenApi::_aspects.GetMapping                           17
                                                              whole organization (cf. Subsect. 4.4). Therefore, within
    getCitiesForPostalCodeUsingGET(                         18the workflow (cf. Subsect. 6.1), the dependencies should
      sync in postalcode : string,                          19
      sync out returnValue : CustomerCoreAPIData::v100.     20be added manually by the teams in the LEMMA mod-
        CustomerCoreAPI.CitiesResponseDto);                 21els. This can be done during the Model Services ac-
  }                                                         22
  ...                                                       23tivity when using the model-first approach and during
}                                                           24the Refine Generated Models activity when using the

Listing 2 Excerpt of customerCore.services resulting from    code-first approach.
transforming the CustomerCore API documentation.
                                                                 However, LEMMA service models originally were
                                                             only able to depend on other LEMMA service models if
                                                             they are accessible in the local file system. Therefore, to
6.3 Assembling a Common Architecture Model from              allow teams the expression of interaction dependencies
Distributed Microservice Models                              with the microservices of other teams, we have extended
                                                             LEMMA to allow external service imports. Listing 3
Microservices need to interact with each other to re-        shows the service model of the Customer Management
alize coarse-grained functionality [53]. Thus, can de-       Backend microservice from the case study. The mi-
You can also read