Whether you use a public cloud service provider or maintain a private cloud, you are faced with the task of managing
server instances. With Infrastructure as a Service, IT teams create and manage instances and perform load balancing and storage management using a control panel and an API. But different cloud vendors provide different APIs. With no standard cloud API in sight, how can IT pros maintain control and compatibility with current and future cloud services?
Several organizations have attempted to create a standard API for cloud computing. The Distributed Management Task Force (DMTF), for example, has an initiative to create standards for clouds; its draft specification is called the Cloud Infrastructure Management Interface (CIMI) Model and REST Interface over HTTP.
Even though several working groups are committed to developing a standard cloud API, standards only partially exist and vendor support is limited.
The European organization ETSI has published several studies regarding cloud technologies as well as some early APIs that apply more to grid computing than cloud computing. And Open Grid Forum produced a cloud-specific API; however, it’s only partially complete, as it doesn’t offer any monitoring or billing methods. Specifications for those features are in progress.
SimpleCloud, an organization headed by Zend Technologies that includes Microsoft and Rackspace, has created the basic Simple Cloud API.
While these moves demonstrate the industry is making some progress, as with any standards work, not all vendors are on board. Amazon Web Services (AWS), for example, has spent years developing a proprietary infrastructure and cloud API and has little incentive to switch to an industry standard. Other cloud vendors have developed their own standards, including ElasticHosts API, FlexiScale API, GoGrid API and SunCloud API. Additionally, OpenStack, the open source cloud software from Rackspace, is an entire infrastructure -- not just an API -- that’s gaining steam.
Centralizing cloud management and source libraries
A few companies have produced their own Web-based cloud instance management products, which are cloud vendor-agnostic. RightScale, for example, has a management console that provides a single API and a management console that works with multiple cloud vendors.
Several cloud developers strayed from building a standard API and, instead, offer a library that supports large cloud players and provides a simple API. Functioning like a translator, the library allows programmers to target an API and then specify which cloud vendor they want to use.
Apache Deltacloud is an open source cloud library that communicates with numerous hosted cloud platforms, including Amazon, Rackspace, GoGrid and RimuHosting, as well as a private cloud that’s built using OpenStack and VMware vSphere. Similarly, jclouds provides a single API that supports most major cloud vendors, including AWS as well as vendors that implement OpenStack.
Recommendations for pinning down a cloud API
There is no single cloud standard, nor will one be developed anytime soon. And even though several working groups are committed to developing a standard cloud API, standards only partially exist and vendor support is limited. So what should a cloud developer do when choosing an API? Here are a few guidelines:
- If you’re using a cloud vendor that has its own API, such as AWS, you may be at risk for vendor lock-in. However, if don’t plan to change cloud vendors in the future, this is a suitable option.
- If you’re targeting multiple vendors’ cloud services, you could use third-party cloud software from RightScale. While this is a good option, it’s expensive and better suited for large enterprises. Such products include a fully featured API as well as online control panels and customer support.
- Open source cloud tools such as Deltacloud or jClouds are good options for companies with limited budgets that need to target multiple vendors. However, these companies will need knowledgeable development staff in-house, which could add to the cost of an open source option.
- Choose a standard API first and then choose a cloud vendors based on its support for the API. Currently, OpenStack is the primary vendor to fit into this scenario, but the project is gaining acceptance from other cloud vendors and consumers alike. But be aware, choosing the API first and then selecting vendors can limit a company’s choice of cloud vendors and certain proprietary features.
Jeff Cogswell is a software engineer with over 20 years of experience in various technologies and platforms ranging from Unix and Linux, Windows, ASP.NET/C# Web development, PHP development and various database technologies. He has authored several books, including C++ All-in-One for Dummiesand runs trainings for Web developers and programmers. Visit his website at www.cogsmedia.com.
Dig deeper on Cloud APIs and frameworks