<!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>
      <journal-title-group>
        <journal-title>IWSG</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Flexible Deployment of Social Media Analysis Tools</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gabriele Pierantoni</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tamas Kiss</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gregoire Gesmier</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>James DesLauriers</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Gabor Terstyanszky</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science, University of Westminster London</institution>
          ,
          <country country="UK">United Kingdom</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>R&amp;D Department INYCOM Zaragoza</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <volume>13</volume>
      <fpage>13</fpage>
      <lpage>15</lpage>
      <abstract>
        <p>- The relationship between companies and customers and among public authorities and citizens has changed dramatically with the widespread utilisation of the Internet and Social Networks. To help governments to keep abreast of these changes, Inycom has developed Eccobuzz and Magician, a set of web applications for Social Media data mining. The unpredictable load of these applications requires flexible user-defined policies and automated scalability during deployment and execution time. Even more importantly, privacy norms require that data is restricted to certain physical locations. This paper explains how such applications are described with Application Description Templates (ADTs). ADTs define complex topology descriptions and various deployment, scalability and security policies, and how these templates are used by a submitter that translates this generic information into executable format for submission to the reference framework of the COLA European project</p>
      </abstract>
      <kwd-group>
        <kwd>COLA</kwd>
        <kwd>TOSCA</kwd>
        <kwd>Cloud Orchestration</kwd>
        <kwd>Swarm</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>The relationship of companies with their customers and of
public authorities with their citizens has changed dramatically
with the widespread utilisation of the Internet and Social
Networks. Monitoring this information has become a critical
aspect for private companies, but it is still scarcely used in the
public sector. To overcome this disparity, the Aragon Regional
Government in Spain has set the goal to develop communication
channels with citizens to become aware of their opinion about
the local government’s services, and how these can be improved.
The authorities also want to offer information to entrepreneurs
and companies in the region that can be used to improve
businesses or develop new ones.</p>
      <p>The local government already collects large amounts of data
resulting from interactions with its citizens (e.g. applying for
public services such as grants, aids, subsidies, and licenses). This
data can be combined and extended with information publicly
available in social networks. The aim is to set up a business
gateway that is supported by the intelligent analysis and
utilisation of all available information.</p>
      <p>To fulfil this target, Inycom [1], an ICT company
headquartered in Aragon, developed Eccobuzz, a web
application for Social Media data mining, competitive</p>
      <sec id="sec-1-1">
        <title>José Manuel Martín Rapún</title>
        <p>intelligence and brand and media management. It is offered as a
Software as Service (SaaS) product hosted in Inycom’s Data
Centre. Some private customers, particularly larger
organizations, use a different distribution of Eccobuzz with
extended functionalities, called Magician. This distribution can
be personalized and deployed in customers’ premises. An
interesting feature provided by Magician is that it not only
collects and structures raw data from the Internet, but it also
gathers information about the user posting this data, and his/her
sentiment about it. Therefore, Magician is an ideal candidate for
the Aragon Regional Government to collect and analyse data
regarding its citizens, and their opinion and attitude towards
local services.</p>
        <p>When Social Media Analysis Tools are used correctly, they
can offer precious insight that can be used to improve services,
on the other hand, the very nature of these tools and the data they
rely upon, pose difficult challenges in the protection of the
privacy of the data of the users. These challenges are further
complicated when databases and software processes may run on
different Clouds requiring access to a heterogeneous set of
resources in a dynamic way. Two further aspects of these Social
Media Analysis Tools are the ever-increasing size of the amount
of data available and, at the same time, the unpredictable
fluctuation of computing load required due to the high level of
uncertainty on how much information will be collected by the
crawlers to be processed later.</p>
        <p>Eccobuzz and Magician search the Internet for information
and process it semantically producing valuable structured
information made available through web interface, excel export
and pdf reports. The main components and information flow in
this system are displayed in Figure 1. This paper does not intend
to describe in great detail the implementation of Eccobuzz and
Magician, but rather to describe how, in order to meet support
the above challenges, these tools are currently being prototyped
for the submission to the reference framework developed by the
COLA (Cloud Orchestration at the Level of Application)
European project [2].</p>
        <p>As part of this work, the applications’ architectures are
