Provider lock-in is well known obstacle of cloud computing business model. It is characterized by the inability or limited ability to connect to resources that are not part of the selected cloud offer. Migration of application and corresponding data to alternative cloud services may be expensive and time-consuming, and the user depends on a vendor’s technology. If we want to circumvent the mentioned obstacle, we must find a way to achieve cloud computing interoperability.
Everyone has their own API
Currently, each cloud provider prefers some specific technological solutions and their own design of available remote methods (SOAP and REST APIs). For example, Google App Engine, Oracle PaaS Platform, Salesforce, and Microsoft Azure offer very different APIs. Some vendors even try to invent new programming languages (for example, Salesforce and its proprietary Apex language). In addition, models of data storage can range from NoSQL to the relational databases, providers use their own query languages, and they support different data types.
For now, there are no cloud computing standards accepted by the most of major commercial cloud providers. However, many initiatives are active. DMTF OCSI (Open Cloud Standards Incubator) is standardizing the management of cloud resources. DMTF has also proposed OVF (Open Virtualization Format) specification to support open, secure, efficient and extensible format for the packaging and distribution of software that will run on virtual machines. OCCI-WG (Open Cloud Computing Interface Working Group) is developing practical specifications of infrastructure as a service. SNIA CDMI (Cloud Data Management Interface) enables cloud applications to create access, update and modify data elements stored in clouds. OASIS TOSCA (Topology and Orchestration Specification for Cloud Applications) aims to increase the portability of applications and IT services to the cloud.
One solution to solve cloud interoperability problems is to use brokers. There are and frameworks that act as intermediaries:
- Apache Libcloud is a Python library which hides differences among cloud providers APIs and enables managing different cloud resources through a unified API
- Deltacloud API is an API that abstracts differences between clouds
- Apache jclouds is an open-source library to use portable abstractions or cloud-specific features
- The Dasein Cloud API is inspired by JDBC and it provides an abstraction for applications that wish to be written independent of the clouds they are controlling.
Prototypes from research projects
The problem of interoperability of cloud computing has been recognized by the European research funding organizations. For example, several FP7 research projects that are dealing with this issue are active:
- Cloud4SOA provides a harmonized API that enables the seamless interconnection and management of applications across different platforms as a service.
- mOSAIC offers a standard API for programming clouds
- Contrail designs an open source system for cloud federations
- Vision Cloud addresses the issues of data management in cloud federations
Cloud computing interoperability problems are far from being solved, but there are some feasible solutions before cloud standards become mature and adopted by major cloud players.
By Darko Androcec