Cloud Management with Apache Deltacloud API

Introduction

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.

Apache Deltacloud API

Features of Deltacloud API

·         Basic set of CRUD operations
o   Create (instance)
o   Read/List (instances, images, hardware profiles...)
o   Update (instance state – reboot, stop, start)
o   Destroy (instance, images)
·         Extended operations
o   Upload blob to bucket (S3)
o   Assign instance to loadbalancer
·         Instance authentication
·         User data injection
·         Security groups
·         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 provider
·         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 environments.
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: ,