described in a TOSCA-based (Topology and Orchestration
Specification for Cloud Applications) [3] description format,
together with Policies that describe desired Quality of Service
(QoS) parameters related to performance, scalability, economic
viability and other security and privacy-related aspects.</p>
        <p>These policies are the means through which COLA describes
the requirements and constraints that are to be met during the
application lifecycle in the cloud in order to meet the unique
challenges of the Social Media Analysis Tools. This
standardsbased description is then translated to be used by components of
the COLA reference framework in order to deploy the
application topology and enforce various scalability and security
policies. As these applications are the very first large-scale case
studies to be deployed, the experiences learned during this
process are constantly fed back and influence the development
of the COLA reference framework.</p>
        <p>This paper presents our experiences when developing
application description templates including both topology and
policy descriptions for Eccobuzz and Magician and
demonstrates how such templates can be translated and utilized
by container-based cloud technologies for their deployment. The
rest of this paper is structured as follows: Section 2 introduces
the COLA project and its objectives, Section 3 describes the
concept of Application Description Templates (ADT) used to
describe applications and their policies in COLA, Section 4
presents the architecture of the Application Submitter, Section 5
and Section 6 provide details of the current prototype. Section 7
describes related work, comparing ADTs to similar solutions
offered by other cloud service providers including Microsoft
ARM templates and Amazon CloudFormation templates.
Finally, Section 8 concludes the paper with a summary and
future work.</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>II. THE COLA PROJECT</title>
      <p>SMEs and public-sector organizations increasingly
investigate the possibilities of using cloud computing services in
their everyday business. Accessing services and resources in the
cloud on-demand and in a flexible and elastic way could result
in significant cost savings due to more efficient and convenient
resource utilization that also replaces large investment costs with
1
long term operational costs. On the other hand, the take up of
cloud computing by SMEs and the public sector is still relatively
low due to limited application-level flexibility and security
concerns as suggested in the Work Programme for Information
and Communication Technology1</p>
      <p>A European funded research project, Cloud Orchestration at
the Level of Application (COLA) aims at addressing these
difficulties to foster the adoption of cloud computing services.
COLA is based on a conceptual architecture that describes
several generic components which offer fundamental
functionalities needed to support the optimal and secure
deployment and run-time orchestration of cloud applications.
Such applications can then be embedded into workflows or
science gateway frameworks to support complex application
scenarios from user-friendly interfaces.</p>
      <p>COLA does not dictate implementation details of its
components and defines a reference implementation whereby
the various components can be substituted in a pluggable
fashion. However, COLA defines a few fundamental
functionalities that have to be offered by its pluggable
components: the management of virtual machines, the
management of containers within these virtual machines and the
enforcement of policies which describe various Quality of
Service (QoS) parameters related to deployment, geographical
location, performance, economic viability and security.</p>
      <p>To describe the application architecture and the policies that
govern their lifecycle, the COLA project developed the concept
of Application Description Templates (ADT) which are based
on the TOSCA Language Specification [4][5]. ADTs offer a
description of applications that is as technology-agnostic as
possible. As TOSCA is a generic specification of a
metalanguage, the COLA project has proposed a specific TOSCA
compliant description format for the Application Description
Templates.</p>
      <p>To support the development and testing of such description
language, COLA prototypes three industry case-studies and
develops near production level demonstrators to showcase its
results. These three large-scale application examples, besides
the already described Eccobuzz and Magician, include the
scalable deployment of complex evacuation simulation
scenarios, and the analysis of data arising from ticket sales of
various cultural institutions. While these three case-studies
directly influence the early development of the COLA reference
framework and the related ADTs, in the second phase of the
project, twenty further use-cases will be prototyped as proof of
concepts on the developed solution.</p>
      <p>III. THE APPLICATION DESCRIPTION TEMPLATE (ADT)
ADTs act as information conduits that connect Application
Developers to the various components of the COLA reference
framework. Although the COLA reference framework defines
various components, the most relevant for the design of ADTs
and for the scope of this paper are those represented in Figure 2.</p>
      <p>The information stored in the ADT is parsed and dispatched
to the relevant components. This information includes policies
that define behavior of the applications (including security
features), and information that is required for the deployment of
virtual machines and containers.</p>
      <p>The Application Submitter is responsible for the division of
