Objective
This post provides a high level overview of various components of OpenStack, thereby setting stage for more in depth discussions in subsequent posts. With the buzz around Folsom release and the Grizzly summit, this series of posts intend to bring the CloudStory readers upto speed with OpenStack internals. This series is inspired by Ken Pepple’s post on Folsom Architecture and uses Folsom release as the reference. Differences with prior releases are noted appropriately.
OpenStack vs AWS Services comparison
As much as I don’t like to use AWS as standard, for the ease of understanding, I’ve compared with OpenStack components with similar components of AWS. Please note that this is not a 1:1 mapping. Among these, Quantum and Cinder were introduced for the Folsom release. All these components are available as services.
High Level Diagram
Following diagram explains all these services in the context of the resources they manage. Please note that this doesn’t depict the exact deployment architecture. Services are shown in different color to show what resources they control (for instance, Nova in red controls hosts and virtual servers).
![open_stack](https://images.yourstory.com/cs/wordpress/2012/10/open_stack.jpg?fm=png&auto=format)
Nova
This is the oldest component of OpenStack,responsible for Virtual Machine management operations – create/ start/ stop/ delete VMs etc. Unique feature of this component is that it supports multiple hypervisors – libvirt for KVM/ QEMU, XenAPI for XenServer etc (as opposed to specific hypervisor only limitations on many proprietary cloud management platforms like VmWare). Nova itself comprises of various entities such as nova-api (programmatic end point), nova-compute, nova-scheduler, nova-volume, nova-network, a queuing component (usually RabbitMQ), a database (usually MySQL) and console services.
Glance
This is responsible for managing Virtual Machine Images (AMI in AWS jargon). One can create, register, retrieve and store images. An image provides the ‘software’ for the virtual machine – the operating system and any custom software along with metadata. Glance consists of various entities such as glance-api, glance-registry and a storage repository to store these images.
Swift
Swift is the Object store – essentially a repository to store files. This consists of a proxy-server (swift-proxy-server) and various other entities such as object server, container server, account server, replication service, updater, etc. This is responsible for providing storage repository for non-relational data objects.
Keystone
Keystone is the Identity service responsible for authentication and access control. This enables key tenets like tenancy, roles, users, projects and tokens. This is responsible for determining who gets access to cloud resource and at what level.
Horizon
This is the user/ admin dashboard which can be used to manage the resources that constitute your cloud.
Cinder
Cinder is responsible for providing block storage. This is actually a servicified component of nova-volume (part of Nova). This supports volume creation and volume snapshots. This consists of cinder-api, cinder- volume and cinder-scheduler. Think ‘USB flash drive’ for your VM which can be attached and detached to/ from a VM.
Quantum
If you would like to contribute to OpenStack, get started at http://www.openstack.org/community/. You can follow @openstack or @openstackindia to stay current. If you would anything covered specifically in following posts, please let us know. Happy Stacking!This is responsible for managing virtual network management – creating virtual network interfaces, creating networks/subnets, assign IP addresses etc. This consists of a programmatic endpoint (quantum-server) and customizable plugins.
![sriram_sub](https://images.yourstory.com/cs/wordpress/2012/10/sriram_sub.jpg?fm=png&auto=format)
Sriram Subramanianis a Cloud Specialist and an OpenStack enthusiast. He is also an individual member of OpenStack Foundation, passionate about OpenStack's success overall, and inIndia particularly. Most recently he was a lead developer at ComputeNext, building a Federated Cloud Marketplace, where he gained expertise in multiple cloud platforms, including OpenStack. Prior to ComputeNext, he worked at companies like Microsoft, HDS and Intel, working primarily on Virtualization and Cloud Computing. His previous public speaking engagements include OpenStack Folsom summit and Seattle Tech Forum. He enjoys helping early stage startups and startup ecosystems. You can follow him @sriramhere.