Introduction
With open-source software gaining momentum, customers want software that is free and open-sourced. With enterprise customers looking to reduce operational expenses, the need is to have a solution that is scalable and easy to manage. Most traditional networks have equipment that is expensive to procure, deploy, and operate. Their operational cost is immense as network equipment requires skilled network engineers to manage and troubleshoot, and horizontal scalability needs planning and capital investment.
Most open-source solutions look to reduce the capital and operational investment made by enterprises. However, most solutions are not mature enough to address the operational costs. The primary reason being the skillset required to design and operate an open-source solution is still scarce. Having said that, Open-source is believed to be the path going forward because not only the thrust of major enterprises and telecom operators is behind it, but the solutions have proven their worth in real deployments and have shown intrinsic value.
One such project is OpenStack. OpenStack is a 'cloud operating system' that is free and open-source cloud computing platform. Written in Python, it constitutes of different software components that are developed as separate projects and come together to work as a single cloud operating system designed to manage your cloud. OpenStack is managed by a non-profit entity called the OpenStack Foundation with more than 500 companies' part of it. OpenStack is released under the terms of 'Apache License' and has a release every six months. OpenStack gives the end user the ability to automate and manage its infrastructure. It has become a very popular with private clouds as it gives the user the ability to maintain its own IaaS.
Why OpenStack?
OpenStack, as a cloud operating system, is primarily designed to address the compute needs for a group of users. This is the reason why it is best suited for automating an IT infrastructure that caters to the needs of an organization or a group of users. Linux is a very powerful operating system, and the KVM driver within Linux gives it the ability to virtualize. Linux along with KVM and QEMU is a fully functional type 1 hypervisor. It has the ability to manage your hardware infrastructure, spawn VMs, and automate. Then why do you need OpenStack as an operating system? The answer lies in the definition of OpenStack. It's a 'cloud' operating system and that distinction must be very clear from a regular operating system like Linux.
Linux along with KVM and QEMU gives you a fully functional hypervisor which allows you to create virtual machines. However Linux can do this only for a single server blade that it runs on. If you have multiple server blades and you wish to pool in the memory, CPU and network resources of all servers, a single instance of Linux cannot do that. Even if you run Linux on all servers, you still do not have a way to get the resources of all servers together and manage them as one entity. OpenStack solves this problem. It gives you one holistic view of all the resources at your disposal. It will pool in the hardware resources available and manage them for you as an operating system would. Since OpenStack has the ability to do this for a bunch of resources and you can yank in hardware at will without impacting the functioning (and thus scale seamlessly), it is rightly called a cloud operating system. Enterprise deploying OpenStack on an on-prem data center has the flexibility to move application development to the public cloud infrastructure (increased speed of development by using agile processes and leveraging on-demand resource availability from public cloud infrastructure). In this way, the on-premise data center is used to host the user application that was developed in the cloud (localizing the storage). The total cost of ownership of leveraging cloud reduces significantly using this methodology. The stored user data for the enterprise application is still on an on-premise location for core IT business applications.
OpenStack allows an enterprise customer to:
- Reduces costs on special hypervisor license. OpenStack works fine with commodity off-the-shelf servers and is completely platform agnostic in this regard. This saves a lot of CAPEX for customers.
- Scales horizontally by using commodity hardware.
- Ability to integrate existing infrastructure and use a common management tool.
- Deploys network function virtualization (NFV) elements.
- Supports all forms of virtualizations including OS virtualization techniques like 'containers'.
- Provides tenant isolation aligned to the security segmentation.
- Offers a common platform for application developers to leverage resources in the cloud for rapid application development.