this information as follows: Information that describes the
deployment of containers goes to a container orchestrator that is
connected to container managers. Information specific to the
selection and execution of virtual machines is passed on to a
cloud orchestrator component which is connected to one or more
cloud provider. Finally, information specific to policies, is
dispatched to one or more policy engines that in turn enforce the
various policies by connecting to the other components of the
COLA reference framework.</p>
      <p>To combine the flexibility offered by technology-oriented
agnosticism of COLA with the expressiveness required to
describe all the various facets of a large variety of applications,
we have designed the ADT to describe two main aspects of
applications: its topology and its policies. The topology
describes the main components of the application whilst the
policies describe the modalities that govern the various parts of
the application lifecycle.</p>
      <sec id="sec-2-1">
        <title>A. The ADT General Structure</title>
        <p>Each ADT consists of one topology template that
comprehends the components described in Figure 3. The Input
Section groups together fields that Application Developers are
likely to override their default value. The Policies Section
defines the policies that are applied to the application. Each
policy can be applied to one or more nodes at different stages of
their lifecycle. The Container Section defines a set of nodes
that specify the Container Images that contain the various
components of the applications. Finally, the Virtual Images
Section defines the characteristics of the Virtual Machines that
will host the Container Images defined in the section above.</p>
      </sec>
      <sec id="sec-2-2">
        <title>B. Application Topology</title>
        <p>The Topology of the Application is contained in the
Container and Virtual Images layers. The first deals with the
deployment of the application components into containerized
services, and the second describes how such containers are to be
deployed in virtual machines. The various containers that
compose the image are connected with edges that implement the
TOSCA ConnectsTo relations. The relationship that connects a
container to the virtual machine it should deployed in is
described with the HostedOn relationship specified by TOSCA.</p>
        <p>The description and enforcement of policies in TOSCA is an
additional dimension to the description of the application
topologies. Policies define and enforce the modalities that
regulate the application lifecycle.</p>
        <p>TOSCA allows the definition of type hierarchies of arbitrary
complexity. COLA defines a three-layered hierarchy of policies
that all derive from the TOSCA Root Policy. To facilitate the
application of policies at the various levels, each policy defines
the nodes it has to be applied to. For each node, the overall policy
is composed of sub-policies that describe the various features
such as security, scalability, etc. Each policy is in turn divided
into two main sections. The Description Section comprises
meta-data which define the name, type and description of the
policy, as well as a target (defined elsewhere in the topology) to
which the policy should apply. The Properties Section contains
data that falls under two kinds of parameters: common to all
COLA policies types, and specific to each policy type.</p>
        <p>Common Properties are Stage (which defines at which stage
of the lifecycle of the element the policy is applied), and Priority
(which is an arbitrary integer ranging from 0 to 100 used to
define the priority with which the policy will be implemented).
Specific Properties are specific to each Policy. These parameters
vary depending on the nature of the policy itself. As an example:
a scalability policy based on CPU consumption will define
various parameters that specify scalability thresholds, a
deployment policy will define minimum number of CPUs,
minimum memory size for deployment, etc…</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>IV. THE APPLICATION SUBMITTER</title>
      <p>The Application Submitter, a prototype of which is currently
under development and testing at the University of Westminster,
implements the submission of the ADT. The Application
Submitter performs two main actions upon an ADT: it separates
its various components (Container Orchestration, Virtual
Machine, and Policies) and then invokes adaptors which
translate the information into a format understood by their
respective components. To support the technology-oriented
agnosticism of the ADT, the Application Submitter adopts the
design described in Figure 4.</p>
      <p>
        The Application Submitter relies on the OpenStack TOSCA
parser[
        <xref ref-type="bibr" rid="ref5">7</xref>
        ] which is used to read a TOSCA file, check its
syntactical correctness and create an in-memory dictionary
which is then passed to the Mapper component. The Mapper
uses a key list to isolate the information subset that is then passed
along to the various adaptors that format them into the structure
expected by the corresponding components of the COLA
reference framework.
      </p>
      <p>
        V. THE DESCRIPTION OF MAGICIAN WITH THE ADT
We have used an ADT to describe the deployment of the
Motor Engine of Magician and its configuration database (based
on MongoDB[
        <xref ref-type="bibr" rid="ref6">8</xref>
        ]) to the COLA reference framework. For this
