Development resources for OpenStack clouds

This web page will walk you through the stages of learning to develop applications to run on OpenStack.

Development Environments Writing your First App Reference Architectures View SDKs View APIs View CLIs

Development Environments

Need a place to start learning OpenStack, or your own personal OpenStack development environment?

Public Environments

Private Installations

Writing Your First OpenStack Application

Want to quickly learn how to manipulate OpenStack using the OpenStack SDKs?

OpenStack FirstApp

Reference Architectures

Think of these as curated playlists of OpenStack configurations. These Reference Architectures are based on real-world workloads. The Reference Architecture document will give you a good idea of which core and optional projects might be used by the workload. In addition, each Reference Architecture includes sample Heat and or Murano packages which will allow you to reproduce the workload in your own environment.

Reference Architectures

Heat Templates


A software development kit (SDK) contains code, examples, and documentation that you use to create OpenStack cloud applications in the language of your choice.

If one of the following SDKs do not support your language or use case, you can use the APIs or one of the other known SDKs.

OpenStack Specific SDKs

SDKs that specifically target OpenStack. These will give the deepest support for using OpenStack specific features, but won't help write applications that work on both OpenStack as well as other clouds.


Issues: gophercloud/gophercloud issues
IRC: #openstack-sdks on freenode

Multi-cloud SDKs

SDKs that provide a multi-cloud abstraction layer and include support for OpenStack. These SDKs are excellent for writing applications that need to consume more than one type of cloud provider, but may expose a more limited set of features.


An application programming interface (API) lets you access service capabilities through predefined functions.

To learn how to use the APIs, see the OpenStack API Guide. All documented OpenStack APIs are listed on the API Reference Guide page.



A command-line interface (CLI) is a text-based client that helps you create scripts to interact with OpenStack clouds.

To install the CLIs, see Install the CLIs.

To use the CLIs, see OpenStack command-line clients.

Documentation treated like code, powered by the community - interested? Here's how to contribute .

The OpenStack project is provided under the Apache 2.0 license. is powered by Rackspace .