<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Approaches for Cloud Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Anton Frisch</string-name>
          <email>anton-liam.frisch@stud.uni-bamberg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Robin Lichtenthäler</string-name>
          <email>robin.lichtenthaeler@uni-bamberg.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Distributed Systems Group, University of Bamberg</institution>
          ,
          <addr-line>Bamberg</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2025</year>
      </pub-date>
      <fpage>20</fpage>
      <lpage>21</lpage>
      <abstract>
        <p>Developing applications and deploying them on cloud platforms is a common approach. With the continuous evolution of cloud computing and the wide range of technological options, however, making architectural decisions while developing cloud applications can become dificult. One possibility to support the development of cloud applications are software architecture optimization approaches that can evaluate and optimize an architecture according to specific goals. This work provides an up-to-date review of currently existing architecture optimization approaches specifically for cloud applications. Based on the review common optimization goals and approaches are identified and the potential for future work is analyzed.</p>
      </abstract>
      <kwd-group>
        <kwd>cloud application</kwd>
        <kwd>software architecture optimization</kwd>
        <kwd>taxonomy</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Cloud computing is a mature concept that is widely used in the software industry 1. However, since the
ifrst cloud oferings were published, cloud computing has evolved [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and now a wide range of diferent
platforms and services are available. For developing cloud applications it is thus necessary to make
architectural choices that, on top of fulfilling functional requirements, also fit the inherent characteristics
of cloud computing. This means on the one hand taking advantage of cloud computing benefits and
on the other hand preparing for inherent issues of cloud environments. Applications specifically built
to fit into cloud environments are also called
      </p>
      <p>
        cloud-native applications (CNA) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Architecting CNAs
means composing a distributed and scalable system out of (micro)services, using cloud-focused design
patterns, and operating it on an elastic cloud platform [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Providing support for these challenging
tasks thus is desirable. One possibility are so-called architecture optimization approaches [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. These
approaches are able to evaluate the architecture of an application according to certain quality goals,
propose potential changes, and even implement a selected change in an architecture. The overall
research field of architecture optimization approaches has been reviewed by Aleti et al. in 2013 [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
together with the development of a taxonomy to classify optimization approaches. However, the main
impact of cloud computing has occurred after that and a review of architecture optimization approaches
with a specific focus on cloud applications is missing in the literature to the best of our knowledge. The
aim of this work therefore is to fill this gap. Based on a literature review, the taxonomy of Aleti et al.
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is adapted to the context of cloud applications, and identified approaches are classified based on it.
      </p>
      <sec id="sec-1-1">
        <title>The guiding research questions thus are:</title>
        <p>classified using a structured taxonomy?
RQ1: How can the current architecture optimization approaches for cloud applications be
RQ2: What is the current state of software architecture optimization research for cloud
applications with respect to this classification?
To answer these research questions, based on the foundations presented in Section 2, we outline our
methodology in Section 3. The results of applying this methodology are presented in Section 4 and
discussed in Section 5, before a final conclusion in Section 6.</p>
        <p>ceur-ws.org
ISSN1613-0073
published at http://ceur-ws.org</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>2. Cloud Application Software Architectures</title>
      <p>
        Software Architecture is a practice for understanding and managing large-scale structures of software
systems [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. A core foundation for it is the observation that “it isn’t enough for a computer program
to produce the correct outcome. Other software qualities such as dependability and maintainability are
also important and can be achieved by careful structuring.”[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Relevant methods include notations to
capture system characteristics or technological decisions, techniques to analyze systems, and tools that
facilitate and automate these tasks. The specific methods used by software architects, however, depend
on the domain and the quality aspects in focus. Aleti et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] had a broad domain scope and thus relied
on a more general definition of architecture. According to the ISO42010 standard, an architecture is
defined as the “ fundamental concepts or properties of an entity in its environment and governing principles
for the realization and evolution of this entity and its related life cycle processes” [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        Cloud applications, however, represent a more specific domain for which diferent aspects may be
relevant than for other types of applications. Thus, it is justified to consider cloud application software
architectures as a more specific type of architecture for which specific methods can be developed
and applied. Important aspects are named by Pahl et al. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] who define a cloud architecture as “ an
abstract model of a distributed cloud system with the appropriate elements to represent not only application
components and their interrelationships, but also the resources these components are deployed on and the
respective management elements” [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. These components, their interrelationships, and the resources
on which components are deployed have been described by Kratzke and Peinl [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] in more detail and
structured based on a set of layers, from the host layer, over a cluster layer to services and application
layers. Implementing so-called cloud-native applications [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] means ensuring certain characteristics for
the architecture of an application across the diferent elements and layers of a cloud system with the
goal of ensuring certain quality aspects. Implementing an application in a cloud-native way therefore
has the same goal as architecture optimization which is defined by Aleti et al. as “ an automated method
that aims to achieve an optimal architecture design with respect to certain quality attributes” [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>The key point in architecture optimization is that an automated method is used. This automated
method should be able to take a representation of the architecture of an application as input. On this
input, a quality evaluation mechanism has to quantify the current state of an architecture and analyze
potentials for optimization. The required changes to optimize an architecture should ideally also be
applicable to the application in a structured, automated way. To summarize, the focus of this work is
on such automated methods in the specific domain of cloud applications software architectures. That
means in this domain a focus is set on the components, typically services, how they communicate, and
how they are deployed in the cloud.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Methodology</title>
      <p>
        The research method for this study adapts the approach from Aleti et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] and the guidelines for
systematic reviews by Kitchenham et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. This section presents the study selection criteria, followed
by the search strategy and the data extraction and synthesis process. To select relevant publications,
the inclusion and exclusion criteria by Aleti et al. were slightly adapted to focus on the domain of
cloud applications as described in Section 2. Three inclusion criteria must be satisfied by each selected
publication. Firstly, a machine-processable representation of the software architecture must be provided
which the approach receives as input. Secondly, a quality evaluation mechanism must be defined, either
to assess relevant quality attributes or to ensure that quality attributes and constraints are inherently
satisfied. Lastly, degrees of freedom must be defined, meaning that it must be described how the
approach can modify a given software architecture to achieve the optimization goal. In addition, works
are excluded if they: 1) focus on optimizing a single component in an application without integrating
context and interactions with other components; 2) discuss topics not directly related to software
architecture, e.g., compiler optimization or hardware-specific optimizations; 3) focus on optimizing
hardware instead of software.
      </p>
      <p>The inclusion and exclusion criteria were applied in three stages: a
title screening, an abstract review, and a full-text evaluation. In each
stage, if for a publication the inclusion and exclusion criteria could not
be clearly determined it was moved to the next stage.</p>
      <p>The applied search strategy is summarized here and additional
information can be found online2. As shown in Figure 1, a broad search
across Google Scholar, IEEE Xplore, and ACM Digital Library was used
to identify initial relevant studies and to guide the further process. This
identified seven relevant papers and using the publishing sources, the
following four databases were selected for a more targeted search: IEEE
Xplore, ACM Digital Library, Elsevier ScienceDirect, and Springer Link.</p>
      <p>This targeted search applied more specific search strings and revealed
additional three relevant studies. Together with two works previously
known to the authors, a subsequent backward search using these twelve
was done, identifying six more. Finally, a forward search revealed one
additional publication, leading to a total of 19 relevant publications that
satisfy the inclusion criteria, shown in Table 1. It has to be noted that in
relation to the amount of search results, not many publications satisfied
all inclusion criteria.
2https://github.com/AntonFrisch/Methodology_Architecture_Optimization_Cloud_Applications</p>
      <p>
        To answer RQ1, the approaches from the selected publications were firstly categorized according to
the existing taxonomy by Aleti et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. This was done in an extensive descriptive manner without
predefined values. In a second step, the categorization was reviewed again to refine the classification.
Similar concepts were merged together into synonymous terms to create a finite list of categorization
values. If necessary, new values were created and unused values were deleted. Several categories that
captured the information in the primary studies on an abstract level were extended for them to capture
more specific information. In the final step, all papers were re-evaluated with the set of finite categories
and values created. Therefore employing a test-retest procedure advised by Kitchenham [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] for single
researchers. By synthesizing relevant information for every category in a quantitative and descriptive
manner from the resulting categorization, RQ2 is answered.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. Results</title>
      <p>In the following, the results of applying the methodology described in Section 3 are presented with
Section 4.1 focusing on RQ1 and Section 4.2 focusing on RQ2.</p>
      <sec id="sec-4-1">
        <title>4.1. A Taxonomy of Software Architecture Optimization Approaches</title>
        <sec id="sec-4-1-1">
          <title>The overall structure and most categories of the tax</title>
          <p>
            onomy by Aleti et al. [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ] are kept also for classify- Taxonomy
ing optimization approaches for cloud applications.
          </p>
          <p>
            With the Problem, Solution, and Validation categories, Problem Solution Validation
vthideem,haoinwaistpdeocetss osfowahnadtwahneatphperroiatcchanaibmesptroopvreon- Domain ReAprcrehsiteencttautrieon VAaplpidraotaiochn
thoowbeevvaerli,ds,ocmane mbeoddeificsacrtiiobneds.wFeorrethmeasdueb,cbaatseegdoorines, QPuhaalsitey EvQauluaalMittiyeotnhod OVpatilmidiaztaiotinon
the reviewed literature. The result is the taxonomy Attribute Method Legend
ttshuhreoawolrnTigyiipnneafiglc.taatx2eo.gnoForiryms.tylW,yi,shthrileeepDltahocemedoarwiingiitcnhaattlehgteaoxAroyrcnhforiomtemcy- DimCFoernensestdirooanminatlity ODApFetprgiemprereiodzeaoascmtihoofn RccRaaeettmfeeinoggevooderryyd
was intended to be applicable within a broad range Constraints Method caNteegwory
Aofnddoamcaaitnesg, ocrloyutdhaatpdpoliecsatnioontspraoreviadespdeifecirficendtoiamtiaoinn. ArchTiytepceture CHoannsdtrlainingt
between approaches has no value in a taxonomy. Figure 2: Taxonomy Overview (based on [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ])
Nevertheless, a diferentiation can be done based on
which aspects or layers of an architecture are
considered. Secondly, subcategories in the Solution category have been refined by adding categories that
allow for a classification on diferent layers of abstraction. For example, the Architecture representation
category enables a classification of the general type of representation. And the Architecture
Representation Method allows for a classification of which specific language, tool, or technology is used. Thirdly,
the largest change is that the specific values assignable in each category are newly defined based on the
reviewed approaches. That means values included by Aleti et al. [
            <xref ref-type="bibr" rid="ref3">3</xref>
            ] were excluded to enable a clean
derivation of relevant values. The resulting values are considered more in detail in the next section.
          </p>
        </sec>
      </sec>
      <sec id="sec-4-2">
        <title>4.2. Classification of Current Approaches</title>
        <p>The result of reviewing the found approaches and their classification based on the taxonomy is shown
in table 2. It has to be noted that for the categories Quality Attribute, Constraints, Quality Evaluation,
Degrees of Freedom, Optimization Approach, Optimization Method, Constraint Handling, and Optimization
Validation a presented approach could be assigned to multiple values.</p>
        <p>
          Problem Category For the Phase in which approaches can be applied, design time approaches are
dominant and no approach was identified focusing exclusively on runtime optimization. Thus, these
approaches rely on complete input availability before deployment — either through system modeling
or, as in 50% of the approaches, by incorporating runtime data. The most commonly optimized Quality
Attribute is cost, which is the sole optimization goal in 8 approaches and considered alongside other
goals, often performance, in 9 approaches. Other quality attributes appear less frequently. 58% of
the reviewed papers use fixed Constraints, meaning these approaches adhere to a predetermined
unmodifiable set of constraints. In contrast, 37% of the papers allow the user to set the constraints based
on the system’s needs. Performance is the most frequently used constraint (74%). In most approaches,
multiple constraints are applied and combined in various ways. The Architecture type category reveals
a clear dominance of deployment architecture approaches, accounting for 95% of the approaches.
Solution Category In the Architecture representation category, Performance Models are used the most
(84%). A performance model focuses on representing a system’s components and their connections
combined with performance metrics. In contrast, Architecture models capture the structural
organization of components and are used only in two approaches. The specific methods that are used cover a
broad range. Extended forms of the PCM (Palladio Component model [
          <xref ref-type="bibr" rid="ref29">29</xref>
          ]) are the most prevalent (37%).
All other modeling approaches are only used once. The Quality Evaluation category classifies how the
quality attributes are quantified and evaluated. Model-Based (MB) techniques are predominant (47%),
followed by Simulation-Based (SB) approaches (26%). Layered Queuing Networks (LQN) and M/G/1
queuing models emerged as core approaches for predicting how quality attributes such as response
time, throughput, and system costs behave under load. LQNs are widely adopted due to their capability
to model complex, multi-layered application architectures, with each layer representing diferent
components or services [
          <xref ref-type="bibr" rid="ref30">30</xref>
          ]. Approaches are categorized as “Inherent” if they achieve optimization through
inherent solution satisfaction. These approaches inherently satisfy quality attributes and constraints
and therefore don’t rely on distinct quality evaluation methods. Regarding Degrees of Freedom,
Component Allocation stands out as the most frequently applied, (79%). Horizontal Scalability, Component
Replication, and Resource selection follow closely, indicating a strong emphasis on scaling strategies,
that are essential for enhancing flexibility and performance in cloud environments. The combination
of Horizontal Scalability, Component Replication, and Component Allocation is notably prevalent,
appearing together in 11 approaches [
          <xref ref-type="bibr" rid="ref12 ref15 ref16 ref17 ref18 ref21 ref22 ref24 ref26 ref27 ref9">27, 18, 12, 21, 24, 16, 9, 17, 22, 15, 26</xref>
          ]. For the Optimization strategy
approximate methods dominate in the findings (79%). Exact methods are less common (42%). Within
these, Mixed-Integer Linear Programming and Tabu Search are the most prevalent, highlighting their
efectiveness in solving specific types of architectural optimization problems. Meanwhile, Genetic
Algorithms and Evolutionary Algorithms make up a significant portion of the approximate methods.
In the reviewed approaches, Tabu Search is frequently used as a second-phase refinement method
following an initial solution generated by Mixed Integer Linear Programming. Genetic Algorithms can
be considered as a subfield of Evolutionary Algorithms but since their frequent appearance during the
review, they were categorized separately. For Constraint Handling, the prohibit method is the most
common. It ensures that only feasible configurations are generated by strictly prohibiting any solutions
that violate predefined constraints. Repair strategies are the second most common. They allow minor
adjustments to solutions to meet constraints.
        </p>
        <p>
          Validation Category In the Approach Validation category case studies are often used to demonstrate
practical applicability in realistic settings. However, only a few case studies are conducted within a
productive industrial setting [
          <xref ref-type="bibr" rid="ref19 ref24">24, 19</xref>
          ] and most are using available open-source applications as examples
[
          <xref ref-type="bibr" rid="ref17 ref25">25, 17</xref>
          ] or prototypes [
          <xref ref-type="bibr" rid="ref10 ref27 ref9">27, 10, 9</xref>
          ]. Experiments are also widely used, allowing for controlled, theoretical
validation in simulated environments [
          <xref ref-type="bibr" rid="ref15 ref18 ref20">18, 15, 20</xref>
          ]. Finally, Benchmark Problems, specifically the
SPECjEnterpriseNEXT benchmark, used by Willnecker et al. [
          <xref ref-type="bibr" rid="ref16 ref23">23, 16</xref>
          ], are less common. For Optimization
Validation, a significant portion (53%) of studies did not present any explicit comparative validation.
Comparison with a baseline is otherwise the predominant method, providing a benchmark against
other simpler algorithms or approaches.
1.1 Problem Category
1.2 Solution Category
        </p>
        <p>Phase
Design Time (84%) [18, 12, 21, 24, 28, 16, 10, 15, 9, 17,</p>
        <p>
          22, 20, 23, 14, 13, 26]
Hybrid (16%) [
          <xref ref-type="bibr" rid="ref19 ref25 ref27">27, 19, 25</xref>
          ]
        </p>
        <p>Quality Attributes
Cost (89%) [27, 18, 12, 21, 24, 11, 16, 19, 15, 9,</p>
        <p>
          17, 22, 20, 14, 13, 25, 26]
Performance (47%) [
          <xref ref-type="bibr" rid="ref11 ref13 ref16 ref17 ref23 ref24 ref25 ref26 ref9">24, 11, 16, 9, 17, 23, 13, 25, 26</xref>
          ]
Resource Utilization (11%) [
          <xref ref-type="bibr" rid="ref16 ref23">16, 23</xref>
          ]
Software Quality (5%) [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]
Power Consumption (11%) [
          <xref ref-type="bibr" rid="ref20 ref9">9, 20</xref>
          ]
SLA Violations (5%) [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]
Reliability (5%) [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]
        </p>
        <p>
          Dimensionality
Single-Objective Optimiza- [27, 18, 12, 21, 11, 19, 10, 15, 22, 23,
tion (58%) 14]
Multi-Objective Optimiza- [
          <xref ref-type="bibr" rid="ref13 ref16 ref17 ref24 ref25 ref26 ref9">24, 16, 9, 17, 13, 25, 26</xref>
          ]
tion (37%)
Hybrid (5%)
Fixed (58%)
Customizable (37%)
None (5%)
Performance (74%)
Resource Limits (47%)
Deployment Constraints
(32%)
Cost (42%)
Power Consumption (5%)
License Availability (5%)
SLA Violations (5%)
Reliability (5%)
None (5%)
Deployment (95%)
Software Architecture (5%)
        </p>
        <p>
          [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]
Constraint Freedom
[
          <xref ref-type="bibr" rid="ref11 ref13 ref14 ref17 ref18 ref20 ref23 ref24 ref25 ref26 ref9">18, 24, 11, 9, 17, 20, 23, 14, 13, 25,
26</xref>
          ]
[
          <xref ref-type="bibr" rid="ref12 ref15 ref16 ref19 ref21 ref22 ref27">27, 12, 21, 16, 19, 15, 22</xref>
          ]
[
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]
Constraints
[
          <xref ref-type="bibr" rid="ref11 ref12 ref13 ref14 ref15 ref16 ref17 ref18 ref20 ref23 ref24 ref25 ref26 ref27 ref9">27, 18, 12, 24, 11, 16, 15, 9, 17, 20,
23, 14, 13, 25, 26</xref>
          ]
[
          <xref ref-type="bibr" rid="ref12 ref15 ref16 ref18 ref19 ref20 ref21 ref22 ref27">27, 18, 12, 21, 16, 19, 15, 22, 20</xref>
          ]
[
          <xref ref-type="bibr" rid="ref16 ref19 ref21 ref22 ref23 ref25">21, 16, 19, 22, 23, 25</xref>
          ]
[
          <xref ref-type="bibr" rid="ref11 ref13 ref16 ref17 ref24 ref25 ref26 ref9">24, 11, 16, 9, 17, 13, 25, 26</xref>
          ]
[
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]
[
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]
[
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]
[
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]
[
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]
Architecture Type
[
          <xref ref-type="bibr" rid="ref11 ref12 ref13 ref14 ref15 ref16 ref17 ref18 ref19 ref20 ref21 ref22 ref23 ref24 ref25 ref26 ref27 ref9">27, 18, 12, 21, 24, 11, 16, 19, 15, 9,
17, 22, 20, 23, 14, 13, 25, 26</xref>
          ]
[
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]
1.3 Validation Category
        </p>
        <p>Approach Validation
Case study (58%) [27, 12, 21, 24, 19, 10, 9, 17, 14,</p>
        <p>
          13, 25]
Experiment (32%) [
          <xref ref-type="bibr" rid="ref11 ref15 ref18 ref20 ref22 ref26">18, 11, 15, 22, 20, 26</xref>
          ]
Benchmark problems (11%) [
          <xref ref-type="bibr" rid="ref16 ref23">16, 23</xref>
          ]
        </p>
        <p>Optimization Validation
Not presented (53%) [27, 21, 11, 16, 19, 10, 9, 23, 14,</p>
        <p>
          13]
Comparison with baseline
heuristic algorithm (42%)
Comparison with
random search (5%)
Internal comparison (5%)
[
          <xref ref-type="bibr" rid="ref12 ref15 ref17 ref18 ref20 ref24 ref25 ref26">18, 12, 24, 15, 17, 20, 25, 26</xref>
          ]
[
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]
[
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]
        </p>
        <p>Architecture Representation
Performance Model (48%) [27, 18, 12, 21, 11, 16, 19, 15,</p>
        <p>
          9, 17, 22, 23, 14, 13, 25, 26]
Architecture Model (11%) [
          <xref ref-type="bibr" rid="ref10 ref24">24, 10</xref>
          ]
Evaluation Model (5%) [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]
        </p>
        <p>
          Architecture Representation Method
PCM [extended] (42%) [
          <xref ref-type="bibr" rid="ref12 ref13 ref14 ref15 ref16 ref18 ref23 ref27">27, 18, 12, 16, 15, 23, 14, 13</xref>
          ]
ACM [extended](11%) [
          <xref ref-type="bibr" rid="ref21 ref22">21, 22</xref>
          ] ATG (5%) [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]
Directed Graph (5%) [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] ABS extended (5%) [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ]
TOSCA (5%) [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] UML extended (5%) [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]
CAPOM (5%) [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] LQM (5%) [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]
KDM (5%) [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] None (5%) [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]
        </p>
        <p>Quality Evaluation
Model-Based (47%) [27, 18, 12, 11, 15, 9, 20, 14,</p>
        <p>
          13]
Simulation-Based (26%) [
          <xref ref-type="bibr" rid="ref16 ref19 ref23 ref24 ref25">24, 16, 19, 23, 25</xref>
          ]
Nonlinear Math. Function (21%) [
          <xref ref-type="bibr" rid="ref12 ref15 ref18 ref27">27, 18, 12, 15</xref>
          ]
Inherent (26%) [
          <xref ref-type="bibr" rid="ref10 ref17 ref21 ref22 ref26">21, 10, 17, 22, 26</xref>
          ]
        </p>
        <p>
          Quality Evaluation Method
Layered Queueing Network (42%) [
          <xref ref-type="bibr" rid="ref12 ref13 ref14 ref15 ref18 ref20 ref27 ref9">27, 18, 12, 15, 9, 20, 14, 13</xref>
          ]
M/G/1 (21%) [
          <xref ref-type="bibr" rid="ref12 ref15 ref18 ref27">27, 18, 12, 15</xref>
          ]
Palladio-bench (11%) [
          <xref ref-type="bibr" rid="ref16 ref23">16, 23</xref>
          ]
MC-OQN (5%) [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] Analytical Model (5%) [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]
ABS Simulator (5%) [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] CDOSim (5%) [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ]
Inherent (26%) [
          <xref ref-type="bibr" rid="ref10 ref17 ref21 ref22 ref26">21, 10, 17, 22, 26</xref>
          ]
        </p>
        <p>
          Degrees of Freedom
Component Allocation (79%) [
          <xref ref-type="bibr" rid="ref12 ref13 ref14 ref16 ref17 ref18 ref19 ref20 ref21 ref21 ref22 ref23 ref24 ref25 ref26 ref27 ref9">27, 18, 12, 21, 21, 24, 16, 19,
9, 17, 22, 20, 23, 14, 13, 25,
26</xref>
          ]
Horizontal Scalability (74%) [27, 18, 12, 21, 24, 16, 19, 15,
        </p>
        <p>9, 17, 22, 23, 14, 13, 25, 26]
Component Replication (74%) [27, 18, 12, 21, 21, 24, 16, 19,</p>
        <p>15, 9, 17, 22, 20, 23, 13, 26]
Resource Selection (58%) [27, 18, 12, 21, 24, 19, 15, 17,</p>
        <p>
          22, 14, 25, 26]
Vertical Scalability (26%) [
          <xref ref-type="bibr" rid="ref11 ref13 ref19 ref23 ref25">11, 19, 23, 13, 25</xref>
          ]
Component Selection (16%) [
          <xref ref-type="bibr" rid="ref13 ref14 ref19">19, 14, 13</xref>
          ]
Provider Service Selection (11%) [
          <xref ref-type="bibr" rid="ref15 ref25">15, 25</xref>
          ]
Software Pattern (5%) [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]
Workflow Orchestration (5%) [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]
        </p>
        <p>Optimization Strategy
Approximate (79%) [27, 18, 12, 24, 11, 16, 10, 15,</p>
        <p>
          9, 17, 23, 14, 13, 25, 26]
Exact (42%) [
          <xref ref-type="bibr" rid="ref12 ref15 ref18 ref19 ref20 ref21 ref22 ref27">27, 18, 12, 21, 19, 15, 22, 20</xref>
          ]
        </p>
        <p>
          Optimization Method
Mixed Linear Int. Prog. (26%) [
          <xref ref-type="bibr" rid="ref12 ref15 ref18 ref20 ref27">27, 18, 12, 15, 20</xref>
          ]
Tabu Search (26%) [
          <xref ref-type="bibr" rid="ref12 ref14 ref15 ref18 ref27">27, 18, 12, 15, 14</xref>
          ]
Genetic Algorithm (26%) [
          <xref ref-type="bibr" rid="ref13 ref14 ref25 ref9">9, 14, 13, 25</xref>
          ]
Constraint Programming (16%) [
          <xref ref-type="bibr" rid="ref19 ref21 ref22">21, 19, 22</xref>
          ]
Evolutionary Algorithm(16%) [
          <xref ref-type="bibr" rid="ref16 ref17 ref23 ref24">24, 16, 17, 23</xref>
          ]
Greedy Algorithm (5%) [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]
Refactoring Rules (5%) [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]
Ant Colony Optimization (5%) [
          <xref ref-type="bibr" rid="ref26">26</xref>
          ]
        </p>
        <p>Constraint Handling
Prohibit (79%) [27, 18, 12, 21, 24, 11, 19, 15,</p>
        <p>
          9, 22, 23, 14, 13, 25, 26]
Repair (37%) [
          <xref ref-type="bibr" rid="ref12 ref14 ref15 ref16 ref17 ref18 ref27">27, 18, 12, 16, 15, 17, 14</xref>
          ]
None (5%) [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] Penalty (5%) [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ]
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Discussion</title>
      <p>Architecture Optimization Approaches for Cloud Applications, as considered here, remain a niche topic,
reflected by the relatively few papers found in the literature search. Although this observation may
in part be the result of the more strictly formulated inclusion criteria in Section 3 that consider only
approaches presenting a structured and automated optimization method. More approaches are available
which however include manual steps or do not provide as concrete optimization suggestions as the
approaches considered in this work.</p>
      <p>To answer RQ1, we can state that Aleti et al.’s taxonomy already enables an efective categorization
of cloud application optimization approaches. We adapted it by removing one category, adding new
categories with diferent abstraction levels, and defining a new set of values as described in 4.1.</p>
      <p>For RQ2 our findings in 4.2 represent the basis from which the following conclusions can be drawn:
Dominance of Design-Time Approaches Most reviewed approaches focus on optimization before
deployment, allowing early performance and cost predictions without incurring additional test
infrastructure expenses. This design-time emphasis supports more complex solution derivation, as runtime
constraints (e.g., adaptation speed) are less critical. However, questions remain about the actual benefits
of runtime optimization versus predefined scaling policies.</p>
      <p>Prevalence of Cost and Performance as Key Quality Attributes: Cost and performance dominate
in the reviewed approaches. Cost optimization, in particular, appears in nearly all single-objective
approaches and all multi-objective ones, reflecting the economic focus of using cloud services.
Furthermore, performance and cost are more straightforward to observe at runtime in order to validate
optimization approaches. Optimization approaches for other quality aspects, like maintainability or
portability require more efort in their validation since case studies or experiments need to be done in a
longer time span. While this focus on performance and cost is practical, it highlights a research gap
concerning other quality attributes, for example also reliability.</p>
      <p>Focus on Performance Models and Palladio Component Model Many approaches rely on
performance models, with PCM being the most widely used thanks to its maturity and tool support. This
strong focus indicates PCM’s efectiveness in predicting and evaluating QoS attributes. Although
alternatives such as Aeolus or customized models exist and are employed the PCM is the only model
with widespread adoption in the reviewed approaches.</p>
      <p>
        Dominance of Approximate Optimization Strategies 79% of the approaches apply heuristic or
approximate approaches to tackle the NP-hard [
        <xref ref-type="bibr" rid="ref31">31</xref>
        ] nature of cloud architecture optimization. Exact
methods appear less frequently and often in combination with approximations, usually by limiting
problem scope or mixing modeling techniques to ensure feasibility.
      </p>
      <p>Validation Gap in Cloud Architecture Optimization. Few standardized benchmarks exist, making
comparisons across approaches dificult. Most validations rely on case studies rather than real-world
industrial settings and lack detailed demonstrations of economic benefits. Future research could focus
on robust benchmarking frameworks and well-documented success stories to strengthen the field’s
credibility and practical impact.</p>
      <p>Some limitations of this review must be acknowledged. Only complete optimization approaches
presented in academia were included which are typically toolchains comprised of diferent subfields
like software modeling and the formulation of optimization problems. Therefore advancements in
individual subfields and industry-driven solutions are not part of this study. Additionally, threats to
completeness arise from the selection of databases and search terms. Also, the review was mainly
conducted by a single researcher. Therefore the risk of some bias can’t be completely excluded but was
mitigated through a clear methodology and taxonomy-based extraction.</p>
      <p>
        As stated before, we are not aware of another review for software architecture optimization approaches
specifically targeting cloud applications. Therefore, as related work mainly the reviewed primary studies
would have to be considered and the review by Aleti et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] upon which this study is built.
      </p>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <p>This work presents a systematic review of 19 papers on architecture optimization approaches for cloud
applications. A taxonomy for categorizing approaches was derived and current research trends in the
ifeld were identified. Key findings include the dominance of design-time optimization, cost-focused goals,
reliance on performance models like PCM, and the prevalence of approximate optimization methods.
Gaps in validation strategies and a lack of standardized benchmarks were identified, highlighting areas
for improvement. These insights aim to guide future research and development for new approaches,
advancing the field with more robust and versatile solutions.</p>
    </sec>
    <sec id="sec-7">
      <title>Declaration on Generative AI</title>
      <p>During the preparation of this work, the authors used Grammarly in order to: Grammar and spelling
check. After using this tool, the authors reviewed and edited the content as needed and take full
responsibility for the publication’s content.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Taherkordi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Zahid</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Verginadis</surname>
          </string-name>
          , G. Horn,
          <article-title>Future cloud systems design: Challenges and research directions</article-title>
          ,
          <source>IEEE Access 6</source>
          (
          <year>2018</year>
          )
          <fpage>74120</fpage>
          -
          <lpage>74150</lpage>
          . doi:
          <volume>10</volume>
          .1109/access.
          <year>2018</year>
          .
          <volume>2883149</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>N.</given-names>
            <surname>Kratzke</surname>
          </string-name>
          , P.-C.
          <article-title>Quint, Understanding Cloud-native Applications after 10 Years of Cloud Computing - A Systematic Mapping Study</article-title>
          ,
          <source>Journal of Systems and Software</source>
          <volume>126</volume>
          (
          <year>2017</year>
          )
          <fpage>1</fpage>
          -
          <lpage>16</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.jss.
          <year>2017</year>
          .
          <volume>01</volume>
          .001.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>A.</given-names>
            <surname>Aleti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Buhnova</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Grunske</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Koziolek</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Meedeniya</surname>
          </string-name>
          ,
          <article-title>Software architecture optimization methods: A systematic literature review</article-title>
          ,
          <source>IEEE TSE 39</source>
          (
          <year>2013</year>
          )
          <fpage>658</fpage>
          -
          <lpage>683</lpage>
          . doi:
          <volume>10</volume>
          .1109/tse.
          <year>2012</year>
          .
          <volume>64</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Shaw</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Clements</surname>
          </string-name>
          ,
          <article-title>The golden age of software architecture</article-title>
          ,
          <source>IEEE Software 23</source>
          (
          <year>2006</year>
          )
          <fpage>31</fpage>
          -
          <lpage>39</lpage>
          . doi:
          <volume>10</volume>
          .1109/ms.
          <year>2006</year>
          .
          <volume>58</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5] ISO/IEC/IEEE, ISO/IEC/IEEE 42010:
          <fpage>2022</fpage>
          -
          <article-title>Software, systems</article-title>
          and enterprise - Architecture description,
          <year>2022</year>
          . URL: https://www.iso.org/standard/74393.html.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C.</given-names>
            <surname>Pahl</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Jamshidi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Zimmermann</surname>
          </string-name>
          ,
          <article-title>Architectural Principles for Cloud Software</article-title>
          ,
          <source>ACM Transactions on Internet Technology</source>
          <volume>18</volume>
          (
          <year>2018</year>
          )
          <fpage>1</fpage>
          -
          <lpage>23</lpage>
          . doi:
          <volume>10</volume>
          .1145/3104028.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>N.</given-names>
            <surname>Kratzke</surname>
          </string-name>
          , R. Peinl, ClouNS
          <article-title>- a Cloud-Native Application Reference Model for Enterprise Architects</article-title>
          ,
          <source>in: IEEE 20th International Enterprise Distributed Object Computing Workshop (EDOCW)</source>
          , IEEE,
          <year>2016</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>10</lpage>
          . doi:
          <volume>10</volume>
          .1109/edocw.
          <year>2016</year>
          .
          <volume>7584353</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>B.</given-names>
            <surname>Kitchenham</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Charters</surname>
          </string-name>
          ,
          <article-title>Guidelines for Performing Systematic Literature Reviews in Software Engineering</article-title>
          , techreport EBSE-2007-01, Keele University and Durham University,
          <year>2007</year>
          . URL: https://legacyfileshare.elsevier.com/promis_misc/525444systematicreviewsguide.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>V.</given-names>
            <surname>Cortellessa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. Di</given-names>
            <surname>Pompeo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Tucci</surname>
          </string-name>
          ,
          <article-title>Exploring Sustainable Alternatives for the Deployment of Microservices Architectures in the Cloud</article-title>
          ,
          <source>in: 2024 IEEE 21st International Conference on Software Architecture (ICSA)</source>
          ,
          <year>2024</year>
          , pp.
          <fpage>34</fpage>
          -
          <lpage>45</lpage>
          . doi:
          <volume>10</volume>
          .1109/ICSA59870.
          <year>2024</year>
          .
          <volume>00012</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>J.</given-names>
            <surname>Soldani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Muntoni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Neri</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Brogi</surname>
          </string-name>
          , The
          <article-title>TOSCA toolchain: Mining, analyzing, and refactoring microservice-based architectures</article-title>
          ,
          <source>Software: Practice and Experience</source>
          <volume>51</volume>
          (
          <year>2021</year>
          )
          <fpage>1591</fpage>
          -
          <lpage>1621</lpage>
          . doi:
          <volume>10</volume>
          .1002/spe.2974.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>C.</given-names>
            <surname>Lin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Khazaei</surname>
          </string-name>
          ,
          <article-title>Modeling and Optimization of Performance and Cost of Serverless Applications</article-title>
          ,
          <source>IEEE TPDS 32</source>
          (
          <year>2021</year>
          )
          <fpage>615</fpage>
          -
          <lpage>632</lpage>
          . doi:
          <volume>10</volume>
          .1109/TPDS.
          <year>2020</year>
          .
          <volume>3028841</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ciavotta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. P.</given-names>
            <surname>Gibilisco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Ardagna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. D.</given-names>
            <surname>Nitto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lattuada</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A. A.</given-names>
            <surname>Da</surname>
          </string-name>
          <string-name>
            <surname>Silva</surname>
          </string-name>
          ,
          <article-title>Architectural Design of Cloud Applications: A Performance-Aware Cost Minimization Approach</article-title>
          ,
          <source>IEEE Transactions on Cloud Computing</source>
          <volume>10</volume>
          (
          <year>2022</year>
          )
          <fpage>1571</fpage>
          -
          <lpage>1591</lpage>
          . doi:
          <volume>10</volume>
          .1109/TCC.
          <year>2020</year>
          .
          <volume>3015703</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>A.</given-names>
            <surname>Koziolek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Koziolek</surname>
          </string-name>
          , R. Reussner, PerOpteryx: Automated application
          <article-title>of tactics in multiobjective software architecture optimization</article-title>
          ,
          <source>in: Joint ACM SIGSOFT Conference - QoSA and ACM SIGSOFT Symposium - ISARCS on Quality of Software Architectures</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , Boulder Colorado USA,
          <year>2011</year>
          , pp.
          <fpage>33</fpage>
          -
          <lpage>42</lpage>
          . doi:
          <volume>10</volume>
          .1145/2000259.2000267.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ciavotta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ardagna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Koziolek</surname>
          </string-name>
          , Palladio Optimization Suite:
          <article-title>QoS optimization for component-based Cloud applications</article-title>
          ,
          <source>in: 9th EAI International Conference on Performance Evaluation Methodologies and Tools</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , Berlin, Germany,
          <year>2016</year>
          . doi:
          <volume>10</volume>
          .4108/eai.14-
          <fpage>12</fpage>
          -
          <year>2015</year>
          . 2262562.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>M.</given-names>
            <surname>Ciavotta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Ardagna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. P.</given-names>
            <surname>Gibilisco</surname>
          </string-name>
          ,
          <article-title>A mixed integer linear programming optimization approach for multi-cloud capacity allocation</article-title>
          ,
          <source>Journal of Systems and Software</source>
          <volume>123</volume>
          (
          <year>2017</year>
          )
          <fpage>64</fpage>
          -
          <lpage>78</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.jss.
          <year>2016</year>
          .
          <volume>10</volume>
          .001.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>F.</given-names>
            <surname>Willnecker</surname>
          </string-name>
          ,
          <string-name>
            <surname>H.</surname>
          </string-name>
          <article-title>Krcmar, Multi-Objective Optimization of Deployment Topologies for Distributed Applications</article-title>
          ,
          <source>ACM Transactions on Internet Technology</source>
          <volume>18</volume>
          (
          <year>2018</year>
          )
          <fpage>1</fpage>
          -
          <lpage>21</lpage>
          . doi:
          <volume>10</volume>
          .1145/3106158.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>X.</given-names>
            <surname>Du</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Ni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Ye</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Xiao</surname>
          </string-name>
          ,
          <article-title>Performance Optimization of Cloud Application at Software Architecture Level</article-title>
          , in: K.
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Wang</surname>
          </string-name>
          , Y. Liu (Eds.),
          <source>Artificial Intelligence Algorithms and Applications</source>
          , volume
          <volume>1205</volume>
          ,
          <string-name>
            <surname>Springer</surname>
            <given-names>Singapore</given-names>
          </string-name>
          ,
          <year>2020</year>
          , pp.
          <fpage>724</fpage>
          -
          <lpage>738</lpage>
          . doi:
          <volume>10</volume>
          .1007/
          <fpage>978</fpage>
          -981-15-5577-0_
          <fpage>58</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>D.</given-names>
            <surname>Ardagna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. P.</given-names>
            <surname>Gibilisco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ciavotta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Lavrentev</surname>
          </string-name>
          ,
          <article-title>A Multi-model Optimization Framework for the Model Driven Design of Cloud Applications</article-title>
          , in: C. Le
          <string-name>
            <surname>Goues</surname>
          </string-name>
          , S. Yoo (Eds.),
          <source>Search-Based Software Engineering</source>
          , volume
          <volume>8636</volume>
          , Springer International Publishing, Cham,
          <year>2014</year>
          , pp.
          <fpage>61</fpage>
          -
          <lpage>76</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -09940-
          <issue>8</issue>
          _
          <fpage>5</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>S.</given-names>
            <surname>De Gouw</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Mauro</surname>
          </string-name>
          , G. Zavattaro,
          <article-title>On the modeling of optimal and automatized cloud application deployment</article-title>
          ,
          <source>Journal of Logical and Algebraic Methods in Programming</source>
          <volume>107</volume>
          (
          <year>2019</year>
          )
          <fpage>108</fpage>
          -
          <lpage>135</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.jlamp.
          <year>2019</year>
          .
          <volume>06</volume>
          .001.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <given-names>J. Z.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Woodside</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Chinneck</surname>
          </string-name>
          , M. Litoiu,
          <article-title>CloudOpt: Multi-goal optimization of application deployments across a cloud</article-title>
          ,
          <source>in: 7th International Conference on Network and Service Management</source>
          ,
          <year>2011</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>9</lpage>
          . URL: https://ieeexplore.ieee.org/abstract/document/6103947.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>R. Di</given-names>
            <surname>Cosmo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lienhardt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Treinen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Zacchiroli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zwolakowski</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Eiche</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Agahi</surname>
          </string-name>
          ,
          <article-title>Automated synthesis and deployment of cloud applications</article-title>
          ,
          <source>in: 29th ACM/IEEE International Conference on Automated Software Engineering</source>
          , ACM,
          <string-name>
            <surname>Vasteras</surname>
            <given-names>Sweden</given-names>
          </string-name>
          ,
          <year>2014</year>
          , pp.
          <fpage>211</fpage>
          -
          <lpage>222</lpage>
          . doi:
          <volume>10</volume>
          .1145/ 2642937.2642980.
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>E.</given-names>
            <surname>Ábrahám</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Corzilius</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. B.</given-names>
            <surname>Johnsen</surname>
          </string-name>
          , G. Kremer,
          <string-name>
            <surname>J. Mauro,</surname>
          </string-name>
          <article-title>Zephyrus2: On the Fly Deployment Optimization Using SMT and CP Technologies</article-title>
          , in: M.
          <string-name>
            <surname>Fränzle</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Kapur</surname>
          </string-name>
          , N. Zhan (Eds.), Dependable Software Engineering: Theories, Tools, and Applications, Springer International Publishing, Cham,
          <year>2016</year>
          , pp.
          <fpage>229</fpage>
          -
          <lpage>245</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -47677-3_
          <fpage>15</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>F.</given-names>
            <surname>Willnecker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Krcmar</surname>
          </string-name>
          ,
          <article-title>Optimization of Deployment Topologies for Distributed Enterprise Applications</article-title>
          , in: 12th
          <source>International ACM SIGSOFT Conference on Quality of Software Architectures (QoSA)</source>
          , IEEE, Venice,
          <year>2016</year>
          , pp.
          <fpage>106</fpage>
          -
          <lpage>115</lpage>
          . doi:
          <volume>10</volume>
          .1109/QoSA.
          <year>2016</year>
          .
          <volume>11</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          [24]
          <string-name>
            <given-names>N.</given-names>
            <surname>Tanković</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T. Galinac</given-names>
            <surname>Grbac</surname>
          </string-name>
          , M. Žagar,
          <article-title>ElaClo: A framework for optimizing software application topology in the cloud environment</article-title>
          ,
          <source>Expert Systems with Applications</source>
          <volume>90</volume>
          (
          <year>2017</year>
          )
          <fpage>62</fpage>
          -
          <lpage>86</lpage>
          . doi:
          <volume>10</volume>
          . 1016/j.eswa.
          <year>2017</year>
          .
          <volume>07</volume>
          .001.
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          [25]
          <string-name>
            <given-names>S.</given-names>
            <surname>Frey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Fittkau</surname>
          </string-name>
          , W. Hasselbring,
          <article-title>Search-based genetic optimization for deployment and reconifguration of software in the cloud</article-title>
          ,
          <source>in: 35th International Conference on Software Engineering (ICSE)</source>
          , IEEE, San Francisco, CA, USA,
          <year>2013</year>
          , pp.
          <fpage>512</fpage>
          -
          <lpage>521</lpage>
          . doi:
          <volume>10</volume>
          .1109/ICSE.
          <year>2013</year>
          .
          <volume>6606597</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          [26]
          <string-name>
            <given-names>A.</given-names>
            <surname>Ashraf</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Byholm</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Porres</surname>
          </string-name>
          ,
          <article-title>A Multi-objective ACS Algorithm to Optimize Cost, Performance, and Reliability in the Cloud</article-title>
          ,
          <source>in: 2015 IEEE/ACM 8th International Conference on Utility and Cloud Computing (UCC)</source>
          , IEEE, Limassol, Cyprus,
          <year>2015</year>
          , pp.
          <fpage>341</fpage>
          -
          <lpage>347</lpage>
          . doi:
          <volume>10</volume>
          .1109/UCC.
          <year>2015</year>
          .
          <volume>54</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          [27]
          <string-name>
            <given-names>M.</given-names>
            <surname>Guerriero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ciavotta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G. P.</given-names>
            <surname>Gibilisco</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Ardagna</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A</given-names>
            <surname>Model-Driven DevOps Framework for QoS-Aware Cloud</surname>
          </string-name>
          Applications, in: 17th
          <source>International Symposium on Symbolic and Numeric Algorithms for Scientific Computing (SYNASC)</source>
          , IEEE, Timisoara, Romania,
          <year>2015</year>
          , pp.
          <fpage>345</fpage>
          -
          <lpage>351</lpage>
          . doi:
          <volume>10</volume>
          .1109/SYNASC.
          <year>2015</year>
          .
          <volume>60</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          [28]
          <string-name>
            <given-names>M.</given-names>
            <surname>Loukides</surname>
          </string-name>
          , The Cloud in 2021: Adoption Continues,
          <string-name>
            <given-names>O</given-names>
            <surname>'Reilly Media</surname>
          </string-name>
          , Inc.,
          <year>2021</year>
          . URL: https: //www.oreilly.com/radar/the-cloud-in-2021
          <string-name>
            <surname>-</surname>
          </string-name>
          adoption-continues/.
        </mixed-citation>
      </ref>
      <ref id="ref29">
        <mixed-citation>
          [29]
          <string-name>
            <given-names>S.</given-names>
            <surname>Becker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Koziolek</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Reussner</surname>
          </string-name>
          ,
          <article-title>The Palladio component model for model-driven performance prediction</article-title>
          ,
          <source>Journal of Systems and Software</source>
          <volume>82</volume>
          (
          <year>2009</year>
          )
          <fpage>3</fpage>
          -
          <lpage>22</lpage>
          . doi:
          <volume>10</volume>
          .1016/j.jss.
          <year>2008</year>
          .
          <volume>03</volume>
          .066.
        </mixed-citation>
      </ref>
      <ref id="ref30">
        <mixed-citation>
          [30]
          <string-name>
            <given-names>G.</given-names>
            <surname>Franks</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Al-Omari</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Woodside</surname>
          </string-name>
          ,
          <string-name>
            <surname>O. Das</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Derisavi</surname>
          </string-name>
          ,
          <article-title>Enhanced Modeling and Solution of Layered Queueing Networks</article-title>
          ,
          <source>IEEE TSE 35</source>
          (
          <year>2009</year>
          )
          <fpage>148</fpage>
          -
          <lpage>161</lpage>
          . doi:
          <volume>10</volume>
          .1109/TSE.
          <year>2008</year>
          .
          <volume>74</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref31">
        <mixed-citation>
          [31]
          <string-name>
            <given-names>G.</given-names>
            <surname>Canfora</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Di</given-names>
            <surname>Penta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Esposito</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. L.</given-names>
            <surname>Villani</surname>
          </string-name>
          ,
          <article-title>An approach for qos-aware service composition based on genetic algorithms</article-title>
          ,
          <source>in: Proceedings of the 7th Annual Conference on Genetic and Evolutionary Computation</source>
          , GECCO '05,
          <string-name>
            <surname>Association</surname>
          </string-name>
          for Computing Machinery, New York, NY, USA,
          <year>2005</year>
          , p.
          <fpage>1069</fpage>
          -
          <lpage>1075</lpage>
          . doi:
          <volume>10</volume>
          .1145/1068009.1068189.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>