first prototype, it was decided to deploy the main components of
Magician within a single container and to express four main
aspects of the policies that govern its behaviour: scalability,
resources and security connections. The two policies that deal
with scalability and Location Deployment are particularly
relevant to the deployment and execution of Social Media
Analysis Tools as they address the main concerns of unexpected
load fluctuations and they allow to maintain the data sets within
a geographical area ruled by certain legal constraints and
requirements (e.g. the European General Data Protection
Regulation2). The policies are recapitulated in Table 1 and
described following the structure introduced in Section III. C.
      </p>
      <p>Policy
Number
P1.1
P1.2
P1.3
P1.4</p>
      <p>Policy Type</p>
      <p>Policy Description
Consumption
Based
Scalability</p>
      <p>Defines minimum and maximum CPU
consumptions thresholds above which a new
container instance is deployed and below which a
container instance is un-deployed
Connection
Deployment
Policy
Resource
Deployment
Policy
Location
Deployment</p>
      <p>Policy
Table 1, Policies Describing the deployment and execution of
Magician
Defines the minimum requirements of the Virtual
Machine in terms of CPU, Memory Size and Disk
size.</p>
      <p>Defines the physical location of the computation
and storage resources.</p>
      <p>Defines the set of inbound connections that must
be allowed.</p>
      <sec id="sec-3-1">
        <title>2 https://www.eugdpr.org/</title>
        <p>As an example of the ADT policy description, we describe
in Table 2 the parameters that define the Application Scalability
Policy which govern how containers are scaled up and down
depending on the CPU consumption of the Magician Container.</p>
        <p>Name
Stage
Priority
Namespace
Max
Min
Time</p>
        <p>Value
Execution</p>
        <p>Description
The part of the application lifecycle to
which the policy applies
100 eTnhfeorpceridority with which the policy is</p>
        <p>Defines the namespace of the service
Prometheus used for monitoring the CPU
consumption.</p>
        <p>Defines the maximum CPU consumption
80 (in percentage) above which a new
instance is deployed.</p>
        <p>Defines the minimum CPU consumption
20 (in percentage) under which the instance
is un-deployed.</p>
        <p>Defines (in seconds) the amount of time
600 above or below the Max/Min threshold</p>
        <p>before the action is triggered
Table 2, Example of Policy Implementation Parameters
Type
TOSCA
Node
State
Integer
String
Integer
Integer
Integer</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>VI. PROTOTYPE IMPLEMENTATION</title>
      <p>
        To demonstrate the feasibility of the above-described
concepts, a first version on the Application Submitter has been
implemented that translates the ADT into a format understood
by a Container Orchestrator. The current prototype of the
COLA reference framework uses Docker Swarm[
        <xref ref-type="bibr" rid="ref7">9</xref>
        ] as
Container Orchestrator and we have configured the Application
Submitter to connect with it through an adapter that transforms
the container-level application topology into a compose file[
        <xref ref-type="bibr" rid="ref8">10</xref>
        ].
The Policy Keeper is currently under development, so Policies
are parsed by the Application Submitter but no adaptor is
available as of now. For testing purposes, the same policies are
hard-coded on the different components.
      </p>
      <p>The ADT is first parsed and validated by the OpenStack
parser. The mapper then separates out the container-relevant
sections of TOSCA and passes them to a translator. This
container-level portion of TOSCA (Figure 7) is translated into
the format of a Docker-Compose file (Figure 8) so that it may
be understood by the currently implemented container
orchestrator, Docker Swarm. As TOSCA and Docker Compose
both appropriate YAML as a language, translation from the
former to the latter is straightforward. An adaptor for this
specific container orchestrator considers three basic sets of
information within the subset of data that is provided by the
Mapper.</p>
      <p>The first are the TOSCA properties defined within the
description of containers. These properties should align with the
runtime arguments that can be passed to Docker via the docker
run command or via a Docker Compose file, and should follow
the naming conventions of the Docker Compose format. One
example of this is seen in Figure 7, where the property for ports
is defined, but other options such as command, entrypoint, and
environment should also be defined at this level. Translation of
these properties simply involves copying them across under a
new key in the Compose file.</p>
      <p>The second set of information is contained within TOSCA
artefacts, which define external data that must be retrieved
during orchestration. The image from which to build the
container is described as an artefact with properties that define
the image name, as well as the repository where it can be found.</p>
      <p>The final set of information to translate comes in the form of
