Multi-Cloud Platform-As-A-Service Model, Functionalities and Approaches
Multi-Cloud Platform-As-A-Service Model, Functionalities and Approaches
com
ScienceDirect
Procedia Computer Science 97 (2016) 63 – 72
Cloud Futures:
CLOUD FORWARD:From From
Distributed to Complete
Distributed Computing,
to Complete CF2016,
Computing, 18-20
CF2016, 18-20October
October2016,
2016, Madrid,
Madrid,
Spain
Spain
Abstract
Platform-as-a-Service (PaaS) is the Cloud area concentrating the major growth in the last years in terms of adoption and market
share. At the same time Cloud models are evolving towards Hybrid Clouds through the consideration of service expansion across
a diversity of Cloud offerings. So far, the majority of multi-cloud approaches have explored IaaS layer, neglecting the rest of the
Cloud stack. This limits enterprises to enjoy the benefits of an agile, automated and adaptable infrastructure though flexibility
provided by PaaS multi-cloud. This paper presents and compares results of two research projects addressing PaaS multi-cloud
architectures: ASCETiC and SeaClouds.
© 2016
© 2016Published
The Authors. Published
by Elsevier B.V.by Elsevier
This B.V.access article under the CC BY-NC-ND license
is an open
(http://creativecommons.org/licenses/by-nc-nd/4.0/).
Peer-review under responsibility of the organizing committee of the international conference on Cloud Futures: From Distributed
Peer-review
to Completeunder responsibility of organizing committee of the international conference on cloud forward:
Computing.
From Distributed to Complete Computing
Keywords: PaaS; Multi-Cloud computing; Platform-as-a-Service; Multi-Cloud PaaS; ASCETiC Project; SeaClouds Project
1. Introduction
Cloud computing first emerged as Infrastructure-as-a-Service (IaaS) boosted by the significance acquired by
Amazon Web Services1. In parallel, Salesforce.com was offering Software-as-a-Service (SaaS) - based on the
concepts of application service provision (ASP), Grid and Utility computing dating back to the 70’s - an offering
* Corresponding author.
E-mail address: [email protected]
1877-0509 © 2016 Published by Elsevier B.V. This is an open access article under the CC BY-NC-ND license
(http://creativecommons.org/licenses/by-nc-nd/4.0/).
Peer-review under responsibility of organizing committee of the international conference on cloud forward:
From Distributed to Complete Computing
doi:10.1016/j.procs.2016.08.281
64 Ana Juan Ferrer et al. / Procedia Computer Science 97 (2016) 63 – 72
that also included a customization layer, force.com. Soon, driven by the existence of force.com and the eruption of
this market with the entrance of Google’s App Engine, it became clear the existence of a middleware layer in
between IaaS and SaaS: Platform-as-a-Service (PaaS). PaaS enables simplified consumption of Cloud infrastructure
and sustains Cloud applications. PaaS is nowadays the Cloud area showing the most impressive growth, according
to figures recently published by Gartner2.
At the same time, overall Cloud market is transitioning from experimental per use-case computing alternative to a
general and conventional IT strategy adopted both by commercial enterprises and public bodies. While private
Cloud is now in the path to become mainstream, market is now evolving to shift its focus on the next step - hybrid
multi-cloud computing models - searching for the right balance among functionality, flexibility and investment
protection. A Multi hybrid cloud model allows organizations to provide, use, and manage IT resources across their
private cloud set-ups and any compatible public cloud.
In order for these hybrid multi-cloud approaches to develop further and cope with expectations, the cloud has to
become an element of a multi-faced approach to service delivery within an enterprise’s broader digital
infrastructure, heading towards a truly hybrid strategy and tackling all Cloud layers. The digital infrastructure of
the future has to provide with a variety of service delivery venues where users will be able to schedule and automate
the delivery of application to the most suitable clouds (private/public) depending on application specific
characteristics, SLAs and policies. In this context, so far the majority of multi-cloud approaches have explored IaaS
layer, neglecting the rest of the Cloud stack, and not considering automation and orchestration brought by PaaS.
This limits enterprises to transform their IT and enjoy the benefits of an agile, automated and adaptable IT
infrastructure though flexibility provided by PaaS Multi-Cloud.
In this paper we present the results of two research projects addressing from different approaches PaaS Multi-
Cloud architectures: ASCETiC21 and SeaClouds25. We elaborate on the building blocks and desired capabilities for a
multi-cloud PaaS and compare both projects’ architectures with identified required features.
NIST3 defines Platform-as-as-Service as “The capability provided to the consumer is to deploy onto the cloud
infrastructure consumer-created or acquired applications created using programming languages, libraries, services,
and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure
including network, servers, operating systems, or storage, but has control over the deployed applications and
possibly configuration settings for the application-hosting environment”. Consumers of PaaS services are two main
user groups: Enterprises with their own internal software development activities; and ISVs interested in selling SaaS
services on top of a hosted PaaS.
Since its initial emergence, PaaS layer has undertaken a major shift, from mainly accounting of only two large
players as Microsoft (Azure) and Google (App Engine), to the wide variety of capabilities and programming
languages found in PaaS offerings today. These new entrants’ products range from specialized niche segments to
solutions for multiple programming languages. Often they do not even offer their own execution environment, but
they rely on IaaS providers for this. So they become a proxy for the consumption of IaaS services.
Now, in PaaS there is the curious situation of IaaS vendors pushing up the stack to offer an added value by
enabling programming frameworks on top of their infrastructure in order to overcome the risk of becoming a
commodity. Meanwhile, SaaS vendors offer platform tools to tailor their on-demand portfolio with the intention of
creating customer loyalty and establishing a wider market place around their offering. All together providing a truly
diverse array of capabilities tagged as PaaS offerings. A PaaS cloud provides a container platform where users
deploy and run their components. Diversities are present in supported programming tools (languages, frameworks,
runtime environments and databases), in the various types of underlying infrastructure, and even on capabilities
available for each PaaS.
However, most known platforms are Azure4 and Google App Engine5. These two platforms add to the execution
environment a set of tools in order to facilitate development on top of the platforms. Google App Engine enables
developers to build applications locally (on developer machines) and deploy these to the cloud, on the same
environments that powers Google applications. It offers fast development and deployment and simple
administration. The App Engine platform provides an execution environment where applications run on a virtualized
Ana Juan Ferrer et al. / Procedia Computer Science 97 (2016) 63 – 72 65
technology foundation that scales automatically on demand. Google App Engine is often criticized for not providing
transparency to the user to control infrastructure and how this infrastructure is used. Developers do not have direct
control over resource allocation, because the underlying system and hardware resources are masked by the App
Engine layer. Azure Platform is a PaaS for applications with specific focus on the .NET framework- It is a part of
Microsoft's Cloud computing strategy, along with their software as a service offering. The platform consists of
various on-demand services hosted in Microsoft data centres and commoditized through three product brands. These
are: Windows Azure, an operating system providing scalable compute and storage facilities; SQL Azure, a Cloud-
based, scale-out version of SQL Server, and Windows Azure AppFabric, a collection of services supporting
applications both in the Cloud and on premise. Additionally, existing PaaS platforms, such as Cloud Foundry
automatize the application deployment to a set of template VMs, with complete and isolated platform stack both
considering private Cloud set-ups and also public Cloud offerings based in the platform such as Pivotal and Atos
Canopy’s Cloud.
In addition it can also be noted that PaaS offerings today fit at least into one of the following classifications 14,15 :
SaaS with extensions Customize and extend the capabilities of a SaaS application Salesforce’s Force.com
Purpose-built PaaS A framework that simplifies the development of a specific class of Azure
applications
PaaS tied to a application paradigm Provides general capabilities, but supports only one programming CloudBees, OpenShift, Google
model or development/deployment environment AppEngine
PaaS tied to a IaaS Cloud May provide general capabilities, but can be used only in the context CloudFoundry, AWS Elastic
of a determined IaaS Clouds being a single public Cloud or a single Beanstalk
type of private Cloud infrastructure
Multi-Cloud is characterised by “serial or simultaneous use of services from diverse providers to execute an
application” 6. Other authors use the term Inter-Cloud for describing different modes of inter-connection across
clouds, however following the same approach 7. A number of scenarios which demonstrate simultaneous usage of
diverse Cloud that constitute hybrid heterogeneous private and public clouds have been defined in 8.
x Cloud bursting is most common and simpler hybrid/multi-cloud model. In this model an application that is
executing in a private cloud “bursts” into a public cloud when the demand for computing capacity spikes.
x The federated cloud scenario is characterised by a cloud provider at sub-contracts capacity from other providers
as well as offer spare capacity to a federation of cloud providers.
x In a multi-provider scenario, the user, or a broker acting on behalf of the user, manages the multi-cloud
provisioning of the services. Access to this functionality can be provided either directly or thought by a cloud
marketplace in order to hide management complexity.
In these scenarios, so far the majority of the work has concentrated in the IaaS layer. While significant examples
are found today in contexts like eScience or Future Internet PPP about existing cloud federations, such as EGI9 and
FI-Lab10. These existing examples are characterised by avoiding the majority of associated interoperability issues by
using homogeneous technology environments.
PaaS interoperability was the focus for Cloud4SOA11 solution, a scalable approach to semantically interconnect
heterogeneous PaaS offerings across different Cloud providers sharing the same technology. More recently,
soCloud12 has defined a service-oriented component-based PaaS enabling to manage portability, provisioning,
elasticity and high availability across diverse clouds. 13 presents a federated multicloud PaaS infrastructure that
considers the specific needs of migrating services across clouds, as well as, to manage distributed applications that
span multiple multi-cloud PaaS. Its development considers infrastructure services for managing both our multi-cloud
PaaS and the SaaS applications.
66 Ana Juan Ferrer et al. / Procedia Computer Science 97 (2016) 63 – 72
Going beyond PaaS offerings today, the aim in this paper is to describe a Multi-Cloud PaaS, understood as a
open, flexible and interoperable solution that simplifies the process of developing, deploying, integrating, and
overall, managing applications executing across in public and private Clouds. In order to achieve this, next sections
elaborate on Multi-Cloud PaaS envisaged model and innovative capabilities.
x Multi-tenancy is a key factor to make the most of the PaaS Cloud environment: by being multi-tenant a platform
achieves economies of scale, reduces cost per user and enables to share continuous improvements along with a
wider community. However, it also adds additional requirements for isolation into its architectural design where
the execution of an application should not have any impact on others with regards to security, performance,
availability and administration levels.
x Cloud Reach represents the elasticity factor, commonly the capability to scale. Not only in the traditional sense of
more infrastructure capacity, but also: The capability to support multiple platforms and; The possibility to stretch
across Clouds and connect environments
x Service delivery includes service management, monitoring and provisioning, pay-as-you-go pricing and billing
capabilities.
x Functional scope represents the traditional software platform capabilities present in any development platform
(not Cloud specific).
For each one of the core elements of the Multi-Cloud PaaS, features and desired capabilities are detailed. It has to
be noted that although some of the existing PaaS in the market today offer partial coverage of the capabilities
described, none of them offers the overall desired functionality.
4.2.1. Multi-tenancy
Execution isolation: In the context of Cloud computing, multi-tenancy is a Cloud’s design for sharing the
computing resources that are in use among the different concurrent users. Isolation is the capability of perceiving
one shared environment as dedicated and safe. Complete isolation among applications executed in PaaS
environments can be achieved using multiple strategies19. Among them the following approaches are identified:
Virtual Multi-tenancy: This approach simply relies on the isolation provided by resource virtualization (VMs) and
hypervisors in the infrastructure management layer. Recently these approaches have evolved to use of Container
technologies, although not yet widespread; Organic Multi-tenancy: This approach is based on isolation achieved at
different PaaS component’s levels, such as application servers, DBMS…
Security at multiple levels: While Cloud computing offers a paradigm shifting technological solution for
computational resources and software, the concerns about privacy and confidentiality of data still are a major
concern for adoption. It is required capabilities for underlying (data) security and resilience of resources delivered in
the PaaS and IaaS multiple enable users to uptake of the Cloud-based delivery model.
Compliance: Public and hybrid Cloud scenarios are characterized by a constant flow of data which cannot be
allocated to a particular place. This brings uncertainty regarding the various data protection legislations, which
transcend national borders and therefore complicate the compliance with the Data Protection legislations worldwide.
Enterprises or individuals using the PaaS to develop applications that handle confidential and private data need to
safeguard its privacy. Therefore, from a legal point of view, providing mechanisms to enable data protection and
privacy in Cloud environments should be a basic functionality.
Ana Juan Ferrer et al. / Procedia Computer Science 97 (2016) 63 – 72 67
x Interoperability and portability of applications among PaaS environments: This is the ability to migrate
applications among PaaS offerings.
x Interoperability and portability of applications among PaaS execution environments (IaaS): A PaaS deployment
can interact using the same API and the same application with several IaaS Clouds.
Placement Optimization: Best venue execution selection: This capability provides important benefits, since
the user is not tighten to a single provider, but it can decide the best choice to deploy each service among the
different Cloud offers, based on the type of service to deploy and different application execution requirements.
Examples of these can be: level of trust in the provider, based on previous application execution experiences, eco-
efficiency, risk, cost, security levels offered, legal constraints or quality of service parameters (e.g. availability,
performance, operation, etc.).
Consideration of multiple pricing models: Pricing is a critical factor for Cloud providers, as it affects customer
behavior, loyalty to a provider, and can determine organization success organization’s success. Typical pricing
model in Cloud computing is based in pay-per-use. However several refinements can be considered into this
schema: per VM, per hour, per hour of CPU time. These that refer to IaaS characteristics are often applied also to
PaaS offerings. In addition other pricing models, as subscription ones are starting to emerge considering usage per
month. However, more evolved pricing models considering the diversity of SLA Cloud terms have yet to reach the
market, and would be necessary for realization of Multi-Cloud PaaS.
In this section we present both ASCETiC and SeaClouds architectures and approaches to multi-cloud, concluding
with a comparative analysis of both projects with regards to core elements and innovative features identified in
previous section.
The ASCETiC project focused on providing novel methods and tools to support software developers aiming to
optimize energy efficiency and minimize the carbon footprint resulting from designing, developing, deploying, and
running software in Clouds. It tries to cover the three typical Clouds stacks, from SaaS to IaaS passing by PaaS
layer. In this section we are going to focus on explaining the multi-cloud approach at ASCETiC PaaS level.
Application description
The PaaS layer is employing Open Virtualization Format (OVF) specification22 to define a complete set of virtual
machines (VMs) and its relation to be deployed at an IaaS provider. Employing the extensibility available in the
OVF standard, new fields were added to reflect several necessities:
x SLA negotiation terms such as: power expend by a VM, maximum cost or vertical elasticity limits.
x Specification in self-adaptation rules to be applied when a SLA term is about to violated.
Although, OVF was selected because it is quite standard and supported by several virtualization providers, the
project has also started to study the usage of TOSCA 24. No implementation has been yet released supporting this
format in ASCETiC. In the Figure 1 we can observe the ASCETiC PaaS architecture block diagram. This diagram
will be used to explain in detail in the following paragraphs the workflow of ASCETiC at PaaS level.
The user of ASCETiC will submit their application, composed of images plus the OVF description using a REST
interface exposed by the Application Manager (AM). Once this OVF and images are received, the AM checks their
validity and starts preparing a series of SLA templates.
Ana Juan Ferrer et al. / Procedia Computer Science 97 (2016) 63 – 72 69
For each provider stored in the Provider Registry (PR), the AM will create a template for the SLA Manager
(SLAM) to negotiate with each IaaS provider to which the ASCETiC PaaS is connected. The templates together
with the OVF document are them submit via the AM to the SLAM.
The SLAM will contact them to its equivalent counterpart in the IaaS provider. It will get an offer for this
specific application deployment per IaaS and it will rank back the offers and return them to the AM. At the same
time, the price offered back by the IaaS provider is updated with a new price by the PaaS Price Modeller, before
presenting those negotiation results to the user.
The AM can perform two actions at this stage. If the user specified that s/he wanted to perform manual
negotiation, then the AM will show all the offers for her/him to select one. If the automatic flag was enabled when
submitting the application, the AM will select the best offer by the ranking selected by the SLAM (based on cost).
The AM will them move the application to the contextualization phase. The VM Contextualizer module will
prepare the images to be deployed in the selected IaaS provider. It is expected that different IaaS provider have
different contextualization procedures.
The application is now to be deployed by the AM. The Application Scheduler will contact the IaaS provider and
start creating the different VM instances as required by the initial deployment plan specified in the OVF document.
The application deployment details for each of the phases are exposed to the user by a REST interface that the user
can pool to know exactly the status its deployment is. Also, an AMPQ interface for the user to subscribe and get
notifications with the same information is available.
Once the application is running, the user has the same functionality as typical Cloud application managers. It can
delete the deployment, add more VMs to it, remove VMs, modify the properties of a VM, and so on. The main
differences start with the management of the application with performance, energy or costs terms.
The SLAM module is actively monitoring that the application is running inside the negotiated parameters, both
from the side of the IaaS provider, and taking into account application behavior. If there is some violation of those
parameters, the SLAM notifies the Self-Adaptation Manager (SAM) about it. The SAM will fire some of the rules
previously specified in the OVF document to try to get the application inside the SLA defined boundaries.
x At the same time the user is offered a set of functionalities in terms of energy and application performance
monitoring:
x At any time the user can register an event in the application execution. An event is something coherent that
happens in the application frequently.
x The user can store any kind of metric in the App Monitor. The App Monitor offers both a REST and AMPQ API
for the user to programmatic employ it from its application.
IaaS Requirements: Of course, the ASCETiC AM cannot work without a compatible IaaS. The ASCETiC
project is developing at the same time the necessary components such as a compatible SLA Manger at IaaS level to
70 Ana Juan Ferrer et al. / Procedia Computer Science 97 (2016) 63 – 72
be installed in the interested IaaS providers to federate with an ASCETiC PaaS. More information about this is
available at 21.
Status: All the previous workflows and functionalities are already working in the actual implementation of the
AM, which code is openly available at 21. The ASCETiC project has validated the solution in a triple testbed
environment. Each one of those testbeds has a compatible ASCETiC IaaS provider based on OpenStack. Three
different types of applications have been used to validate the previous workflows, carefully selected to have quite
different requirements and behaviors (from typical elastic Cloud applications to more HPC type ones). The
ASCETiC project is continuing to be developed. It is expected that new functionality for this component goes in the
direction of IaaS provider migration methods for a running application.
5.2. Multi-Cloud at IaaS and PaaS level: the SeaClouds approach, the PaaS Unified layer
SeaClouds provides a platform that performs a seamless adaptive multi-cloud management of service-based
applications, by developing Cloud Service Orchestrators and a set of tools to manage complex applications, thus
avoiding the problem of Cloud lock-in. This is achieved by supporting the distribution of modules that compose
cloud-based applications over multiple and technologically diverse IaaS or PaaS offerings, by using a unified
management API and universal metrics for monitoring and verifying functional and non-functional properties.
SeaClouds relies on Apache Brooklyn23, a top level Apache project, as its deployment engine. Brooklyn is a
framework for modelling, monitoring, and managing applications in IaaS through autonomic blueprints. A Brooklyn
blueprint represents an application: the modules’ artifacts, the software stack, the configuration of the relationship
between modules, autoscaling policies… may be described in the blueprint. Apache Brooklyn is an open source
project with an active community and rising popularity. This fact and the features provided by Brooklyn (declarative
deployment, broad catalog of supported entities, a complete GUI…) justified the selection of Brooklyn as
deployment engine in SeaClouds, in terms of capabilities and maintenance. Currently Brooklyn uses a blueprint that
complies with CAMP’s syntax and exposes many of the CAMP REST API endpoints. However, a non-official
TOSCA extension has been developed, to which SeaClouds collaborated in its implementation.
TOSCA is an OASIS open standard that defines a description of services and applications, including their
components, relationships, dependencies, requirements, and capabilities. It can be described as a technology
centered on the application, a concept that closely matches the SeaClouds approach. For this reason, SeaClouds has
embraced TOSCA, and uses the TOSCA specification to describe the deployment blueprints. The TOSCA blueprint
provides the necessary abstraction with regard to the underlying IaaS or PaaS provider. In terms of implementation,
the deployment engine uses Apache jclouds26 in the case of IaaS providers. In the case of PaaS providers, there are a
few libraries that accomplish the same tasks as jclouds, but they do not fit the capabilities needed in the project. To
solve this issue, SeaClouds built an abstraction layer that facilitates the management of PaaS providers.
This abstraction layer is the PaaS Unified Library27. The library provides basic operations for the management of
applications in PaaS providers in a homogenous way. It relies on the official Java clients for each platform. The
library can be used to deploy applications programming against it in Java code or using the included REST service,
which works on top of the library. The supported operations are: deploy, un-deploy, start, stop, scale and bind
service. The current supported providers are CloudFoundry v2 based providers (Pivotal, Bluemix, Canopy Cloud
Fabric...), OpenShift v2 based providers (OpenShift Online) and Heroku.
The library decouples the login with the provider and the actual operations to be performed, and therefore, it is
structured in two main interfaces: PaaS Client. Its job is to login to the provider in order to get a Session Object;
PaaS Session. Acts as a façade to the different basic operations stated previously.
SeaClouds monitors and assess the response time, availability and throughput of applications. According to the
desired values for these metrics that have been expressed by the developer in the design of a new application, the
corresponding monitoring rules and SLA are generated and included in the TOSCA Deployment Application Model.
The flow of actions at design and deployment time is as follows:
1. The user expresses the global QoS: response time, availability and throughput.
2. The Planner generates the monitoring rules (to assess QoS) and the SLA agreement (to keep track of violations).
3. The user agrees with the Agreement and starts the deployment.
4. The Deployer deploys the monitoring rules and starts the agreement enforcement.
Ana Juan Ferrer et al. / Procedia Computer Science 97 (2016) 63 – 72 71
Once the application is deployed, it is monitored with the Tower 4Clouds platform, developed in MODAClouds
project 28. The main capabilities of Tower 4Clouds are:
x The user defines the QoS constraints, in the form of monitoring rules,that need to be assessed at runtime. These
rules are cloud-provider independent. In SeaClouds, the rules are generated according to the desired response
time, availability and throughput of an application.
x The Data Collectors that are deployed together with the application send the monitoring data to a central Data
Analyzer, according to the installed monitoring rules, which specify what and how resources should be
monitored. No reconfiguration is required after scaling or migration activities. For PaaS applications, an
application data collector has been implemented, which is able to collect response times and throughput
measurements. The SeaClouds platform is in charge of automatically deploying the data collectors and
configuring them once the application is deployed.
x The Data Analyzer processes the data gathered by the data collectors, performing aggregations and/or verifying
conditions as specified in the monitoring rules. Some predefined actions can be defined in a monitoring rule and
executed when a condition is satisfied.
The following table compares and summarizes ASCETiC and SeaClouds approaches for Multi-Cloud PaaS core
elements and the identified desired capabilities.
The comparison performed in this paper in terms of approaches for Multi-tenancy, Cloud Reach, Service delivery
and Functional Scope has helped to identify potential collaboration opportunities across the ASCETiC and
SeaClouds projects with regards to Multi-Cloud PaaS approach. These collaboration opportunities are in the first
term related to the adoption of the TOSCA standard and SLA management. In addition, although known, the
analysis also reveals areas of potential improvements for both research projects such as Security and Compliance.
References