OpenStack Cloud Computing needs no introduction! It is currently the top most open source project and also the top most Cloud Computing Initiative backed by Enterprise IT giants to start-ups and developer community (see the list of companies: http://www.openstack.org/foundation/companies/) Undoubtedly OpenStack is the future of Cloud Computing! Inspite of taking active interest on OpenStack for quite some time, I decided it is now time for me to burn my fingers in terms of blogging and evangelizing on OpenStack! And the first thing comes to my mind is discussing OpenStack Architecture. I thought why not to start with OpenStack components and how they relate to the similar components in VMware vCloud and Amazon Web Services (AWS) environment. Both VMware vCloud and Amazon AWS have been strong players in the IaaS Cloud world and mostly people are well aware on either of them. So giving an analogy to their terms will give an easy understanding in terms of starting with OpenStack. Here it goes…
OpenStack being an Open Source Project comes out in releases unlike as version changes in proprietary softwares (e.g VMware vCloud v1.5, and then v5.1 and so on…). In a year, there are two releases, every six months. The latest release is known as “Havana” release. It follows the alphabetic order from “A” to “Z”; currently at “H” (the earlier two releases were “Folsom” and “Grizzly”). The next release named as “Icehouse” is due for release early next year. Every release of OpenStack introduces lot of new features; guess to make it a head to head match with Amazon AWS Cloud. And looking at the pace the way this project is being shaped up and backed by everyone, right from exciting start-ups (like MetaCloud, Piston Cloud, Mirantis, Aptira. MorphCloud etc.) to all the big enterprise giants (like HP, IBM, Cisco, Red Hat, EMC, VMware, Dell…) it will not be exaggerating to say that, probably in next 1 to 2 years it will be as feature rich as Amazon AWS currently is.
OpenStack suite (it resembles a software “suite”) consists of multiple components as you would see mostly in any Cloud Software Suite (for example, vCloud Suite consists of vSphere, SRM, vCOPS, vCloud Director, vCAC, Chargeback etc.). So, let’s explore how the “Havana” feature release looks like.
Havana release consists of these components or services described below with a relevance to VMware vCloud or Amazon AWS for analogy purpose…
1. “Nova” Compute: Think of “Nova” as vCloud Director in VMware vCloud Suite. I would call it as the “Heart” of Openstack Cloud Computing. This manages all the virtual machines or VMs in Openstack, very similar way vCloud Director does in the VMware Cloud environment. Typically any IaaS (Infrastructure As A Service) cloud environment, the component which does the compute part is the essential element. You can think of it as the chairperson running the entire show along with assistance from other components like Neutron, Glance, Swift, Horizon, Keystone etc. “Nova” further provides another abstraction layer on top of your Hypervisor (and it does not matter in OpenStack which Hypervisor you use: KVM, Xen, ESXi or Hyper-V); very similar way vCD works in vCloud. This acts as the “Fabric Controller” in a typical IaaS Cloud Architecture. The Fabric Controller can be called as the kernel of any IaaS Cloud Software Suite. Its job is to simply play with the Virtual Machines or VMs provided by your Hypervisor. It provisions, stores, delivers, monitors and commands the virtual machines (VMs) and physical servers that make up the OpenStack Cloud. Nova was initially a NASA initiative and is written completely on the new generation language “Python” unlike Java (in case of “CloudStack”, another OpenSource Cloud Computing Project, now run by Citrix) or C/C++ or .Net. Cloud Users won’t get to interact with “Nova” directly, they will rather do it through “Horizon” dashboard component which we are going to talk next…
2. “Horizon” Dashboard: Most of us have used the Amazon AWS Console (screenshot below)
“Horizon” is pretty similar to this. Through Horizon you will interact with different services of OpenStack, like launching an instance (or a “VM”), accessing the underneath storage or files, playing with networking like IP Addresses, setting permissions etc. Horizon primary works as an user interface tool to talk to the more heavy-duty services like Nova, Swift etc. In VMware vCloud, you can think of it as the vCloud Director User Interface Console. To make Horizon work, you need an identity management component for authentication (in OpenStack it is “KeyStone”) and an Image Management System (“Glance”. Glance is equivalent to Amazon AWS’s AMI [AWS Machine Instance] Store) apart from of course Python and Nova. It started initially as a dashboard or console to manage Nova Compute Layer, but eventually has grown today with multiple plug-ins to interact with other services as well.
Real life example has shown that Cloud Providers tend to customize the standard Horizon dashboard (e.g: HP’s Public Cloud based on OpenStack has a customized version of Horizon: see www.HPCloud.Com) The Horizon Project was initially started by Canonical (Developer and Support provider of Ubuntu Linux). It is now time to move to the networking component of OpenStack. And there goes Neutron…
3. “Neutron” Networking (earlier known as “Quantum”): If you have been a VMware vSphere or vCloud user, you know all the networking terms like vSwitch, Distributed vSwitch, vCNS (“vCloud Networking & Security”, earlier known as vShield Suite). Neutron is pretty similar to them and provides all the services that these components do in vCloud environment. In an AWS environment, all the network related operations that you perform with the launched instances like assigning IP Addresses, Changing DNS settings, DHCP, VPN etc. all can be mapped to Neutron’s work arena in OpenStack. Once a VM has been provisioned by Nova through a request from Horizon web console, the user would like to assign it with a network interface, IP address settings etc. That’s where Neutron works in the background. Because of its pluggable modular architecture different vendors like Nicira (now a VMware company, known for its SDN offering and NSX), Arista Networks (another SDN player, well known for its 7000 series switches) can integrate their solutions with it seamlessly.
4. “Cinder” Block Storage: In Amazon AWS, the block storage is known as EBS (Elastic Block Storage). Cinder can be called as the OpenStack version of EBS. It is a persistent non-volatile block storage meaning the data is stored in blocks. You can think of it as an additional volume (D: or E: in Microsoft Windows Servers) you would attach or assign to the virtual machine. Remember, it is not the local storage where your OS is installed and boots from (in Windows, it is C: ). There are typically two types of storage in an IaaS Cloud: A) File Level Storage and B) Block Level Storage. Block Level Storage is used to high performance systems like Exchange or SQL Server Databases or to any kind of application which may need rapid growing or shrinking data requirements. Usually these are fast-accessible and high cost storage. All the major storage vendors like HP, EMC.Dell, Netapp and even Software Defined Storage startups like Nexenta’s solutions work with Cinder. There are some interesting case studies how new-age Software Defined Storage from HP’s StoreVirtual and Nexenta’s NexentaStor work with Cinder. With Cinder, you can create, attach and detach a volume to a virtual machine instance. Interestingly, it can also work with Unix/Linux based NFS shares.
5. “Swift” Object Storage: Its equivalent to Amazon AWS S3 (Simple Storage Service). This is usually used for internet services for storing large audio/video files which will mostly be static in content unlike Cinder. Similar to Amazon S3, it is scalable and redundant in nature where files are usually stored in inexpensive disks replicating across multiple devices and nodes. Rackspace launched this development initiative to replace an earlier similar project called “Cloud Files”.
6. “Glance” Image Service: Its the OpenStack version of Amazon AWS AMI (AWS Machine Instance) and VMware’s VM Templates and vApps. Think of it as a store of pre-configured VMs with applications and settings which you can use time and again while launching an VM instance. It uses a RESTful API for querying and retrieving the images. These images can be stored either on Cinder or Swift storage systems.
7. “KeyStone” Identity Service: Think of it as the Active Directory or RADIUS system in your corporate network. As the name suggests, it provides identity services, like ILM in Microsoft Networking. Although unlike Active Directory (which is token based), it also provides centralized authentication mechanism for the OpenStack Cloud in username/password format as well. Without this you cannot even logon to the Horizon dashboard to start using the Cloud Services in OpenStack. It can in turn connect to your corporate internal network’s Active Directory or OpenLDAP or even Amazon AWS. It uses OpenStack Identity Service API which is implemented using a RESTful web service interface. It works on SSL over HTTP (HTTPS) on TCP port 443.
8. “Ceilometer” Metering & Monitoring Service: If you are familiar with VMware vCloud, you know what VMware vCenter Chargeback Manager is used for. Similar to Chargeback Manager, Ceilometer provides all the billing facilities to determine how much a resource like a VM or Storage or any other service say load balancer has been used and how to charge it to the appropriate business unit or tenant/customer. It provides the metering and monitoring of services for data collection for usage consumption determination and further cross charging purpose. This along with “Heat” was incubated in the earlier Grizzly release and but made part of OpenStack only in the Havana release.
9. “Heat” Orchestration Service: Its the OpenStack IaaS Cloud Orchestration project/service pretty much in line with HP’s Cloud Service Automation (HP-CSA) or VMware’s vCloud Automation Center (previously DynamicOps). It allows the customers to provision a group of cloud services using Amazon’s AWS CloudFormation templates and OpenStack native REST API. This service was not there in Grizzly but now part of Havana.
In the next post we will see how these services interact with each other, stay tuned.
Thanks for your time! Let’s be “Sociable”, please share on your social network…
[This article was first published on Amitabh Dey's personal blog: www.Amitabh-vWorld.Com]