The OpenStack project is an open source cloud computing platform that supports all types of cloud environments. The project aims for simple implementation, massive scalability, and a rich set of features. Cloud computing experts from around the world contribute to the project.
OpenStack provides an Infrastructure-as-a-Service (IaaS) solution through a variety of complemental services. Each service offers an application programming interface (API) that facilitates this integration. The following table provides a list of OpenStack services:
|Dashboard||Horizon||Provides a web-based self-service portal to interact with underlying OpenStack services, such as launching an instance, assigning IP addresses and configuring access controls.|
|Compute||Nova||Manages the lifecycle of compute instances in an OpenStack environment. Responsibilities include spawning, scheduling and decommissioning of virtual machines on demand.|
|Networking||Neutron||Enables Network-Connectivity-as-a-Service for other OpenStack services, such as OpenStack Compute. Provides an API for users to define networks and the attachments into them. Has a pluggable architecture that supports many popular networking vendors and technologies.|
|Object Storage||Swift||Stores and retrieves arbitrary unstructured data objects via a RESTful, HTTP based API. It is highly fault tolerant with its data replication and scale out architecture. Its implementation is not like a file server with mountable directories.|
|Block Storage||Cinder||Provides persistent block storage to running instances. Its pluggable driver architecture facilitates the creation and management of block storage devices.|
|Identity service||Keystone||Provides an authentication and authorization service for other OpenStack services. Provides a catalog of endpoints for all OpenStack services.|
|Image Service||Glance||Stores and retrieves virtual machine disk images. OpenStack Compute makes use of this during instance provisioning.|
|Telemetry||Ceilometer||Monitors and meters the OpenStack cloud for billing, benchmarking, scalability, and statistical purposes.|
|Orchestration||Heat||Orchestrates multiple composite cloud applications by using either the native HOTtemplate format or the AWS CloudFormation template format, through both an OpenStack-native REST API and a CloudFormation-compatible Query API.|
|Database Service||Trove||Provides scalable and reliable Cloud Database-as-a-Service functionality for both relational and non-relational database engines.|
This guide describes how to deploy these services in a functional test environment and, by example, teaches you how to build a production environment. Realistically, you would use automation tools such as Ansible, Chef, and Puppet to deploy and manage a production environment.