Introduction to OpenStack
It is a free open standard cloud computing platform that first came into existence on July 21′ 2010. It was a joint project of Rackspace Hosting and NASA to make cloud computing more ubiquitous in nature. It is deployed as Infrastructure-as-a-service(IaaS) in both public and private clouds where virtual resources are made available to the users. The software platform contains interrelated components that control multi-vendor hardware pools of processing, storage, networking resources through a data center.
In OpenStack, the tools which are used to build this platform are referred to as “projects”. These projects handle a large number of services including computing, networking, and storage services. Unlike virtualization, in which resources such as RAM, CPU, etc are abstracted from the hardware using hypervisors, OpenStack uses a number of APIs to abstract those resources so that users and the administrators are able to directly interact with the cloud services.
Apart from various projects which constitute the OpenStack platform, there are nine major services namely Nova, Neutron, Swift, Cinder, Keystone, Horizon, Ceilometer, and Heat. Here is the basic definition of all the components which will give us a basic idea about these components.
- Nova (compute service): It manages the compute resources like creating, deleting, and handling the scheduling. It can be seen as a program dedicated to the automation of resources that are responsible for the virtualization of services and high-performance computing.
- Neutron (networking service): It is responsible for connecting all the networks across OpenStack. It is an API driven service that manages all networks and IP addresses.
- Swift (object storage): It is an object storage service with high fault tolerance capabilities and it used to retrieve unstructured data objects with the help of Restful API. Being a distributed platform, it is also used to provide redundant storage within servers that are clustered together. It is able to successfully manage petabytes of data.
- Cinder (block storage): It is responsible for providing persistent block storage that is made accessible using an API (self- service). Consequently, it allows users to define and manage the amount of cloud storage required.
- Keystone (identity service provider): It is responsible for all types of authentications and authorizations in the OpenStack services. It is a directory-based service that uses a central repository to map the correct services with the correct user.
- Glance (image service provider): It is responsible for registering, storing, and retrieving virtual disk images from the complete network. These images are stored in a wide range of back-end systems.
- Horizon (dashboard): It is responsible for providing a web-based interface for OpenStack services. It is used to manage, provision, and monitor cloud resources.
- Ceilometer (telemetry): It is responsible for metering and billing of services used. Also, it is used to generate alarms when a certain threshold is exceeded.
- Heat (orchestration): It is used for on-demand service provisioning with auto-scaling of cloud resources. It works in coordination with the ceilometer.
These are the services around which this platform revolves around. These services individually handle storage, compute, networking, identity, etc. These services are the base on which the rest of the projects rely on and are able to orchestrate services, allow bare-metal provisioning, handle dashboards, etc.
Advantages of using OpenStack
- It boosts rapid provisioning of resources due to which orchestration and scaling up and down of resources becomes easy.
- Deployment of applications using OpenStack does not consume a large amount of time.
- Since resources are scalable therefore they are used more wisely and efficiently.
- The regulatory compliances associated with its usage are manageable.
Disadvantages of using OpenStack
- OpenStack is not very robust when orchestration is considered.
- Even today, the APIs provided and supported by OpenStack are not compatible with many of the hybrid cloud providers, thus integrating solutions becomes difficult.
- Like all cloud service providers OpenStack services also come with the risk of security breaches.