TOSCA relationships. Relationships match TOSCA
requirements with matching capabilities to describe how the
various components within the ADT should interact with each
other. TOSCA standards define the following: a HostedOn
relationship between a container and a virtual machine, a
ConnectsTo relationship between two containers, and an
AttachesTo relationship for connecting a container to a block
storage volume.</p>
      <p>Translating an AttachesTo relationship requires defining a
new volume and providing an appropriate reference to that
volume, both inside the Compose file. Translating a ConnectsTo
relationship involves defining a new network, and referencing
that network under both of the connecting components, again
inside the Compose file. Translation of the HostedOn
relationship needs to define a constraint inside the Compose file,
and then requires further cooperation from the cloud orchestrator
to ensure an appropriate reference is made for that constraint.</p>
      <p>Following the TOSCA standards, as well as the specific
outline of the ADT as implemented by the COLA reference
framework is important in ensuring an adaptor can understand
and translate the information into an understandable format.</p>
      <p>In order to finally launch the application, the resultant
Docker-Compose file is passed to Swarm and executed by the
docker deploy command on an instance of MiCADO V3[2]
which is the current implementation choice for the COLA
reference framework. In this implementation of MiCADO,
cloud orchestration and default policies are hard-coded, making
it ideal to test container-level orchestration in isolation.
Figure 5, ADT Container-Level Topology Description in TOSCA</p>
    </sec>
    <sec id="sec-5">
      <title>VII. RELATED WORK</title>
      <p>
        Research described in this paper is closely linked to similar
attempts at application description both in industry and
academia. The OASIS [
        <xref ref-type="bibr" rid="ref9">11</xref>
        ] efforts to define standards for the
application description have created TOSCA [
        <xref ref-type="bibr" rid="ref10">12</xref>
        ][
        <xref ref-type="bibr" rid="ref11">13</xref>
        ][
        <xref ref-type="bibr" rid="ref12">14</xref>
        ], a
widely adopted standard both with several implementations [
        <xref ref-type="bibr" rid="ref13">15</xref>
        ]
and related tools [
        <xref ref-type="bibr" rid="ref14">16</xref>
        ][
        <xref ref-type="bibr" rid="ref15">17</xref>
        ][
        <xref ref-type="bibr" rid="ref16">18</xref>
        ].
      </p>
      <p>
        Amazon uses Amazon Machine Images (AMI) [
        <xref ref-type="bibr" rid="ref17">19</xref>
        ] to
describe all information required to launch Amazon EC2
instances. AMIs are templates which include a description of the
root volume (i.e. an operating system, an application server, and
applications), launch permissions that control which AWS
accounts can use the AMI, and block device mapping that
specifies the volumes to attach to the instance when it is
launched. The AMI template must contain at least the base
operating system and it may be customised to include additional
configuration and software code. AMIs are not written
templates, but rather read-only, re-usable snapshots of EC2
instances. The COLA project currently implements Docker
container orchestration to provide similar functionality to that
which is offered by an AMI. Docker serves as a lightweight,
more technology agnostic solution which sees wider use.
Through the modularity of the COLA framework, any other
container orchestrator, or even a virtual machine image solution
could be substituted in place of Docker.
      </p>
      <p>
        Amazon CloudFormation[
        <xref ref-type="bibr" rid="ref18">20</xref>
        ] supports development,
deployment and running applications on the Amazon cloud.
AWS CloudFormation templates describe the different instances
(using AMIs) and resources that make up an application stack,
as well as security rules and other customisations that should
apply to the deployment. The templates are stored as text files
that comply with JavaScript Object Notation (JSON) or YAML
[
        <xref ref-type="bibr" rid="ref19">21</xref>
        ]. They can be created and edited in any text editor and can
be managed in the source code IDE. CloudFormation templates
are analogous to the ADTs used by COLA and can even describe
container based deployments, though they follow an internal
language specification instead of a global solution such as that
offered by the TOSCA standard.
      </p>
      <p>
        Microsoft Azure[
        <xref ref-type="bibr" rid="ref20">22</xref>
        ] describes resources through Azure
