Introduction to OpenStack – Open Source IaaS Cloud Platform 101

Started as a collaboration project between Rackspace Hosting and the US Space Agency NASA, OpenStack has swiftly grown into one of the world’s biggest open source technologies delivering a flexible, efficient, scalable and cost-effective OS based on the cutting edge concept, i.e. “The Cloud”.

Work began in 2010 when the concept was still in its early stages, but the team was able to launch its first stable build in just four months, naming it Austin. At that time the main purpose of the initiative was to bring mainstream hardware within the folds of cloud computing. With the passage of time, OpenStack grew as an Infrastructure as a Service (IaaS) and the platform soon incorporated modules that let it control a variety of hardware components including those able to process, store or communicate with other entities.

Basically, OpenStack is a set of tools that support large-scale virtualization and allow for the creation & management of virtual machines through secure, easily accessible GUI.

Owing to the “Open-Source” label, the software was welcomed with open arms by the Linux community, and today OpenStack has been accepted by several companies thanks to its robust features-list:

  • 2011 – 2012: Ubuntu, Debian, SUSE, Red Hat, etc. come in
  • 2013: Oracle joins as a Sponsor, planned for Oracle Solaris
  • 2014: HP Helion Cloud Computing Solutions to be based on OpenStack

The latest & most stable version of OpenStack is the Newton released on 6th October, 2016 while Ocata is still in the pipeline.

Its 2017, and today the adoption of Cloud Computing is in full swing. Not-for-profit organizations, corporations, enterprises and even small startups, all are busy shifting over from private data-centers to the public, private or hybrid cloud infrastructure. The cloud landscape is rapidly changing and it is also true that the cloud technologies are just in their infancy. So there is tremendous amount of room for improvement.

This room for improvement can only be filled by skilled professionals, who are well experienced with these cloud technologies. The job market has seen a steady rise in the demand for these professionals, and this has resulted in a pay rise for this particular field. In the US for instance, the median income for professionals fluent in OpenStack is $120,000 – $140,000 a year!

The OpenStack project isn’t composed of a single, large program that offers all the features one is looking for. Instead, think of it as a platform consisting of several projects or services, all designed in parallel, aimed for specific purposes. Each “project” offers core features, unique to its own applications. As this is an Open Source project, experts from around the world can collaboratively contribute to its development.

Each individual service can then be accessed using its own API and modules be called to accomplish tasks on hand. Take a look at the individual services/projects and their purpose below:

1. The Identity service, code named Keystone:

The main purpose of OpenStack Identity Management is to create & provide management tools for users & their respective services. It acts as a central authentication mechanism for all OpenStack components and integrates itself with several directory services like the Lightweight Directory Access Protocol to facilitate multiple login possibilities.

Just like “Computer Management” and “Group Policy” in Windows’ OS, Keystone allows administrators to configure policies for user groups across systems and implement them with a single click. The entire system is controlled by a well-designed and easy-to-use GUI which makes managing the OpenStack system very straight forward.

2. The Compute service, code named Nova:

The Compute service is a very vital one, controlling the very core fabric of the platform, cloud computing. The service has been written in Python and provides an abstraction layer. This layer then virtualizes resources such as processing power, RAM, storage and network services, along with functions that greatly improve automation & utilization.

Examples of management functions include ones that can launch, suspend, resize, stop and reboot resources using hypervisors. An API, Application Programming Interface can be used to store & manage files programmatically while the image is running.

3. The Image service, code named Glance:

This service provides support for Virtual Machine images, especially system disks that can then be used to launch instances of Virtual Machines. In addition to the services, discovery, registration & activation, the project has functionalities to provide backups & snaps. The images are highly robust and can roll out new servers on the fly.

4. The Dashboard service, code named Horizon:

Horizon is basically a GUI project/service that allows users to interact with other OpenStack services like Nova, Cinder, etc. The entire interface is web-based and is well-versed in the art of effectively controlling & monitoring each service.

5. The Object Storage service, code named Swift:

This storage service is actually redundant, but an excellent choice for scale-out storage. Based on Rackspace Cloud Files, Swift ensures collection & distribution of data across all devices currently in the pool so that the users can make the best use of their hard drive resources. In the event of failure of a component, OpenStack automatically restores content to newer cluster members.

6. The Block Storage service, code named Cinder:

The service has been created to manage block-level storage systems that compute use of instances. The storage system is very much necessary & effective in places where performance constraints have to be strictly maintained, e.g. databases. The Linux server storage is the most common storage that employs Cinder, however other plugins exist as well like NetApp, Ceph and SolidFire. The system has an excellent interface to attach, create and detach devices to & from servers.

7. The Network service, code named Neutron:

Previously called Quantum, Neutron is a Networking Service that has a powerful set of tools, allowing it to control a range of network resources like LANs, dynamic host configuration protocol and IPv6. Users can easily define subnets, networks and routers, allocate IPs and other specifications, after which the entire system comes onboard. Users can assign floating IP addresses that allow users to assign fixed IPs to virtual machines.

8. The Orchestration service, code named Heat:

The entire mission of the OpenStack orchestration program is to create a human & machine accessible project that can efficiently manage the entire lifecycle of all the applications that lie within OpenStack clouds. Heat is the practical implementation for this and implements an engine across several composite cloud apps. The orchestration is based on templates that come in the form of text files, which may be treated as code.

9. The Metering service, code named Ceilometer:

The Ceilometer project is one of the most promising and actively developed project, very well-suited for controlling & monitoring the OpenStack infrastructure. The salient features of this service include:

  • Efficient collection of metering data,
  • Configuring the type of data collected so that operating requirements are met,
  • Collecting data by monitoring notifications from other services,
  • Using the REST API for accessing & inserting data,
  • Producing metering messages,

These were the nine blocks of OpenStack that form the current architecture. In time, more promising elements will also get added to the platform, making it even more resourceful for cloud computing.

If you like to learn more about this popular platform – check out our course on OpenStack here:

Leave a Reply

Your email address will not be published. Required fields are marked *