Cloud APIs

Cloud APIs are Application Programming Interfaces (APIs) into the Cloud Computing space and specific to how applications and their source code interact with the Cloud. A Cloud API is a mechanism by which software can request information from one or more Cloud Computing Platforms through a direct or indirect interface into a Cloud Computing Platform. Cloud APIs are most commonly written to expose their interfaces as REST and/or SOAP. Being that most Public Clouds are web based, power web applications, and provide interfaces and management utilities that are web based, most use an open REST style architecture for their Cloud APIs. There are many examples of Cloud APIs including both Cloud Provider based APIs and Cross Platform based Cloud APIs. Cloud Provider based APIs commonly provide an abstraction from the Cloud Provider's internal APIs, but still require API calls specific to their infrastructure implementation. Cross Platform based Cloud APIs attempt to abstract the details of Cloud Provider implementations so that an application or developer writing an application only has to call a single API to get a response regardless of the back-end Cloud.

Cloud APIs

Cloud APIs are segmented into Infrastructure, Service, Application. It is important to note that a combination of these APIs is possible.

Infrastructure

Infrastructure Cloud APIs provide methods of changing aspects of the Cloud's Infrastructure. Infrastructure Cloud APIs will perform functions such as provisioning (creating, re-creating, moving, or deleting components - like Virtual Machines), configuration (assigning or changing attributes of the architecture such as memory and CPU allocations, network settings, disk space and volumes). These components and their common use is referred to as Infrastructure as a Service (IaaS).

  • VMware vCloud(TM) API
  • Amazon.com Amazon EC2 API
  • Rackspace Cloud Servers API
  • RimuHosting's API

Service

Service Cloud APIs provide an interface into a specific Cloud capability provided by a service explicitly created to enable that capability. Social Media, Databases, Messaging Platforms, Web Portals, Maps, Network and Content, E-Commerce, and Storage, are all examples of Service Cloud APIs. These services are commonly referred to as Platform as a Service (PaaS).

  • Twitter (Wiki specifically for API)
  • Amazon.com SimpleDB(TM)
  • Flickr
  • Google Maps API

Application

Application Cloud APIs provide methods to interface and extend applications on the web. Application Cloud APIs connect to applications such as CRM, ERP, Accounting, Social Media, Help Desk. These Applications are delivered as Software as a Service (SaaS).

  • Salesforce Force API
  • Facebook (Wiki with API References)
  • NetSuite API
  • LinkedIn API

Cloud Provider Cloud APIs

Cloud Provider Cloud APIs provide abstractions over a specific provider Cloud and usually have custom or unique provider calls that are designed to enhance the amount of control of that cloud by using the provider's API implementation. Cloud Provider APIs are implemented to support HTTP and HTTPS based communications protocols. Cloud Provider Cloud APIs have authentication mechanisms put in place to ensure that only authorized API calls are made to their systems. Most Cloud Provider based APIs have an ID or Authentication Key which provides an authorization/authentication and is usually passed over HTTPS to ensure security. Cloud Provider APIs also may use the ID or another Key to create a Hash based Token or a Password to authenticate provide additional security (similar to Public Key Infrastructure).

  • Amazon Web Services
  • Google App Engine
  • Microsoft SQL Azure

Cross Platform Cloud APIs

Cross Platform Cloud APIs provide a higher level of abstraction than Cloud Provider based Cloud APIs. This is accomplished by taking Cloud Provider specific Cloud API calls and making them generic, the benefits of using a Cross Platform based Cloud API is the ability to use a single API call, to access or leverage cloud resources on more than one Provider's Cloud Computing Platform. This saves a considerable amount of time, reduces complexity of the code rather than implementing multiple Cloud Provider based Cloud APIs.

  • jclouds
  • Deltacloud
  • The Dasein Cloud API
  • libcloud

Cross Platform Cloud Computing Initiatives/Organizations

There are several organizations that have sprung up around providing Cross Platform based Cloud APIs. The goal of these organizations is to bring uniformity and/or standardization to Cloud APIs making it easier for developers to leverage Cloud APIs.

  • Simple Cloud API
  • The Cloud Computing Interoperability Forum

Resources