OpenStack is an open-source platform, which offers powerful virtual servers and required services for cloud computing. It is mostly deployed as Infrastructure-as-a-service (IaaS), which aims to provide hardware tools and components for processing, storage, and networking resources throughout a data center.
OpenStack can be understood as a software platform that uses pooled virtual resources to build and manage clouds, both public and private ones.
By default, OpenStack offers a couple of cloud-related services like networking, storage, image services, identity, etc., and can be clubbed with a few more to get a customized cloud optimization to support the cloud-native apps.
In this module, we will learn completely about the basic needs and necessities of OpenStack along with the tutorial to install and get started with OpenStack.
First of all, let's address the elephant in the room.
Why should we adopt OpenStack? How does it fit our requirements?
Here are a few reasons which answer our questions!
Well, most of us are unknowingly the users of OpenStack. Many cloud platforms have integrated OpenStack in their cloud toolkit by default. The OpenStack backend is ever-growing with many companies joining in every day
[Related Article: OpenStack Networking]
The important terminologies that are repeatedly used in the rest of the module are discussed below in brief. These terminologies are important components of OpenStack architecture.
By default, OpenStack has many different moving parts. Besides, because of the open-source nature of the OpenStack, many developers can contribute to the addition of new components for the personalized application. But to clarify, the OpenStack community has declared around 9 components to be an integral part of OpenStack. They are:
OpenStack, being an open-source engine, there are many ways in which you gain a trial experience using OpenStack. Two main ways through which you can experience the OpenStack environment easily are given below:
Try the OpenStack Public cloud infrastructure available across the world by participating in public cloud programs from OpenStack. Use the following link to have a glimpse of OpenStack Public Cloud Passport Program. https://www.openstack.org/passport/
OpenStack can be explored on the Local Dev with the help of DevStack. Devstack intends to provide tools for installation of the core Openstack. Devstack can be installed and run on the virtual machine, besides on the normal OS. This is suited well for the users, who are willing to explore the features of the dashboard of what admin cloud stack looks like. You can get more information On DevStack here: http://devstack.org
You can install Devstack through the Git Source here: https://github.com/openstack/devstack
[Related Article: OpenStack Authentication]
The basic components that make up the architecture of OpenStack are:
The above picture dissects the computer and the explanation of the picture is given below.
This is responsible for establishing a neuron structure between the components for better connectivity. It manages all the networking-related functionalities of the architecture as a whole. Starting from assigning and managing the IP addresses of the nodes to managing and implementing routing, it constitutes all.
The instances of the virtual machines or the disk image are stored as images in the image storage Glance.
Object Storage (Swift)
This is the mountable storage unit of the architecture. It helps in data replication across the data center. The files and objects can be copied to multiple units with the help of this unit. The object storage units are replicated with every new server addition. It also stores the replicate content from all the active nodes and makes it available to the new clusters, ensuring a backup in case of any hardware failure or server loss.
Block Storage (Cinder)
Block Storage provides persistent level storage facilities for cloud-oriented computing devices. It helps in the creation, addition, and removal of the new block devices in the server. It provides complete integration with the OpenStack, reducing the use of extraneous hardware components. It can be accessed and instructed using CLI or web-based services. Linux-based systems can go with Cloudbyte, EMC, Coraid, SAN Storage, etc.
[ Related Article: Monitoring MySQL with Hyperic]
Understanding the logical architecture, besides the basic structural architecture, is essential to design, deploy and configure OpenStack.
OpenStack is made of all distinct Services. Each of these services is internally configured to have one API service. Each API service is always looking for API requests and these requests when obtained are preprocessed and passed on to the other parts of the service.
The diagram below has shown a pictorial representation of the Logical Architecture in OpenStack.
Image Source: OpenStack.org
[Related Article: Creating a sandbox Network server for Neutron with VirtualBox]
For an end user, the advantage of using OpenStack lies in the following points
Owing to all these advantages of OpenStack, which count in the longer run, many companies have adopted it and have integrated into their back-end infrastructure. Some of the companies to mention are, AT&T, Ericsson, Huawei, and Intel.
[Related Article: Configuring Ubuntu Cloud ]
[Related Article: Managing swift cluster capacity ]
Below are the components required for the example architecture considered.
The controller node mainly runs the following functionalities:
Controller node requires a minimum of two network interfaces.
Below picture depicts the hardware requirements for the example architecture.
Image Source: OpenStack.org
Compute node basically runs the hypervisor portion. By default, it uses the KVM hypervisor. It also runs the Networking service agent that connects the instances to the virtual networks and also provides security through firewalling via security groups.
More than one compute node can be deployed. A minimum of 2 network interfaces is required for each Compute Node.
There are 2 options available for networking. You can choose either of them. They are:
The features of Provider Networking are submitted below:
This networking method lacks support for the private networks, layer-3 (routing) services, and advanced services such as LBaaS and FWaaS. Consider going for the next option, if you are considering the options said.
Picture Source: OpenStack.org
This method of networking just augments the Provider Networking with the layer-3 routing services, which enable the self-service networks (private networks). They basically use overlay segmentation methods such as VXLAN to include the services for private networks. It routes the virtual network to the physical network using NAT. It also draws a foundation for advanced services like LBaaS and FWaaS.
Image Source: Opensatck.org
The following are the requirements to make a proof of concept model for the OpenStack deployment with core services and CirrOS instances.
Many beginners go for building each host as a Virtual Machine, for initial testing and trial sessions, mainly for two reasons:
Note: If you are going for VMs, make sure that the hypervisor provides a way to disable the MAC address filtering on the interface of the provider network.
While installing the OpenStack capabilities onto your system, it is important to configure for security during the process, so that all the computation on the cloud will be handled securely, later. There are many security options available for the user, like:
So, this is quite a common question, as many will not be able to find out the version of the OpenStack they are using. Here is a quick workaround for that:
Similarly, you can query to get the versions of other components of your OpenStack too.
nova-manage --version cinder-manage --version glance-manage –version
Openstack is known as a platform to provide the cloud computing services. Amazon Web Services (AWS) is also known as a reliable and scalable platform for inexpensive cloud computing services. Both of these platforms are widely used by many shark-companies for the backend configuration. Considering the large-scale implementation, it is important for us to know, which of the two solutions fit our need the best, before deciding to adopt one. The distinct differences of the two are given below. Go through each, to bank on one for the deployment.
Topic of comparison
Whatever OS cloud admins host on the OpenStack.
Glance manages images.
Admins upload the images and generate a catalog for the users. However, users can upload their own images too.
AMIs provided by AWS marketplace
AMI(Amazon Machine Image) manages the images. An online marketplace with predefined images is offered. However, the users can upload their own images too.
Load Balance VM traffic
Automatically an IP address will be assigned to every virtual instance. It is managed by DHCP.
A floating IP is a public IP and you can dynamically add it to a running virtual instance.
The OpenStack LBaaS manages the load balance traffic.
AWS allocates every new instance, a private IP address using DHCP.
The Public IP is auto mapped to private IP address by AWS.
The Elastic Load Balance automatically distributes the incoming traffic from the services to the EC2 instances.
Managed by Keystone
Managed by IAM Identity and Access Management
Managed by Swift
Managed by Cinder
Managed by S3 bucket – Simple Storage Service
Managed by EBS - Elastic Block Storage
Uses MySQL, PostgreSQL
Uses Cassandra, Couchbase or MongoDB
Users use an instance of MySQL or Oracle 11g
Uses Amazon SimpleDB
Big data and Parallel Processing
OpenStack is one of the best cloud computing environments in the market. The databases of many top-notch companies have integrated the OpenStack in their back-end. The ease of linear scalability and open-source nature has attracted many customers and technology enthusiasts to come forward and contribute to the development. This has made the OpenStack, only better with the years. Seeing all the advantages and endless scalable features, OpenStack can be considered for cloud computation as it proves to be an affordable solution for the longer run
Ravindra Savaram is a Content Lead at Mindmajix.com. His passion lies in writing articles on the most popular IT platforms including Machine learning, DevOps, Data Science, Artificial Intelligence, RPA, Deep Learning, and so on. You can stay up to date on all these technologies by following him on LinkedIn and Twitter.