CLOUD
INTEROPERABILITY AND STANDARD
Standards
for Interoperability and Portability
Introduction
Cloud
computing is rapidly growing in importance for many organizations, with ongoing
take-up of a wide range of cloud services and the transition of both data and
applications to cloud computing environments. The topics of interoperability
and portability are significant considerations in
relation to the use of cloud services, but there is also confusion and
misunderstanding of exactly what this entails. The aim of this section is to
provide a clear definition of interoperability and of portability and how these
relate to various aspects of cloud computing and to cloud services.
Interoperability &
Portability Overview
The cloud ecosystem is
large, with many providers offering a wide variety of cloud services.
Understanding the portability and interoperability “of what” is the necessary
first step of planning and designing for the use of any cloud service.
Clarifying the specific interoperability and portability concerns accelerates
identification of the “best fit” options and potential development of
solutions.
This section provides
an overview of the topics of interoperability and portability which is useful
in understanding the more detailed descriptions contained in the scenarios and
subsequent sections.
Basic
Definition of Interoperability
Broadly speaking,
interoperability can be defined as a measure
of the degree to which diverse systems or components can work together
successfully.
More formally, IEEE and
ISO define interoperability as the ability
for two or more systems or applications to exchange information and mutually
use the information that has been exchanged.
To be more concrete, in
the context of cloud computing, interoperability should be viewed as the capability of public clouds, private clouds,
and other diverse systems within the enterprise to understand each other’s
application and service interfaces, configuration, forms of authentication and
authorization, data formats etc. in order to cooperate and interoperate with
each other.
In
cloud computing, the most significant interacting components are those which
belong to the cloud service customer which interact with components of the
cloud service provider. The nature of the interaction is a network connection
using a prescribed interface or API. There are typically multiple separate
interfaces, each dealing with a different aspect of the cloud service. For
example, there are the functional interfaces of the cloud service itself,
authentication and authorization interfaces, interfaces for administration of
the cloud services, and business interfaces for billing and invoicing. The
ideal of interoperability is that the interfaces are standardized in some way – i.e. they are
interoperable - so that the customer can switch to another cloud service
provider with minimal impact on the customer's components.
Basic
Definition of Portability
Portability is about
the ability to move an entity from one system to another so that it is usable
on the target system. The main problem caused by the lack of portability is
that it may take considerable effort to transform the entity from its format on
the source system to the format required by the target system.
Portability is divided
into two separate areas: data portability and application portability:
Cloud
data portability is the ability to easily transfer
data from one cloud service to another cloud service, without being required to
re-enter the data. It is the ease of moving the data that is the essence here.
This might be achieved by the source service supplying the data in exactly the
format that is accepted by the target service. But even if the formats do not
match, the transformation between them may be simple and straightforward to
achieve with commonly available tools.
Application
portability is the ability to easily transfer
an application or application components from one cloud service to a comparable
cloud service and run the application in the target cloud service. The ease of
moving the application or application components is the key here. The
application may require recompiling or relinking for the target cloud service,
but it should not be necessary to make significant changes to the application
code.
To date, most of the
focus for cloud interoperability and portability standards has been at the IaaS
layer although activity at the PaaS level is starting to accelerate. In
addition, there are several security standards that enable and facilitate cloud
computing interoperability even though they are not exclusive to cloud
computing. Cloud computing customers should determine the level of support for
the following standards by prospective cloud service providers. Lack of support
for these standards is likely to result in interoperability and portability
challenges down the road.
· Open Virtualization Format (OVF). A packaging standard developed by the
Distributed Management Task Force (DMTF) that is designed to address the
portability and deployment of virtual machines.
·
Cloud Data Management Interface (CDMI). A standard defined by the Storage
Networking Industry Association (SNIA) that defines the functional interface
that applications will use to create, retrieve, update and delete data elements
from the cloud.
·
Open Cloud Computing Interface (OCCI). A set of open specifications delivered
through the Open Grid Forum that defines a protocol and API for all kinds of
cloud computing management tasks.
·
Topology and Orchestration Specification
for Cloud Applications (TOSCA). A standard developed by OASIS that enables the interoperable
description of application and infrastructure cloud services, the relationships
between parts of the service, and the operational behavior of these services
(e.g., deploy, patch, shutdown).
·
Cloud Application Management for Platforms
(CAMP) . A standard
developed by OASIS that defines an interoperable protocol that cloud
implementers can use to package and deploy their applications.
·
Cloud Auditing Data Federation (CADF). A standards developed by DMTF that
defines open standards for cloud auditing.
·
LDAP, OAuth, OpenID Connect and SAML. Standards that enable third party ID and
Access Management functionality.
·
US FIPS 140-2. Standard that specifies the security
requirements to be satisfied by a cryptographic module utilized within a security
system protecting sensitive information.
In addition to standards, there are
a number of open source projects that are having a positive impact on cloud
computing interoperability and portability. Open source projects that have an
open governance model (i.e. not controlled by a single company) and attract a
broad supporting ecosystem are the best candidates for creating de facto
standards. In the IaaS space, OpenStack is an example of an open source project
that is building significant industry momentum. Open source projects for PaaS
are emerging. Examples of PaaS open source projects that are starting to build
significant industry support include Cloud Foundry, Heroku, OpenShift and
Docker.
SCALABILITY & FAULT TOLERANCE
The ability to scale
on demand constitutes one of the most attractive features of cloud computing. Clouds
allow scaling beyond the limits of the existing in-house IT resources, whether they
are Infrastructure (compute and storage) or applications services. To implement
such a capability, the cloud middle ware has to be designed with the principle of
scalability along different dimensions in mind—for example, performance, size, and
load. The cloud middleware manages a huge number of resource and users, which rely
on the cloud to obtain the horse power that they cannot obtain within the
premises without bearing considerable administrative and maintenance costs. These
costs are a reality for whoever develops, manages, and maintains the cloud middleware
and offers the service to customers.
In this scenario,
the ability to tolerate failure becomes fundamental, sometimes even more important
than providing an extremely efficient and optimized system. Hence, the challenge
in this case is designing highly scalable and fault-tolerant systems that are easy
to manage and at the same time provide competitive performance.