Cloud computing has grown to
heights in last couple of years. Across the industries, organizations have
realized the benefits that can be achieved with the use of cloud environment.
Cloud computing has three service models 1) Software as a Service, 2) Platform
as a Service, and 3) Infrastructure as a Service and four deployment models 1)
Public Cloud, 2) Private Cloud, 3) Hybrid Cloud, and 4) Community Cloud. In
recent years, vendor landscape of cloud services across service models and
deployment models has grown exponentially.
There are many cloud service
providers and hence it has resulted into many complexities. Each provider has
their own set of APIs such as AWS, Eucalyptus, OpenStack, VMware vCloud etc.
Some APIs support multiple cloud environments or have lot of similarities with
the other APIs but still basic concern is not addressed. Standard API can help
to address one of the main concerns – vendor lock-in. Standard API can be very
useful in managing multiple clouds from a single web UI. It is easier to create
customized application which can use multiple clouds for common use cases such
as scaling of infrastructure across multiple cloud environments. Hence it is
useful to have one API to manage multiple cloud environments.
Overview - DeltaCloud
DeltaCloud project was started by
Red Hat in 2010. Founders identified that there is a big gap in terms of
portability and data lock in. Writing applications to do any development or
deployment with cloud service provider resulted into locked mode situation with
the cloud vendor's API. Hence, Red Hat wanted to offer a single API developed
openly for multiple clouds.
DeltaCloud API incubated under
Apache Foundation (ASF) is a REST based cloud abstraction API for managing
resources in different Infrastructure as a Service clouds. Motivation to build
standard API for multiple clouds was to have heterogeneous cloud and
virtualization environment. It is REST based API hence it is programming
language agnostic. Delta Cloud supports HTML, XML, and JSON. In the absence of
a unified cloud API, DeltaCloud is the next best thing.
Features of Deltacloud API
Basic set of CRUD operations
Read/List (instances, images, hardware
Update (instance state – reboot, stop, start)
Destroy (instance, images)
Upload blob to bucket (S3)
Assign instance to loadbalancer
DeltaCloud works with 11 different compute APIs such
as EC2, vSphere etc. and five different storage APIs such as S3, Eucalyptus
Walrus, Google Storage etc.
Benefits of Deltacloud API
Simple migration from one provider to another
Avoid vendor lock-in: Freedom in choosing
QOS (Quality of Service)
How DeltaCloud works?
It is implemented in the Ruby programming language.
Deltacloud uses the notion of a driver specific to cloud service provider,
which is an adapter that can be used to connect to different cloud
DeltaCloud API provides essential operations that consumers
want for interacting with cloud services from any management tool or
application. DeltaCloud is a server that acknowledges a standard REST API call
for creating new instances on the compute resources, getting instance’s virtual
hardware profiles, rebooting instances, and image details etc. DeltaCloud also
provides API for creating buckets, reading/writing data, and manipulating the
buckets and storage blobs.
The DeltaCloud server translates requests into the
appropriate API calls for the respective IaaS providers it supports. If a cloud
service does not have a native API for performing specific operation then
DeltaCloud notifiy so developers can work around it.
Labels: AWS, Cloud Computing