Jump to: navigation, search

SDK-Development

Revision as of 08:12, 8 February 2014 by Shaunak Kashyap (talk | contribs) (Fixing minor typo)

To enable application developers to build applications that use OpenStack, we need SDKs for each programming language (e.g., PHP, Go, Java) to provide them with what they need.

The purpose of this page is to work through how we go about building SDKs in a semi-consistent manner on the OpenStack infrastructure.

What's in an SDK?:

An SDK is more than just a set of APIs provided to you. A complete SDK provides a consumer focused API for interacting with the system, and it additionally includes:

  • Documentation aimed at users consuming the SDK and system.
  • Clear examples of usage, including functioning, executable examples.

Audience

Application developers build applications that interact with OpenStack. Application developers are not OpenStack Operators or Developers. These are developers looking to consume a feature-rich OpenStack Cloud with its many services. These Developers require a consistent, single namespace API ("Application Programming Interface") that allows them to build and deploy their application with minimal dependencies.

Goals for each SDK

  1. Support multiple API versions for each service (e.g., Keystone API v2 and v3).
  2. Use application developer friendly language in descriptions (e.g., Compute instead of Nova).
  3. Provide a manner to extend the services in the SDKs.
  4. Be written in a manner consistent with the language and platform they are for (e.g., A Java SDK shouldn't look like Python).
  5. Contain example code to get started.
  6. Contain documentation explaining how to get started and going with the SDKs and the services.