OpenStack is an open source project that consists of a set of software tools for building, deploying and managing cloud computing platforms for both private and public clouds. OpenStack is managed by the non-profit organization, OpenStack Foundation that promotes the global development, distribution and adoption of the OpenStack technology. It is supported and funded by a number of major enterprises, corporations and organizations and has thousands of community members world-wide who actively participate in technical contributions and community building efforts.
According to OpenStack.Org: “OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a datacenter, all managed through a dashboard that gives administrators control while empowering their users to provision resources through a web interface.”
What is OpenStack?
It is a cloud computing management platform that can be used to setup, control and manage various components of a cloud like the computing nodes, storage, database and networking resources through an administrative dashboard (Horizon). It provides the cloud platform service as an Infrastructure as a Service (IaaS) solution through a set of connected services. Users can provision resources quickly like adding new instances through the dashboard. OpenStack allows for achieving great horizontal scalability and is highly configurable. OpenStack can run on standard hardware but needs an operating system that supports virtualization. It can utilize almost all hypervisors as virtualization host and can run over a mixed hypervisor IT environment. It supports hypervisors like KVM, LXC, QEMU, XEN, VMWARE, etc.
Hypervisors or Virtual Machine Managers (VMM) are software or firmware that makes virtualization possible by allowing sharing of a single hardware platform and resources by virtual systems that operate independently on a single host platform. It allows for creating, running and monitoring virtual machines that are guest operating systems and their applications sharing physical hardware resources through a single host operating system on which the hypervisor runs. There are 2 types of hypervisors:
1. Type 1 or Bare-metal hypervisors: they run on top of the system hardware directly without a host OS. Eg: VMware ESXi, Citrix XenServer, Microsoft Hyper-V, Oracle VM Server for SPARC, Oracle VM Server for x86, etc.
2. Type 2 or hosted hypervisors: run on a host OS that provides virtualization services. They cannot directly access the hardware. Eg: VMWare Workstation, VMware Parallels, Oracle Virtualbox, and Microsoft VirtualPC.
Hypervisors – Image courtesy: Wikipedia.org
Kernel based Virtual Machine (KVM) of Linux are kernel modules that provides a virtualization infrastructure for the Linux Kernel that makes it a hypervisor. For this KVM requires processor with hardware virtualization extensions. Other hypervisor modules are Xen, ESXi, QEMU, etc.
OpenStack cloud platform can be installed and implemented on the following hypervisor supported operating systems at present: Ubuntu (KVM), RHE Linux (KVM), Debian (KVM), Oracle Linux (XEN), Oracle Solaris (Zones), Microsoft Hyper-V and VMware ESXi.
The OpenStack Cloud Platform over a host hypervisor provides the OpenStack shared services needed to run and manage the cloud components – computing, storage and network – to implement private and public clouds. The user applications run over this OpenStack Cloud Platform and user controls the cloud through the OpenStack administrative interface and also through the API provided by OpenStack.
OpenStack Services (Components)
OpenStack architecture is using several component services out of which nine are identified and maintained as key components by the OpenStack community. These components are included in the core of OpenStack and are distributed with the OpenStack system. These components are denoted by its service, the project name and the description of its responsibilities in the system:
1. Nova: the primary Computing Engine. Deploys and manages the virtual machines and adds instances on demand for computing.
2. Horizon: web based Dashboard for users to configure, deploy and manage other services like instance creation, manage resources and networking.
3. Swift: provides an Object Storage and Reading mechanism for files and directories.
4. Cinder: provides Block Storage feature for running instances by which volumes can be allocated and de-allocated from instances.
5. Neutron: facilitates Networking for implementing connectivity between the VMs.
6. Keystone: provides Identity Services for the authentication of OpenStack users and management of their access to various services.
7. Glance: provides Image Service in which images or virtual copies of hard disks are used during the provisioning of new VMs.
8. Ceilometer: provides Telemetry or Billing Service by which usage of various cloud resources including VMs, network usage etc. are monitored and metered for billing and benchmarking.
9. Heat: the Orchestration component of the OpenStack that allow developers and users to store the resource requirements and configuration details for cloud applications in text files also known as HOT Templates (Heat Orchestration Component). These files are used to define and manage the infrastructure needed for the cloud application.
Advantages of OpenStack
OpenStack’s biggest advantage is the technology and global collaboration platform on which the project is implemented. This provides businesses with a solid and dependable service to base their IT infrastructure on. OpenStack is developing and expanding rapidly, adding to its repository more and more features and capabilities. Below is a list of main advantages being offered by the OpenStack Cloud Platform:
1. Automated deployment and management of the cloud.
2. Rapid setup and provisioning of instances and other cloud resources that allows immense horizontal scalability.
3. Centralized management through Horizon and the OpenStack API allows simplicity in implementation and flexibility in configuration.
4. Open source and is globally supported by thousands of community members.
5. Supports deployment of cloud platforms of any size or type from private clouds and public clouds to global cloud solutions spread over continents.
6. Supports a wide variety of host platforms and hypervisors.
7. Provides high availability and cost-effectiveness.