In this blog we often discuss OpenStack, and the different components, and have an OpenStack tutorial or guide at your disposal for many topics – from OpenStack Neutron and networking in general, through NFV, OpenStack orchestration, DevStack, network automation, and much more. However, all of those posts assume that you know a thing or two about OpenStack already. So, in order to be able to provide more context, we decided to take a step back, and answer the most fundamental question for those who are looking to get started with OpenStack and need to make sense of the terminology. What is OpenStack?
Test drive the Cloudify Lab now with a fully enabled OpenStack environment on-demand!
OpenStack – History and Introduction
OpenStack is a cloud operating system that controls large pools of compute, storage, and networking resources throughout a data center. All of the above components are managed through a dashboard which gives administrators control while empowering their users to provision resources through a web interface.
More specifically though, it is a collection of open source software that allows us to perform certain functions on the cloud. OpenStack was a pilot project launched by Rackspace and NASA which was founded in July 2010. The purpose behind the project was to provide open source software that enables any organization to create and offer cloud computing services running on standardized hardware.
Just like as the Linux distribution has multiple flavors that are supported by different foundations like RedHat and SUSE, it is believed that in the near future there is a strong possibility that OpenStack will have distributions, as well by the leading players and contributors to the open source project, including: RedHat, Ubuntu, and more.
Being an open source project, thousands of developers contribute code, written primarily in Python and are available freely under an Apache 2.0 license.
Well, what is cloud computing?
There are many cloud computing offerings today. However, there are certain challenges in the adoption of any particular offering. The cloud offerings available in the market are for the most part, more proprietary and often are not interoperable. It has become cumbersome for customers to move from one cloud to another as it required data alteration or huge migration costs. So, many customers opt to stay with a provider that does not meet their needs, just to avoid tediousness or due to lack of knowledge about other cloud offerings – this concept has been termed “vendor lock-in”.
With this limitation of proprietary cloud services, it was the need of the hour to have open specifications and APIs for cloud offerings. Open Cloud Computing Interface (OCCI) emerged as standard to try and provide a solution for this by defining interoperable, portable and integration standards. OpenStack was launched as an independent implementation of OCCI and offers a flexible and accommodating cloud service. OpenStack has got more momentum considering big names are a part of its project (AT&T, IBM, HP, REDHAT, Cisco, Dell, etc).
The OpenStack cloud operating system turns all the sets of hypervisors within a data centre or across multiple data centers into pools of resources. These pools of resources can be consumed and managed from a single place which is the dashboard of OpenStack. Both the administrators and users can go to its dashboard to perform their tasks in easy and fast manner. One can create virtual machines, configure networks and manage volumes all from a single place.
OpenStack is a control layer that sits above all the virtualized layers and provides a consistent way to access everything regardless of the hypervisor technology used (e.g.: KVM, Xen, VMware, etc.) underneath.
All the tasks from managing networks to handling storage becomes very easy as OpenStack abstracts the underlying layers and allows administrators and users to consume the resources with a consistent set of APIs from a common dashboard. This being an open-source project it is also possible to customize the dashboard.
Thus, we can say that OpenStack is a framework that enables efficient and dynamic management of virtualization, storage and networking of all the resources with great flexibility and ease.
In our next post we will dive into the OpenStack architecture and the different components that make up OpenStack.