What is OpenStack?
OpenStack is a platform for open-source Cloud Computing. It is deployed as a service solution that consists of integrated projects. It helps control a data center with the help of a web-based dashboard or command-line tools.
Came into existence in the year 2010 as a joint project with NASA, OpenStack now is a non-profitable entity. More than 300 companies have joined the OpenStack project till date. The primary goal of this community is to provide cloud-based OpenStack services for standard hardware requirements.
Go through this insightful short video from Intellipaat on OpenStack:
Components of OpenStack
OpenStack is built of many components that help in its smooth functioning within the cloud environment. Major components of OpenStack are discussed below:
- Compute (Nova): Compute is a Cloud Computing controller designed to manage resources in virtualized environments. It takes requests from end users and manages virtualization through APIs or dashboards to form virtual instances. This can also be used to manage high-performance bare metal configurations. Available options for hypervisor technology are Xen, KVM, and VMware. This is coded in Python and uses many pre-designed libraries. SQLAlchemy is used for database access. Compute’s architecture is designed to scale horizontally on standard hardware with no proprietary hardware or software requirements and provide the ability to integrate with legacy systems and third-party technologies.
- Object Storage (Swift): This is a mountable redundancy storage system. It helps in data replication throughout a data center. Files and objects are copied to multiple storage units with the help of this component. Storage clusters are scaled horizontally with every addition of servers. OpenStack object storage component helps replicate content from all active nodes and store them into newly available clusters, ensuring no loss of data in the case of hard drive or server failure. This is an inexpensive method of data replication as it uses software mode to carry out distribution and replication operations. Reliability is an important factor when it comes to data loss in the case of data center operations.
- Block Storage (Cinder): Block storage component provides persistent-level storage solutions for using cloud-oriented computing devices. This component manages to add, remove, and create new block devices in a server. These provide full integration services with OpenStack to help in minimizing the use of hardware resources. This service can be managed by users within the dashboard using a web-based or command-line interface. Linux-based storage platforms can use CloudByte, EMC, Coraid, SAN Storage, etc. Raw block-level storage can also be integrated but are limited to a few providers like HP and IBM. Block storage is highly sensitive in nature and is appropriate to handle performance-based scenarios.
- Networking (neutron): Neutron is an OpenStack networking component that helps in managing all kinds of network-related queries. Starting from IP address management to routing techniques, everything is integrated into this component. This component is the key tool to ensure that there are no network-limited issues. This component provides pre-designed network solutions for all kinds of applications and user-group management, and hence it becomes a reliable solution to manage networks with ease.
Looking for career growth? Visit Intellipaat’s OpenStack Interview Questions and Answers and be ready for facing interviewers!
Other OpenStack Components and Their Functions
Horizon: It is a dashboard for administrators and end users for accessing the backend services.
Glance: It is a repository of images and maintains a catalog of images.
Get 100% Hike!
Master Most in Demand Skills Now !
Keystone: It is used for managing services, like authorization, authentication, and checking other credentials.
OpenStack is a 100 percent Python-based cloud environment with pre-designed and existing Python libraries. The use of MySQL is also integrated with this. OpenStack is a great tool to manage an entire data center environment.