Resource Manager (ARM) which combines compute, storage
and network resources and shows them as a single unit that can
be created, managed and deleted together. ARM templates
contain four entities: parameters that can be entered during
runtime with a set of values or default values pre-defined, variables
that are static in the code and used for deploying resources,
resources to be deployed, and outputs to be produced. ARM
templates are written and stored as text files in the JSON format.
The functionality offered by ARM templates is no different from
that offered by AWS CloudFormation templates, or COLA’s
own ADTs. Again, these templates follow their own structure
and wording instead of using the specification laid out by OASIS
in TOSCA.
      </p>
      <p>COLA approaches the description of an application stack in
the cloud with more modularity and technology agnosticism
than do Amazon CloudFormation templates or Microsoft ARM
templates. By offering a modular approach to assembling and
deploying images which make up the applications, COLA
allows for and encourages reuse of those images across
platforms.</p>
      <p>
        Similarly, as the TOSCA standard becomes more widely
accepted and appropriated, COLA ADT templates will become
more familiar and could even be reused across platforms.
Cloudify [
        <xref ref-type="bibr" rid="ref21">23</xref>
        ] and Alien4Cloud [
        <xref ref-type="bibr" rid="ref22">24</xref>
        ] are two open-source cloud
orchestrators currently under development. While they do not
support the same modularity of components offered by COLA,
they do conform to the TOSCA standard. Comparing other
aspects of these open-source solutions with COLA are outside
the scope of this paper, but their adoption of TOSCA is
encouraging and hopefully suggests an upward trend in
adherence to TOSCA and the growth of its community.
      </p>
    </sec>
    <sec id="sec-6">
      <title>VIII. CONCLUSION AND FUTURE WORK</title>
      <p>This first proof of concept prototype has demonstrated the
