OpenStack is a cloud management software used for building and managing public and private clouds.Its a completely open-source software, available under a very favorable Apache license.
Conceptual architecture of OpenStack looks like the following :
Source – http://www.openstack.org/software/
Code named nova, this component is responsible for handling compute resources. Deployment and management of compute instances (virtual servers) is handled by this component. Nova leverages hypervisor capabilities to deploy and manage instances. There are nova drivers for KVM, Xen, VMware etc.
Code named cinder, this component is responsible for providing persistent block storage to compute instances. Creation, deletion, attaching, and detaching of storage is handled by this component.
Code named swift, this component provides object storage services. Object storage stores data as objects unlike traditional file systems. Object storage is accessible via APIs, and can be used for storing virtual machine images, archival, backup, snapshots, application data etc.
Code named neutron, this component is responsible for managing networks and IP address assignment, for compute instances.
Code named horizon, this component is responsible for providing a web-based graphical interface to operate and use the cloud, by administrators and users.
There are certain shared services, which spans across compute, storage and network, and is the glue between these components. Following are the shared services in OpenStack
- Identity Service – Code named keystone, this component provides access and identity management services for all other OpenStack components.
- Image Service – Code named glance, this component provides mechanisms to store and use images for compute instances. Compute instances are deployed from glance images.
- Telemetry Service – Code named ceilometer, it aggregates usage data across various components, which can be used to get operational insights into the working of OpenStack cloud or can be used for metering and billing.
- Orchestration Service – Code named heat, this component provides a mechanism for developers to describe, and automate the deployment of a cloud application, including the infrastructure required for the application.
OpenStack website – www.openstack.org is a good place to get more detailed information on OpenStack.