OpenStack is a scalable open-source cloud operating system that provides a modular cloud infrastructure with the global collaboration of cloud computing technologists and developers. It is a ubiquitous open source cloud computing platform for public and private clouds. OpenStack is comprised of a number of interrelated projects that deliver various components for a cloud infrastructure solution and also controls large pools of storage, compute, and networking resources with the help of a datacenter. It is managed through a dashboard called Horizon that provides administrators control while it empowers the users to provision resources through a web interface.
OpenStack lets you deploy the tools as needed, all from one place. This open-source platform uses pooled virtual resources using which private, and public clouds are built and managed. Here “projects” are the tools that comprise the OpenStack platform. This handles the core cloud-computing services of computing, networking, storage, identity, and image services. OpenStack gives you an opportunity to bundle together a dozen optional projects that are unique and deployable clouds.
Related post – Top 10 Cloud Operating systems
Are OpenStack and Virtualization same?
Virtualization and OpenStack, though, have many similarities. However, they are not the same. In virtualization, resources such as storage, CPU, and RAM are abstracted from a variety of vendor-specific programs, and a hypervisor split them before they are distributed as needed. On the contrary, OpenStack uses a consistent set of application programming interfaces (APIs) that abstract those virtual resources, one step further into discrete pools used to power standard cloud computing tools.
Both the OpenStack and virtualization platforms sit on top of virtualized resources that can report, discover, and automate processes in vendor-disparate environments.
Virtualization platforms make it easier to manipulate the functions and of virtual resources. However, OpenStack makes virtual resources to run a combination of tools. These tools create a cloud environment that meets the five criteria of cloud computing, which are
- a network
- pooled resources
- a user interface
- provisioning capabilities,
- automatic resource control/allocation.
How does OpenStack work?
OpenStack essentially follows a series of commands known as scripts. Those scripts are bundled into packages known as projects. These projects relay tasks to creating cloud environments. Mainly, two types of software are used to create the cloud environment, and those are:
· Virtualization creates a layer of virtual resources abstracted from hardware
· A base operating system (OS) that carries out commands given by OpenStack scripts
It is similar to: OpenStack doesn’t virtualize resources. Instead, they use them to build clouds. Also, it does not execute commands but rather relays them to the base OS. So, in a nutshell, OpenStack, virtualization, and the base OS work together.
The OpenStack components
As mentioned earlier about the projects, OpenStack’s architecture is made up of different open source projects. You can use these projects to create OpenStack’s undercloud and overcloud—used by sysadmins and cloud users, respectively. Sysadmins need to be set up under clouds. Similarly, for managing end users’ OpenStack environment, use overcloud.
OpenStack comprises of six stable core services that handle relatively- compute, networking, storage, identity, and images, while more than a dozen optional ones vary in developmental maturity. Those six core services are the Infrastructure that allows the rest of the projects to handle dashboarding, orchestration, bare-metal provisioning, messaging, containers, and governance.
Here are the different components of OpenStack
Nova is a full management and access tool to OpenStack compute resources—handling scheduling, creation, and deletion.
Neutron– It connects the networks across other OpenStack services.
Swift – It is a highly fault-tolerant object storage service that stores and retrieves unstructured data objects using a RESTful API.
Cinder– It provides persistent block storage accessible through a self-service API.
Keystone – It authenticates and authorizes all OpenStack services. It’s also the endpoint catalog for all services.
Glance – It stores and retrieves virtual machine disk images from a variety of locations.
Horizon – It is the dashboard of OpenStack. It is the graphical interface to OpenStack that users can explore first. System administrators can look at what is going on in the cloud and can manage it as needed.
Keystone– It is used for identity management for OpenStack. It maintains a central list of all of the users of the OpenStack cloud, which are mapped against all of the services provided by the cloud, with permission to use. Multiple access is provided in the keystone using which developers can map their access.
Glance – It is the image service to OpenStack. In this case, “images” refers to images (or virtual copies) of hard disks. Glance allows these images to be used as templates when deploying new virtual machine instances.
Heat – It is the orchestration component of OpenStack, which allows developers to store the requirements of a cloud application in a file that defines what resources are necessary for that application. In this way, it helps to manage the infrastructure needed for a cloud service to run.
Models of OpenStack
Vendors for OpenStack deployment develop different models. Some of them are mentioned below.
- OpenStack as a Service. In this model, the vendor hosts OpenStack management software as a service without the hardware. To get a fully functioning OpenStack private cloud, customers have to sign up for the service and match it with their internal network, storage, and server.
- Openstack based Public Cloud In this model type, the vendor provides OpenStack public cloud computing system depending on an open stack project.
- Openstack based Private Cloud The vendor provides OpenStack-based private cloud, including hardware and OpenStack software in this model.
- On-Premises Distribution In this type of model, the customer downloads and installs OpenStack distribution within the internal network.
- Rule-based Alarm Actions This service can start actions based on rules against event or metric data collected by the ceilometer.
- Appliance based OpenStack A vendor called Nebula sold appliances that could be plugged into a network that generated an OpenStack deployment.
Importance of OpenStack
Openstack is an integral part of the OpenStack cloud platform, and it allows communication between the cloud environment. At the same time, it provides a common standard through API. Through its distributed architecture of you can access the next-generation services. Openstack focuses on both enterprises and service providers.
CONCLUSION
To conclude, with a vibrant ecosystem, OpenStack has multiple advantages. It is open-source and free. Nowadays, OpenStack has become a part of the cloud tool kit. Another advantage is that a large number of people can check the source code. It is being used in many industry sectors, and more are planning to adopt, considering its popularity and ease of use.