viability of the technology-agnostic approach and how a
TOSCA-based ADT can be used to describe abstract application
topologies and delegate to a component (Application Submitter)
the translation to formats that are technology-specific. This first
prototype will now be extended to implement further
functionalities such as flexible submission lifecycle
management and support for more detailed policies through a
Policy Keeper currently under development in COLA. The
Application Submitter will be embedded into the MiCADO
architecture and will connect the ADTs with the
applicationlevel orchestration features of MiCADO.</p>
    </sec>
    <sec id="sec-7">
      <title>ACKNOWLEDGMENTS This work was funded by the COLA Cloud Orchestration at the level of Applications Project No. 731574 project. [1]</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [Accessed:
          <fpage>18</fpage>
          -Mar-2018].
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>“About - COLA Project - Cloud Orchestration</surname>
          </string-name>
          at the Level of Application.” [Online]. Available: http://www.project-cola.eu/cola-project/. [Accessed:
          <fpage>27</fpage>
          -Mar-2017].
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <article-title>“TOSCA_overview</article-title>
          .”
          <source>“TOSCA-spec-v1</source>
          .
          <fpage>0</fpage>
          .” T. Binz,
          <string-name>
            <given-names>U.</given-names>
            <surname>Breitenbücher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Kopp</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          , “
          <source>TOSCA: Portable Automated Deployment and Management of Cloud Applications,” in Advanced Web Services</source>
          ,
          <year>2014</year>
          , pp.
          <fpage>527</fpage>
          -
          <lpage>549</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <given-names>W.</given-names>
            <surname>Draft</surname>
          </string-name>
          , “
          <source>TOSCA Simple Profile in YAML Version 1</source>
          .0,”
          <year>2014</year>
          . [Online]. Available: http://docs.oasisopen.org/tosca/TOSCA-Simple-ProfileYAML/
          <year>v1</year>
          .0/csprd01/TOSCA-Simple-Profile-YAMLv1.
          <fpage>0</fpage>
          -
          <lpage>csprd01</lpage>
          .html. [Accessed:
          <fpage>14</fpage>
          -Feb-2017].
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [7]
          <string-name>
            <surname>“</surname>
            <given-names>TOSCA</given-names>
          </string-name>
          <string-name>
            <surname>-Parser - OpenStack</surname>
          </string-name>
          .” [Online]. Available: https://wiki.openstack.org/wiki/TOSCA-Parser. [Accessed:
          <fpage>29</fpage>
          -Oct-2017].
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <article-title>[8] “MongoDB for GIANT Ideas | MongoDB</article-title>
          .” [Online]. Available: https://www.mongodb.com/. [Accessed:
          <fpage>30</fpage>
          - Oct-2017].
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>“Docker</given-names>
            <surname>Swarm</surname>
          </string-name>
          overview - Docker
          <string-name>
            <surname>Documentation</surname>
          </string-name>
          .” [Online]. Available: https://docs.docker.com/swarm/overview/. [Accessed:
          <fpage>30</fpage>
          -Mar-2017].
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [10] “
          <article-title>Compose file version 3 reference | Docker Documentation</article-title>
          .” [Online]. Available: https://docs.docker.com/compose/compose-file/. [Accessed:
          <fpage>21</fpage>
          -Mar-2018].
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [11]
          <string-name>
            <surname>“</surname>
            <given-names>OASIS</given-names>
          </string-name>
          |
          <article-title>Advancing open standards for the information society</article-title>
          .” [Online]. Available: https://www.oasis-open.org/. [Accessed:
          <fpage>18</fpage>
          -
          <lpage>Mar2018</lpage>
          ].
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [12]
          <article-title>“Topology and Orchestration Specification for Cloud Applications</article-title>
          ,”
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>G.</given-names>
            <surname>Katsaros</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Menzel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Lenk</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Skipp</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Eberhardt</surname>
          </string-name>
          , “
          <article-title>Cloud Service Orchestration with TOSCA, Chef</article-title>
          and
          <string-name>
            <given-names>Openstack</given-names>
            <surname>Jannis</surname>
          </string-name>
          Rake-Revelant.”
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>P.</given-names>
            <surname>Hirmer</surname>
          </string-name>
          , U. Breitenbücher,
          <string-name>
            <given-names>T.</given-names>
            <surname>Binz</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          , “
          <article-title>Automatic Topology Completion of TOSCA-based Cloud Applications</article-title>
          .”
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>T.</given-names>
            <surname>Binz</surname>
          </string-name>
          et al.,
          <article-title>“OpenTOSCA - A Runtime for TOSCAbased Cloud Applications</article-title>
          .”
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>O.</given-names>
            <surname>Kopp</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Binz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Breitenbücher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          , and U. Breitenb, “
          <article-title>Winery - A Modeling Tool for TOSCAbased Cloud Applications</article-title>
          .”
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>U.</given-names>
            <surname>Breitenbücher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Binz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Kopp</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          , “Vinothek - A
          <string-name>
            <surname>Self-Service Portal</surname>
          </string-name>
          for TOSCA.”
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J.</given-names>
            <surname>Soldani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Binz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U.</given-names>
            <surname>Breitenbücher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Leymann</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Brogi</surname>
          </string-name>
          , “
          <article-title>ToscaMart: A method for adapting and reusing cloud applications,”</article-title>
          <string-name>
            <given-names>J.</given-names>
            <surname>Syst</surname>
          </string-name>
          . Softw., vol.
          <volume>113</volume>
          , pp.
          <fpage>395</fpage>
          -
          <lpage>406</lpage>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>S.</given-names>
            <surname>Pearce</surname>
          </string-name>
          and
          <string-name>
            <given-names>S.</given-names>
            <surname>Bryen</surname>
          </string-name>
          , “Managing Your AWS Infrastructure at Scale,”
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [20]
          <string-name>
            <surname>“Learn Template Basics - AWS CloudFormation</surname>
          </string-name>
          .” [Online]. Available: http://docs.aws.amazon.com/AWSCloudFormation/lat est/UserGuide/gettingstarted.templatebasics.html. [Accessed:
          <fpage>20</fpage>
          -Feb-2017].
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [21] “
          <article-title>The Official YAML Web Site</article-title>
          .” [Online]. Available: http://www.yaml.org/. [Accessed:
          <fpage>20</fpage>
          -Feb-2017].
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Rick</surname>
            <given-names>Rainey</given-names>
          </string-name>
          ,
          <article-title>Microsoft Azure Essentials Azure Web Apps for Developers | Microsoft Press Store</article-title>
          . .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [23]
          <string-name>
            <surname>“Cloudify - Cloud Orchestration</surname>
          </string-name>
          ” [Online]. Available: https://cloudify.co/product/. [Accessed:
          <fpage>22</fpage>
          -Apr-2017].
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [24] “Alien4Cloud” [Online]. Available: https://alien4cloud.github.io/index.html. [Accessed:
          <fpage>22</fpage>
          -
          <lpage>Apr2017</lpage>
          ].
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>