Middleware-Oriented - Deployment - Automation - For - Cloud - Applications
Middleware-Oriented - Deployment - Automation - For - Cloud - Applications
4, OCTOBER-DECEMBER 2018
Abstract—Fully automated provisioning and deployment of applications is one of the most essential prerequisites to make use of the
benefits of Cloud computing in order to reduce the costs for managing applications. A huge variety of approaches, tools, and providers
are available to automate the involved processes. The DevOps community, for instance, provides tooling and reusable artifacts to
implement deployment automation in an application-oriented manner. Platform-as-a-Service frameworks are available for the same
purpose. In this work we systematically classify and characterize available deployment approaches independently from the underlying
technology used. For motivation and evaluation purposes, we choose Web applications with different technology stacks and analyze
their specific deployment requirements. Afterwards, we provision these applications using each of the identified types of deployment
approaches in the Cloud to perform qualitative and quantitative measurements. Finally, we discuss the evaluation results and derive
recommendations to decide which deployment approach to use based on the deployment requirements of an application. Our results
show that deployment approaches can also be efficiently combined if there is no ‘best fit’ for a particular application.
Index Terms—Middleware-oriented deployment, application-oriented deployment, Cloud computing, DevOps, decision support
Ç
1 INTRODUCTION
In the next section we define the general and application- additional WAR files (customer GUI and taxi driv-
specific deployment requirements for each of the three ers’ GUI) to the JOnAS application server.
applications introduced. These requirements have to be TR2 Registration and configuration of tenant endpoints: In
considered when creating corresponding deployment plans. order to register and configure tenant endpoints
A deployment plan (e.g., a script) implements the logic nec- inside ESBMT several SOAP messages need to be
essary to deploy application or middleware components. sent to its management interface both upon initial
deployment of the application and when addi-
tional tenants are deployed. For the Taxi App
2.2 Deployment Requirements these messages are sent by running a number of
It can be easily observed that there are requirements that test cases by SoapUI’s15 command line-based test
apply to the deployment of all three presented applica- runner.
tions. Since the scope of our research is on deployment TR3 Modification of WAR files: The WAR files that are
automation and approaches for its technical implementa- deployed both upon the application’s initial deploy-
tion we are focusing only on technically relevant deploy- ment and when adding further tenants need to be
ment requirements. We therefore do not consider modified at deployment time. This is because they
additional non-functional requirements regarding perfor- need to connect to the tenant endpoints registered in
mance, costs, compliance, etc. As such, the following ESBMT. Therefore, the address of the corresponding
general deployment requirements need to be considered tenant endpoint and the tenant ID have to be stored
in this context: inside a properties file located in the WAR file.
GR1 Middleware deployment: Configurable deployment In contrast to the Taxi App (and the Chat App, later) the
plans are required to deploy all middleware compo- deployment automation of SugarCRM as described in [14]
nents involved, such as the JOnAS application server was realized with distributed deployment in mind, meaning
for the Taxi App, or the MySQL database server for that the application and the database are hosted on two dif-
SugarCRM. ferent virtual machines. When automating the deployment
GR2 Application deployment: Configurable deployment of SugarCRM, the following requirements were identified:
plans are required to deploy all application compo- SR1 Permission settings: The permissions of particular files
nents on top of the middleware, such as the customer and directories of the PHP application need to be set.
user interface for the Taxi App or the chat log data- As an example, the cache directory needs to be writ-
base for the Chat App. able. This is a typical requirement for the deploy-
GR3 Wiring of components: The middleware as well as the ment of PHP applications.
application components are not deployed in an iso- SR2 Silent installation: After extracting and placing all the
lated manner. Application components need to be PHP script files of the application, a so called silent
wired with each other, or with some of the middle- installation needs to be triggered by calling the
ware components to enable communication between install.php script using an HTTP GET request.
components as outlined in Figs. 1, 2, and 3. As a result, the database structure is created and the
Further requirements regarding the design of deploy- application gets configured by creating a default
ment plans such as modularity, configurability, extensibil- user (administrator).
ity, and portability are discussed in [6]. In addition to these SR3 Dynamic wiring at deployment time: The SugarCRM
general requirements, each presented application imposes application needs to be wired with the database
additional deployment requirements. For the Taxi App [11] dynamically at deployment time; the endpoint of the
we identified the following requirements when we imple- database needs to be put to the application’s con-
mented its automated deployment: figuration, so the connection can be established (this
TR1 Deployment of additional tenants: After the initial requirement is a refinement of GR3 ).
deployment has been performed, mechanisms are Compared to the Taxi App and SugarCRM, the Chat
needed to deploy additional tenants. This involves App’s architecture is relatively simple. Thus, automating
sending SOAP messages to the Web service-based
management interface of ESBMT as well as deploying 15. SoapUI: http://www.soapui.org.
Authorized licensed use limited to: St. Xavier's Catholic College of Engineering. Downloaded on August 20,2024 at 04:44:10 UTC from IEEE Xplore. Restrictions apply.
WETTINGER ET AL.: MIDDLEWARE-ORIENTED DEPLOYMENT AUTOMATION FOR CLOUD APPLICATIONS 1057
the deployment based on deployment plans is easier. There as a key part of a certain operations automation approach
were two requirements identified during the implementa- because operating applications as described in Section 2
tion of the deployment plans: needs to cover additional aspects beside deployment.
Typical examples include doing a database backup or scal-
CR1 Node package manager integration: Node.js applications ing certain parts of the application. Thus, we consider the
such as the Chat App typically provide a package. automated deployment of middleware and application
json file that holds some metadata of the application components as a sub-discipline of operations automation.
as well as its dependencies on other Node.js modules. Fig. 4 categorizes state of the art approaches to imple-
These dependencies are resolved at deployment time ment operations automation. The categories are arranged
using the node package manager (npm).16 in a hierarchic structure with leaves grouping the actual
CR2 Pointer to application’s entry point: Node.js applications automation approaches. Approaches in each leaf group
typically consist of several scripts implemented in (category) in the hierarchy are further classified to one of
JavaScript. To start such an application, a particular three types: (1) a provider-dependent approach such as using
script needs to be defined as entry point. This script is a PaaS solution offered by a certain provider (e.g., Her-
then called by the Node.js runtime environment to oku17), (2) a tooling-dependent approach such as an abstrac-
initialize and start the actual application. tion library to interact with multiple providers (e.g., fog18),
Different applications have therefore different require- or a piece of software that does not have any dependencies
ments regarding their deployment. These individual require- on certain providers (e.g., Docker [15]). Some of the pro-
ments have to be taken into account when implementing vider-dependent approaches are implicitly tooling-depen-
plans to automate the deployment process of a particular dent, too. For instance, Amazon provides a set of tools19 to
application. In principle, there exist different approaches to interact and integrate with their services programmatically.
realize deployment automation such as the one described in (3) Moreover, standards-based approaches exist such as the
[6]. Because there is not a single approach that fits all the dif- Topology and Orchestration Specification for Cloud Appli-
ferent requirements, it is necessary to be able to identify the cations [16], which enables model-based management of
most suitable approach for each type of application. Thus, in Cloud applications and infrastructure resources.
the following we categorize existing approaches to automate Platform-centric management approaches enable deploy-
operations especially focusing on automated deployment. ment in the PaaS model. These are usually based on pro-
However, all relevant deployment requirements for a par- vider-dependent platform offerings such as Google App
ticular application must be satisfied when implementing Engine [17] or Amazon Elastic Beanstalk [18]. The goal of
its automated deployment using any of the categorized the PaaS model is to provide a platform that abstracts from
approaches, i.e., the identified requirements are orthogonal the underlying infrastructure resources and provides
to the approaches outlined in the following classification. “middleware as a service”. Thus, the application com-
ponents are directly hosted on the platform. To host the
3 STATE OF THE ART Taxi App, SugarCRM, or Chat App using the PaaS model,
several “middleware services” are required to be exposed
In the following we survey various deployment approaches
from the literature. We consider each deployment approach
17. Heroku: http://www.heroku.com.
18. fog: http://github.com/fog/fog.
16. npm: http://npmjs.org. 19. AWS tools: http://aws.amazon.com/tools.
Authorized licensed use limited to: St. Xavier's Catholic College of Engineering. Downloaded on August 20,2024 at 04:44:10 UTC from IEEE Xplore. Restrictions apply.
1058 IEEE TRANSACTIONS ON CLOUD COMPUTING, VOL. 6, NO. 4, OCTOBER-DECEMBER 2018
by the platform. These middleware services can for exam- OpenStack [21] available to create an IaaS environment for
ple provide an ESB, a BPEL engine, or a database server deploying VM images. The Open Virtualization Format
depending on the topology of the corresponding applica- (OVF) [22] aims to be a standardized format for such images.
tion. As these middleware services may not be offered These are all hypervisor-based virtualization approaches,
out of the box by PaaS providers, a custom PaaS environ- meaning the granularity is always on the level of a complete
ment can be built based on existing infrastructure resour- VM. Container-based virtualization approaches (e.g., Docker)
ces, e.g., inside the private boundaries of a particular enables to further virtualize a VM. Consequently, different
organization. As an example, the PaaS framework Cloud middleware and application components can be encapsu-
Foundry20 enables a tooling-dependent platform-centric lated in container images.
management approach. All platform-centric approaches For each of the three applications introduced in Section 2,
have the drawback of restricting control over the under- a VM image could be created to host the whole application,
lying infrastructure. For instance, the filesystem cannot or each application component can be hosted on a separate
by accessed in most cases. Moreover, the programming VM, or on a separate container on the same or different
model is often limited to the use of certain frameworks VMs. Another possibility is a compromise between both
and APIs. This is necessary in most cases to implement options by hosting some components on separate VMs and
an efficient layer of abstraction for the services offered by other components of the same application to be grouped
the platform. together to be hosted in the same VM, e.g., depending on
Higher-level model-based management approaches enable the resource requirements of each component. Several
the definition of a holistic application-centric model of a par- approaches are available that are focused on optimized pro-
ticular Cloud service for the deployment, its structure and visioning of virtual machines and deploying virtual
behavior. Such a holistic model can be provider-dependent machine images such as [23], [24], and [25].
(e.g., AWS OpsWorks [19]), tooling-dependent (e.g., Juju21 Focusing on the IaaS model, the alternative is to use
or Blueprints [20]), or standards-based (e.g., TOSCA [16]). standard images that basically provide only a plain operat-
In addition, there are commercial products available that ing system, instead of completely pre-installed and pre-
implement the model-based approach. An example of these configured images. Plan-based configuration management
products is the IBM SmartCloud Orchestrator.22 The goal of approaches proposed by the DevOps community such as
the model-based approach is to enable top-down modeling Chef [26], [27], Puppet [28], [29], CFEngine [30], Smart-
by starting with a higher-level model for a Cloud applica- Frog [31], or Engage [32] can be used to install and configure
tion. To enable the deployment of such a model, additional the actual middleware and application components. Scripts
artifacts such as scripts may have to be attached to the are used to perform the installation and configuration [33].
model to perform the actual deployment of the components Conventional workflow approaches such as BPEL [9] or
that are involved. BPMN [34] may also be utilized to implement plans that per-
Another model-based technique is to create infrastructure- form these tasks. In order to manage topologies that consist
centric models. For instance, AWS CloudFormation23 enables of several machines and different components hosted on
the creation of provider-dependent models by defining a them, overarching plans or model-based approaches such as
set of resources such as virtual machines (VMs). Further- AWS CloudFormation, AWS OpsWorks, or Juju can be used.
more, scripts can be embedded to install and configure mid- An efficient way of combining configuration management
dleware and application components on these machines. with model-based management is described in [14]. In addi-
However, in contrast to the application-centric models dis- tion, there are model-based approaches such as En-
cussed before, these models focus on the orchestration of Stratus [35] or RightScale25 that use Chef scripts in the
resources on the infrastructure level and do not explicitly background to perform the actual deployment. For the three
define relations between middleware and application applications considered in this work this deployment
components. approach implies to have at least several scripts to install
The configuration management approaches can be seen as and configure all the middleware and application compo-
nents that are involved. In addition, there may be an over-
an alternative or a complement to the model-based app-
arching model that orchestrates all scripts involved.
roaches. Either plan-based approaches or image-based virtuali-
The automation approaches shown in Fig. 4 are not
zation techniques can be used to implement operations
meant to be mutually exclusive. For instance, configuration
automation, most probably under some kind of version con-
management is mainly focused on installing and configuring
trol. Plans such as scripts are used to install and configure
middleware and application components on an infra-
middleware and application components. The image-based
structure. However, to provision infrastructure resources
approach with respect to the IaaS service model encapsulates
such as virtual machines, infrastructure management
the different middleware and application components in VM
approaches are typically required. Moreover, there are
images. Today, there are many IaaS providers offering the
extensions for some configuration management tools such
deployment of VM images such as Amazon Web Services
as Chef knife plugins26 to cover infrastructure manage-
(AWS).24 In addition, there are open source products such as
ment aspects, so these two management disciplines can
be integrated seamlessly. To reduce dependencies on pro-
20. Cloud Foundry: http://www.cloudfoundry.org. viders and tools, standards are emerging in all categories.
21. Juju: http://juju.ubuntu.com.
22. IBM SmartCloud Orchestrator: http://ibm.co/CPandO.
23. AWS CloudFormation: http://aws.amazon.com/cloudformation. 25. RightScale and Chef integration: http://goo.gl/sn1OtT.
24. Amazon Web Services: http://aws.amazon.com. 26. Chef knife plugins: https://docs.chef.io/plugin_knife.html.
Authorized licensed use limited to: St. Xavier's Catholic College of Engineering. Downloaded on August 20,2024 at 04:44:10 UTC from IEEE Xplore. Restrictions apply.
WETTINGER ET AL.: MIDDLEWARE-ORIENTED DEPLOYMENT AUTOMATION FOR CLOUD APPLICATIONS 1059
Some examples are Cloud Infrastructure Management application. In addition, the deployment plans involved
Interface (CIMI) [36] on the level of infrastructure man- are typically hard-wired, i.e., they have explicit dependen-
agement, OVF for VM images (hypervisor-based virtuali- cies that cannot be exchanged dynamically without chang-
zation), and TOSCA for model-based management. ing the plans themselves. To provide an approach enabling
the creation of deployment plans with improved reusabil-
ity, in [6] we proposed the middleware-oriented deployment
4 PLAN-BASED DEPLOYMENT AUTOMATION
approach:
In the previous section we discussed plan-based configuration Middleware-oriented deployment: Generic and reusable mid-
management as an operations automation approach, and as dleware components that are not bound to a specific application
an enabler for several other approaches to implement the auto- enable the deployment of Cloud applications including (i) the mid-
mated deployment of middleware and application compo- dleware functionality required by the application and (ii) the
nents. For instance, plans such as scripts are attached to application components involved.
topology models of applications in order to make them In this case, application deployment is performed by
deployable. Furthermore, plans are used to install and con- parameterizing and executing portable deployment plans
figure software components hosted on virtual machines that are attached only to the middleware components.
and containers. Platform-centric management environments We assume that middleware components are not bound to
based on PaaS frameworks can be set up and operated specific applications, so these middleware components
based on such plans. Thus, in the following we focus on including their deployment plans can be reused to deploy
characterizing, refining, and evaluating plan-based approaches to different applications of the same type. There are no deploy-
implement deployment automation as a key part of operations ment plans attached to any application component when fol-
automation. lowing the pure middleware-oriented deployment approach.
Taking a look at the state of the art, the DevOps commu- Consequently, an overarching orchestration model or system
nity focuses on providing pragmatic solutions for the auto- to wire multiple deployment plans as it is typically required
mation of application deployment. Technically, this is often for non-trivial application stacks can purely focus on the con-
(immediately or implicitly) based on plan-based configura- figuration of reusable plans. This is in contrast to developing
tion management approaches, which drive the following individual application-specific plans and corresponding
discussions and evaluation presented in this article. The orchestration models, which are hard to reuse.
focus is on deploying predefined application stacks across In case the application components are not bound to
several (virtual or physical) machines. Reusability only specific middleware components, this approach enables
occurs when similar application stacks are being deployed middleware abstraction. Consequently, particular middleware
by the same teams of people. Such a deployment can be components can be arbitrarily exchanged, e.g., based on
characterized as application-oriented. The communities affili- functional or non-functional requirements. As an example,
ated with some of the popular DevOps tools such as [6] shows how the JOnAS application server in the Taxi App
Chef [26] or Puppet [28] provide artifacts such as Chef cook- stack can be exchanged by a Tomcat servlet container.
books27 to build deployment plans for certain application
Because the Tomcat servlet container consumes less memory
stacks. Deployment plans based on these artifacts can be
and gets deployed faster, it could be typically used in a
used to automate the deployment of the applications
development environment instead of deploying a complete
described in Section 2.1. Such plans can be implemented as
application server such as JOnAS.
Chef cookbooks by (i) orchestrating existing cookbooks
The Chef community has published cookbooks that can
that are already available and (ii) implementing some
be classified under the middleware-oriented deployment
application-specific deployment logic. Existing cookbooks
approach such as the application_php28 cookbook to
are typically available to deploy popular middleware com-
deploy arbitrary applications or application components
ponents such as an Apache HTTP server or a PHP runtime
implemented in PHP. However, these cookbooks do not
environment. Consequently, this deployment approach can
enable middleware abstraction because they contain hard-
be summarized as follows:
wired dependencies to other middleware components.
Application-oriented deployment: Application-specific but por-
For example, the application_php cookbook mentioned
table deployment plans enable the deployment of a particular
before has a hard-wired dependency to the Apache HTTP
application including all application components and middleware
server as its underlying middleware. Consequently, this
components involved.
middleware component that provides a PHP runtime
The portability of deployment plans enables infrastruc-
environment cannot be exchanged dynamically without
ture abstraction [6], meaning that the plans are not bound to
changing the cookbook. In addition, these cookbooks
a specific infrastructure such as a particular XaaS provider.
cannot be used as deployment plans that can be parame-
As an example, most of the cookbooks provided by the
terized. Usually, they provide resources that can be used
Chef community realize infrastructure abstraction because
in other cookbooks. A developer needs to create an addi-
Chef cookbooks are implemented using a domain-specific
tional deployment plan that implements the configuration
language that is not bound to a specific platform. Deploy-
and wiring of these resources. Consequently, these cook-
ment plans that follow the application-oriented deploy-
books cannot be immediately used as middleware-oriented
ment approach are typically limited in their reuse because
deployment plans as they are.
they were created to automate the deployment of a specific
TABLE 1
Types and Input Parameters of Deployment Plans
In the following we evaluate these types of approaches implemented as Chef cookbooks. However, we do not rely
using the applications presented in Section 2.1 as the means on any unique feature of Chef, so the deployment plans can
to identify which approach fits better which application. be implemented using different deployment automation
tools such as Puppet, Juju,29 OpenTOSCA,30 and other plan-
5 EVALUATION based management approaches [37]. Each plan is character-
ized by its type: middleware means that the plan deploys one
For evaluation purposes we implemented deployment
or more middleware components. Plans of type middleware &
plans to automate the deployment of all three applica-
app generic are typically used for the middleware-oriented
tions described in Section 2.1 using both the application-
oriented and the middleware-oriented approach. This deployment approach to deploy middleware components as
results in six different deployment scenarios (three app- well as application components on top of them as discussed
lications multiplied by two approaches). In addition, in [6]. App specific plans are mostly used for the application-
we deploy the SugarCRM application in two manners oriented deployment approach because they implement spe-
(centralized in one VM, and distributed across different cific logic to automate the deployment of particular applica-
VMs), again using both the application-oriented and the tion components. Furthermore, the input parameters (Chef
middleware-oriented deployment approach to further attributes) for each plan are identified. Figs. 5 and 6 show the
broaden the scope of our evaluation. This adds two addi- dependencies between plans when following the applica-
tional deployment scenarios, so our evaluation covers tion-oriented or the middleware-oriented deployment.
eight deployment scenarios in total.
Table 1 provides an overview of all deployment plans 29. Juju: http://juju.ubuntu.com.
involved in the scenarios. Technically, all plans are 30. OpenTOSCA: http://www.iaas.uni-stuttgart.de/OpenTOSCA.
Authorized licensed use limited to: St. Xavier's Catholic College of Engineering. Downloaded on August 20,2024 at 04:44:10 UTC from IEEE Xplore. Restrictions apply.
WETTINGER ET AL.: MIDDLEWARE-ORIENTED DEPLOYMENT AUTOMATION FOR CLOUD APPLICATIONS 1061
TABLE 2 TABLE 3
Evaluation Settings Qualitative Measurements of Deployment Plans
TABLE 4 TABLE 5
Total Complexity of Each Scenarios Average Total Execution Time of Deployment Plans and Stan-
dard Deviation s
Application App.-oriented Middleware-oriented
Taxi App 139 139 Application App.-oriented Middleware-oriented
SugarCRM 57 57 FlexiScale:
SugarCRM (distrib.) 57 57 Taxi App = 899 sec. = 937 sec.
Chat App 16 16 s = 25 sec. s = 45 sec.
SugarCRM = 264 sec. = 262 sec.
s = 9 sec. s = 13 sec.
In case generic deployment plans for deploying applica- SugarCRM (distrib.) = 184 sec. = 180 sec.
tion components are attached to middleware components, s = 4 sec. s = 10 sec.
typically assumptions are made beforehand regarding the Chat App = 219 sec. = 228 sec.
application components deployed using these plans. For s = 6 sec. s = 11 sec.
instance, the Node.js plan used in the middleware- Amazon Web Services EC2:
oriented deployment expects (i) a package.json file as Taxi App = 1316 sec. = 1294 sec.
described in the requirement CR1 and (ii) a pointer to the s = 53 sec. s = 37 sec.
SugarCRM = 372 sec. = 358 sec.
script that is the entry point for a particular application
s = 47 sec. s = 36 sec.
(CR2 ). Another example is the JOnAS plan to deploy addi- SugarCRM (distrib.) = 233 sec. = 235 sec.
tional tenants (WAR files) for the Taxi App (TR1 , TR3 ). s = 9 sec. s = 16 sec.
The flexibility of deployment plans following the Chat App = 314 sec. = 325 sec.
application-oriented deployment approach is, as expected, s = 7 sec. s = 18 sec.
worse compared to middleware-oriented deployment
because their implementation is tightly coupled to specific
application components. They typically expect a few rudi- L1 – Middleware-oriented deployment plans are typically pre-
mentary input parameters only such as configuration ferred for scenarios where conventions for application components
options for the middleware. are already established, so there are no or minimum assump-
When looking at Table 4 it becomes clear that the com- tions regarding the application components. Examples for
plexity of deploying a particular application is equal in both such conventions are the package.json file (requirement
cases, and therefore it does not depend on the deployment CR1 in Section 2.2), setting permissions for PHP applica-
approach chosen. This is because there is no difference on tions (SR1 ), or sending SOAP messages using SoapUI test
the level of “atomic actions”, i.e., on the level of Chef resour- suites (TR2 ). From this perspective, middleware-oriented
ces that are executed at deployment time such as creating a deployment is preferred for the Chat App because the appli-
particular directory, storing a configuration file, or installing cation-specific deployment requirements CR1 and CR2 can
a software package. However, Figs. 5 and 6 denote a be transferred to other Node.js applications.
decreased number of plans and plan dependencies for all L2 – There are application-specific requirements that cannot be
deployed applications in case the middleware-oriented generally transferred to other applications of the same type, so
deployment approach is used. the implementation of middleware-oriented deployment
Table 5 shows minimal differences between application- for the Taxi App and SugarCRM is not as straightforward
oriented and middleware-oriented deployment for the aver- as it is for the Chat App. For SugarCRM the Connec-
age deployment time of each scenario. These measurements t_App_to_DB plan prevents the implementation of pure
match the complexity measurements shown in Table 4: middleware-oriented deployment because application-
because the Chef resources executed at deployment time specific deployment requirements (SR2 , SR3 ) need to be ful-
are the same, it is only logical that there are no significant filled. These cannot be transferred to other PHP applications
differences in terms of the plans’ total execution time. The (e.g., WordPress) in general because the configuration of
minor differences are due to the fact that files (middleware each PHP application is different. For the Taxi App, middle-
and application components) are downloaded from the ware-oriented deployment can be realized. However, to ful-
Web during deployment. Because the quality of the under- fill requirement TR3 , WAR files that are deployed using the
lying HTTP connections for these downloads could differ, JOnAS plan need to be preprocessed before deployment:
there are small deviations. the tenant ID and the tenant endpoint are stored inside the
Our further evaluation of reusability of plans in practice WAR files. Furthermore, TR1 cannot be fulfilled by a single
based on SugarCRM and WordPress (Section 5.3) confirms deployment plan because this is application-specific knowl-
our previous conclusion: middleware-oriented deployment edge. To deploy additional tenants both the JOnAS and the
clearly improves reusability of plans. Moreover, the number ESBMT plans have to be used in combination with certain
of plans that need to be adapted for specific applications can parameters.
be significantly reduced. L3 – In case of distributed deployments, such as we did for
SugarCRM, the wiring logic can be implemented in a middle-
6.2 Lessons Learned ware-oriented manner only if it does not need any application-spe-
Based on the findings presented in the previous section, we cific knowledge of how and where to store the endpoint
now summarize several of the lessons learned to support information. Typically, wiring plans are application-specific
the decision which deployment approach fits which type of such as the Connect_App_to_DB plan in case of deploy-
application: ing SugarCRM. This is because most of the times endpoint
Authorized licensed use limited to: St. Xavier's Catholic College of Engineering. Downloaded on August 20,2024 at 04:44:10 UTC from IEEE Xplore. Restrictions apply.
1064 IEEE TRANSACTIONS ON CLOUD COMPUTING, VOL. 6, NO. 4, OCTOBER-DECEMBER 2018
information needs to be stored in application-specific con- Ruby-based applications commonly make use of
figuration files. Bundler41 to process Gemfiles. A Gemfile is used to
L4 – Even if the middleware-oriented deployment approach define both the dependencies and the Ruby version
cannot be implemented completely, a hybrid approach can be real- to be used for a certain application component.
ized. In this case as many deployment plans as possible are Applications based on Python usually utilize pip42
implemented in a middleware-oriented manner to improve for dependency management. Therefore, a
flexibility and reusability. However, application-specific requirements.txt file must be created to point to
deployment actions are performed using plans that follow other Python packages.
the application-oriented deployment approach. Examples Moreover, PaaS providers implement mechanisms to
for such actions are deploying additional tenants for the expose endpoint information such as the IP address of the
Taxi App (TR1 ) or wiring the SugarCRM application with database instance using context or environment variables.
the database (SR3 ). We followed this approach implicitly These variables can be read, for instance, in a script-based
when we implemented middleware-oriented deployment configuration file (PHP, Python, Ruby, etc.) to connect
for SugarCRM because it is impossible to implement the application components to the database.
logic of the application-specific Connect_App_to_DB plan
in a generic manner. 7 CONCLUSION AND FUTURE WORK
L5 – The usage of middleware-oriented deployment plans The automated provisioning and deployment of applications
instead of application-oriented ones does not affect the total com- on IaaS and PaaS solutions is one of the major enablers in the
plexity of a deployment scenario or the total execution time. reduction of the operational costs by migrating to the Cloud.
Consequently, performance aspects do not have to be con- Tooling and approaches mostly from the DevOps commu-
sidered. Nonetheless, the total number of plans and plan nity have provided the means for such an automation
dependencies can be reduced by following the middleware- through deployment plans. However, these approaches focus
oriented approach. on the deployment of individual, specific application stacks
L6 – However, the development of plans to realize middleware- at a time, sacrificing reusability for efficiency and ease in the
oriented deployment might be more complex for the plan develop- development of such deployment plans. For this reason, in
ers. As shown in Table 3 these plans can be parameterized previous work [6], and approaching the problem from a PaaS
using sets of input parameters. These parameters imply offering perspective, we proposed a middleware-oriented
more dynamics in the plans’ implementation increasing the deployment approach that promotes reusability of deploy-
complexity of the development. The gain of such an invest- ment plans across different applications.
ment is a higher degree of flexibility and reusability as In this work, we expand on previous work to identify
shown in Table 3. and characterize two different types of deployment
approaches (application- and middleware-oriented) based
on a systematic classification of existing operations automa-
6.3 Conventions for Application Components tion approaches presented in the literature and available in
As mentioned in lesson L1 , middleware-oriented deploy- the market. We developed deployment plans for three
ment is typically preferred if common conventions for applications (Taxi App, SugarCRM, and Chat App) with
application components are established. Beside the conven- significantly different deployment requirements using the
tions for Node.js applications (CR1 ) as well as PHP applica- identified approaches, and we evaluated the results across
tions (SR1 ) discussed before, there are further conventions both qualitative and quantitative dimensions. Our findings
that are also implemented by PaaS providers such as show better reusability, portability, and flexibility of
Heroku or Google App Engine: middleware-oriented plans when compared to application-
oriented ones, without a loss in performance (i.e., deploy-
For Java applications it is common to express all
ment time). The results of our evaluation are independent
dependencies of a particular application component
of a particular Cloud provider. The trade-off however for
using a pom.xml file. These dependencies are
this improvement is in the difficulty of creating such plans.
resolved using Maven36 at deployment time. Fur-
In order to demonstrate the reusability potential of such
thermore, a system.properties37 file can be used
plans in practice we reused the plans created for SugarCRM
to define the Java version required by a particular
to deploy WordPress in an application- and middleware-
application component.
oriented manner. WordPress has a similar application stack
In case the Java application is built using the Play and comparable deployment requirements. Finally, based
framework,38 dependencies are typically defined on what we derived from this evaluation we provide recom-
using a dependencies.yml file instead of a pom. mendations as lessons learned with respect to deciding
xml file. which approach to use when deploying an application.
For Scala39 applications a build.properties file is In terms of future work, we plan to extend our evaluation
typically used to specify dependencies. This file gets to cover even more application stacks based on different tech-
processed using sbt40 at deployment time. nologies such as Ruby on Rails or Django based on Python.
Moreover, we aim to broaden the scope of the evaluation by
36. Apache Maven: http://maven.apache.org. considering additional aspects such as the number of code
37. Java system properties: http://goo.gl/ewo78l.
38. Play framework: http://www.playframework.com.
39. Scala: http://www.scala-lang.org. 41. Bundler: http://bundler.io.
40. sbt: http://www.scala-sbt.org. 42. pip: http://www.pip-installer.org.
Authorized licensed use limited to: St. Xavier's Catholic College of Engineering. Downloaded on August 20,2024 at 04:44:10 UTC from IEEE Xplore. Restrictions apply.
WETTINGER ET AL.: MIDDLEWARE-ORIENTED DEPLOYMENT AUTOMATION FOR CLOUD APPLICATIONS 1065
changes applied to deployment plans over time and training [11] S. Strauch, V. Andrikopoulos, S. G omez Saez, and F. Leymann,
“ESBMT: A multi-tenant aware enterprise service bus,” Int.
costs for developers and operations personnel. Based on this J. Next-Gener. Comput., vol. 4, no. 3, pp. 230–249, 2013.
additional evaluation, further findings and lessons learned [12] S. Strauch, V. Andrikopoulos, S. Gmez Sez, and F. Leymann,
can be derived, in addition to verifying or falsifying the exist- “Implementation and evaluation of a multi-tenant open-source
ing ones. Furthermore, as discussed in the introduction, the ESB,” in Proc. 2nd Eur. Conf. Service Oriented Cloud Comput., 2013,
vol. 8135, pp. 79–93.
overall goal of this work is to provide a decision support sys- [13] OASIS. (2013). Topology and Orchestration Specification for
tem for deployment of applications in the Cloud. Toward Cloud Applications (TOSCA) Version 1.0, Committee Specifica-
this goal, a decision support matrix based on the lessons tion 01 [Online]. Available: http://docs.oasis-open.org/tosca/
TOSCA/v1.0/cs01/TOSCA-v1.0-cs01.html.
learned from this work is currently under development. The [14] J. Wettinger, M. Behrendt, T. Binz, U. Breitenb€ ucher, G. Breiter,
immediate goal of this matrix is to provide the systematic F. Leymann, S. Moser, I. Schwertle, and T. Spatzier, “Integrating
means for decisions related to the creation of deployment configuration management with model-driven cloud manage-
plans, as well as how to use and combine them to automate ment based on TOSCA,” in Proc. 3rd Int. Conf. Cloud Comput
Service Sci., 2013, pp. 437–446.
the deployment of a particular application stack. Based on [15] J. Turnbull, Docker Book. New York, NY, USA: James Turnbull, 2014.
such a matrix, a decision support system prototype can then [16] T. Binz, G. Breiter, F. Leymann, and T. Spatzier, “Portable cloud
be implemented. In this context, existing deployment plans services using TOSCA,” IEEE Internet Comput., vol. 16, no. 3,
such as cookbooks provided by the Chef community can be pp. 80–85, May/Jun. 2012.
[17] D. Sanderson, Programming Google App Engine. Sebastopol, CA,
linked and proposed to the person using the decision support USA: O’Reilly Media, 2009.
system. The decision support system will not only cover [18] J. Vliet, F. Paganelli, S. Wel, and D. Dowd, Elastic Beanstalk. Sebas-
plan-based configuration management approaches, but also topol, CA, USA: O’Reilly Media, 2011.
[19] T. Rosner, Learning AWS OpsWorks. Birmingham, U.K.: Packt Pub-
further operations automation approaches as shown in our lishing Ltd., 2013.
classification. Moreover, we plan to focus on providing [20] M. Papazoglou and W. van den Heuvel, “Blueprinting the cloud,”
decision support on how multiple operations automation IEEE Internet Comput., vol. 15, no. 6, pp. 74–79, Nov./Dec. 2011.
approaches can be combined. For instance, the combination [21] K. Pepple, Deploying OpenStack. Sebastopol, CA, USA: O’Reilly
Media, 2011.
of container virtualization and plan-based configuration [22] DMTF. (2013). Open virtualization format specification (OVF)
management has also to be investigated. Version 2.0.0. [Online]. Available: http://www.dmtf.org/
standards/ovf.
[23] P. Pawluk, B. Simmons, M. Smit, M. Litoiu, and S. Mankovski,
ACKNOWLEDGMENTS “Introducing STRATOS: A cloud broker service,” in Proc. IEEE
5th Int. Conf. Cloud Comput., Jun. 2012, pp. 891–898.
The research leading to these results has partially received [24] S. Zaman and D. Grosu, “An online mechanism for dynamic VM
funding from the EU’s Seventh Framework Programme provisioning and allocation in clouds,” in Proc. IEEE 5th Int. Conf.
(FP7/2007-2013) projects 4CaaSt (grant agreement no. Cloud Comput., Jun. 2012, pp. 253–260.
[25] M. Bjorkqvist, L. Chen, and W. Binder, “Opportunistic service
258862), ALLOW Ensembles (grant agreement no. 600792), provisioning in the cloud,” in Proc. IEEE 5th Int. Conf. Cloud Com-
and from the BMBF project ECHO (01XZ13023G). All links put., Jun. 2012 pp. 237–244.
were last followed on 2016/03/03 12:02:37. [26] S. Nelson-Smith, Test-Driven Infrastructure with Chef. Sebastopol,
CA, USA: O’Reilly Media, Inc., 2013.
[27] M. Taylor and S. Vargo, Learning Chef: A Guide to Configuration
Management and Automation. Sebastopol, CA, USA: O’Reilly
REFERENCES Media, 2014.
[1] P. Mell and T. Grance, “The NIST definition of cloud computing,” [28] J. Loope, Managing Infrastructure with Puppet. Sebastopol, CA,
Nat. Inst. Standards Technol., Gaithersburg, MD, USA, Tech. Rep. USA: O’Reilly Media, Inc., 2011.
SP 800-145, 2009. [29] T. Uphill, Mastering Puppet. Birmingham, U.K.: Packt
[2] J. Humble and J. Molesky, “Why enterprises must adopt devops Publishing, 2014.
to enable continuous delivery,” Cutter IT J., vol. 24, pp. 6–12, 2011. [30] D. Zamboni, Learning CFEngine 3: Automated System Administration
[3] M. H€ uttermann, DevOps for Developers. New York, NY, USA: for Sites of Any Size. Sebastopol, CA, USA: O’Reilly Media, Inc., 2012.
Apress , 2012. [31] P. Goldsack, J. Guijarro, S. Loughran, A. Coles, A. Farrell, A. Lain,
[4] J. Humble and D. Farley, Continuous Delivery: Reliable Software P. Murray, and P. Toft, “The SmartFrog configuration manage-
Releases Through Build, Test, and Deployment Automation. Reading, ment framework,” ACM SIGOPS Operating Syst. Rev., vol. 43,
MA, USA: Addison–Wesley, 2010. pp. 16–25, 2009.
[5] L. Chen, “Continuous delivery: Huge benefits, but challenges [32] J. Fischer, R. Majumdar, and S. Esmaeilsabzali, “Engage:
too,” IEEE Softw., vol. 32, no. 2, pp. 50–54, Mar./Apr. 2015. A deployment management system,” ACM SIGPLAN Notices,
[6] J. Wettinger, V. Andrikopoulos, S. Strauch, and F. Leymann, vol. 47, no. 6, pp. 263–274, 2012.
“Enabling dynamic deployment of cloud applications using a [33] S. G€unther, M. Haupt, and M. Splieth, “Utilizing internal domain-
modular and extensible PaaS environment,” in Proc. IEEE 6thInt. specific languages for deployment and maintenance of IT infra-
Conf. Cloud Comput., Jun./Jul. 2013, pp. 478–485. structures,” Very Large Business Applications Lab Magdeburg,
[7] J. Wettinger, V. Andrikopoulos, S. Strauch, and F. Leymann, Fakult€at f€ ur Informatik, Otto-von-Guericke-Universit€at Magde-
“Characterizing and evaluating different deployment approaches burg, Tech. Rep. FIN-004-2010, 2010.
for cloud applications,” in Proc. IEEE Int. Conf. Cloud Eng., [34] OMG, “Business Process Model and Notation (BPMN) Version
Mar. 2014, pp. 205–214. 2.0,” 2011.
[8] S. Garcıa-G omez, M. Jimenez-Ga~ nan, Y. Taher, C. Momm, [35] enStratus Networks, Inc., “Cloud DevOps: Achieving agility
F. Junker, J. Bır
o, A. Menychtas, V. Andrikopoulos, and S. Strauch, throughout the application lifecycle,” Eden Prairie, MN, USA,
“Challenges for the comprehensive management of cloud services 2012.
in a PaaS framework,” Scalable Comput.: Practice Exp., vol. 13, [36] D. Davis and G. Pilz, “Cloud infrastructure management inter-
no. 3, pp. 201–213, 2012. face (CIMI) model and RESTful HTTP-based protocol,” Distrib-
[9] OASIS, “Web Services Business Process Execution Language uted Management Work Force, Portland, OR, USA, Tech. Rep.
(BPEL) Version 2.0,” 2007. DSP0263, Mar. 2015.
[10] (2016). Google, Inc., Google Maps API Web Services [Online]. [37] U. Breitenb€ ucher, T. Binz, O. Kopp, and F. Leymann, “Pattern-
Available: http://developers.google.com/maps/documentation/ based runtime management of composite cloud applications,” in
webservices. Proc. 3rd Int. Conf. Cloud Comput. Service Sci., 2013, pp. 475–482.
Authorized licensed use limited to: St. Xavier's Catholic College of Engineering. Downloaded on August 20,2024 at 04:44:10 UTC from IEEE Xplore. Restrictions apply.
1066 IEEE TRANSACTIONS ON CLOUD COMPUTING, VOL. 6, NO. 4, OCTOBER-DECEMBER 2018
Johannes Wettinger is currently working toward Frank Leymann is a full professor of computer
the PhD degree, and a research associate at the science and the director of the Institute of Archi-
Institute of Architecture of Application Systems, tecture of Application Systems, the University of
University of Stuttgart, Stuttgart, Germany. His Stuttgart, Stuttgart, Germany. He has published
research interests include developing and operat- many papers in journals and proceedings, co-
ing continuously delivered software applications, authored four text books, and holds close to
addressing DevOps collaboration and deploy- 50 patents especially in the area of workflow
ment automation. Beside his participation in the management and transaction processing. His
EU-funded project 4CaaSt and his teaching activ- research interests include service oriented com-
ities, he is involved in further projects related to puting and middleware, workflow- and business
cloud computing. process management, cloud computing, transac-
tion processing, integration technology, and architecture patterns. He is
the coauthor of many Web Service specifications, including WSFL, WS-
Vasilios Andrikopoulos received the PhD Addressing, WS-Metadata Exchange, WS-Business Agreement, the
degree from Tilburg University, Tilburg, the WS-Resource Framework set of specifications, WS-HumanTask and
Netherlands, where he was also a member of the BPEL4People; together with Satish Thatte, he was the driving force
European Research Institute in Service Science. behind BPEL4WS. Also, he is the coauthor of BPMN 2.0 and TOSCA.
He is a senior researcher at the Institute of Archi- His background includes having been IBM Distinguished Engineer and
tecture of Application Systems (IAAS) at the Uni- elected member of the IBM Academy of Technology.
versity of Stuttgart, Stuttgart, Germany. His
research interests include the areas of services
science, cloud computing and infrastructures, Steve Strauch is currently working toward the
and software engineering with an emphasis on PhD degree, and is a research associate at the
evolution and adaptation. He has experience in Institute of Architecture of Application Systems,
research and teaching Database Systems and Management, Software University of Stuttgart, Stuttgart, Germany. His
Modeling and Programming, Business Process Management and Inte- research interests include data migration, data
gration, and Service Engineering. He has participated in a number of EU hosting, as well as data security and privacy in
projects, including the NoE S-Cube and 4CaaSt. the area of cloud computing, with an emphasis
on their application architectural aspects. He has
contributed to the European projects COMPAS,
4CaaSt, ALLOW Ensembles, and the German
government funded BMBF project ECHO.
Authorized licensed use limited to: St. Xavier's Catholic College of Engineering. Downloaded on August 20,2024 at 04:44:10 UTC from IEEE Xplore. Restrictions apply.