Originally developed in collaboration with NASA, OpenStack is an open source project designed to build customizable cloud environments. Although the idea behind OpenStack is simple, the platform itself is not. In this article, we’re going to talk a little bit about how it works and how it can be beneficial to users who are considering using it.
What exactly is OpenStack?
OpenStack is a complex platform that contains multiple components with different functions all built on open source code. Put together, these components can develop and manage a functioning, scalable cloud. Built with contributions from over 9,000 sources, OpenStack runs on Python code and is available for use under the Apache License. OpenStack can be use to setup public and private clouds. It is even possible to interconnect an OpenStack Cloud with an existing infrastructure that is not virtualized(This would be known as an Hybrid Cloud).
Although you can use OpenStack for free, launching and maintaining it can still cost a significant amount of time and money. There are many different ways to deploy OpenStack, and developing an appropriate solution for your business often requires time, knowledge and human resources, all of which can be expensive in the long run. To get the most benefit from OpenStack for the least amount of investment, many users choose to partner with a company that already knows how to work with OpenStack for their cloud infrastructure. If you don’t have an IT team available to spend time on deploying an OpenStack Cloud, the help of a third party expert can ensure that your OpenStack deployment faces minimal obstacles and functions well from the beginning.
Whether you decide to deploy OpenStack on your own or with the assistance of an OpenStack provider, be sure to take advantage of some of the free resources available online, including informational articles, ebooks and other documentation. For example, OpenStack currently offers a free operations guide composed of insights from operators who have experience with the program. Likewise, OpenStack’s security guide can also be printed or viewed for free.
Overview of Various Components
OpenStack names seven primary components: Compute, Network, Image, Dashboard, Object Store, Identity and Block Storage. There are seven core components available within OpenStack, but they do have more projects in “incubation” phases of development. Here is an overview of the some of those components:
- Compute (code name Nova) – offers virtual servers to meet the demands of the user. Compute is one of the integral components in an OpenStack cloud, and it is compatible with most third-party technologies. Nova includes an abstraction layer for compute drivers, thus allowing you to run Compute with your favorite hypervisor. According to OpenStack, some hypervisors are better supported by the platform than others. Currently, most of OpenStack’s development involves XEN, KVM and vSphere EXSi hypervisors. To learn more about OpenStack’s ability to support the features of other hypervisors, visit the hypervisor feature support matrix.
- Network (code name Neutron – Formely known as Quantum) – offers Network as a service, allowing you to design and build your own network. Different networking models are available, and you can customize the system to meet your needs with additional services such as VPNs, firewalls and more. Setting up the Network component is one of the most complex tasks you will face when deploying an OpenStack cloud. For this reason, it is essential to work closely with your network team and develop a detailed launch plan before beginning the process. It may also be wise to consult with a third-party expert that offers support and assistance to OpenStack users.
- Block Storage (code name Cinder) – provides guest virtual machines with block storage services. This system can leverage many different storage platforms by connecting to them using plug-ins. Please note that while Cinder allows for the use of ephemeral storage, which involves storing data on local drives found within nova’s nodes, it defeats the primary purpose of cloud hosting. For this reason, it is generally preferable to utilize the services of a third-party storage vendor or technology which are designed for High Availability Storage. It is recommended to contact your favorite storage vendor (or you can also go with an open source storage solution such as Ceph)to see if they fully support OpenStack at the moment or see the Storage compatibility matrix.
- Image (code name Glance) – is a component that stores and organizes virtual disk images. Image can also be used to store backups. OpenStack Image can be used with simple file systems, as well as with other components of OpenStack, such as Object Store. Live images can also be transform into template and then be use to launch quick instances using the same content.
- Dashboard (code name Horizon) – provides an interface you can use to assign IP addresses, launch servers and perform other important management tasks. This interface can be branded for commercial use, and new features can be added as needed to customize Dashboard so that it better serves your needs. OpenStack also allows users to change the layout of the Dashboard to improve functionality.
- Object Store (code name Swift) – offers distributed file storage and retrieval. Because storage and processing are distributed, this system is both flexible and reliable. Object Store is highly scalable and can handle significant amounts of data. Object Store also allows instant access to data via many different devices.
- Identity (code name Keystone) – authorizes and authenticates all other OpenStack Services. Identity is compatible with multiple types of authentication, and it maintains a comprehensive directory of all services deployed within the cloud.
Other OpenStack components are available and/or being developed. Telemetry (code name ceilometer) is currently available to collect measurement and data on OpenStack use. An orchestration (code name Heat) component is also available for faster OpenStack deployment. With OpenStack being accepted as a standard in the Public and Private Cloud, new components are plans and deploy with each majors releases.
OpenStack publish and maintain a page were all their project are listed and evaluated in term of maturity. With the development cycle of OpenStack in overdrive, it is crucial to keep an eye on the maturity of each project as it can save you time and money in your IaaS Adventure.
How is it Used?
The various components of OpenStack can be combined to design and manage a public or private cloud. All of the components of OpenStack cloud are customizable, can be integrated with third-party technologies and can be scaled to meet the needs of the user. While some users download OpenStack software and use it to build a cloud on their own, others rely on commercial providers to create and deploy an Open Stack cloud based on provided specifications. OpenStack offers excellent APIs in several different programming languages that can be used to maximize users’ experiences.
Why is it Relevant?
In addition to the benefits provided by any cloud computing service, OpenStack offers several advantages over the competition. First of all, it is free for download, and it supported by several notable vendors, including Red Hat, Canonical(Ubuntu) and many others. Furthermore, because it is an open source project with ongoing contributions, it is always improving and offering new products to users.
Anyone can download and deploy OpenStack and there are various sources around including OpenStack own website, the web that can provide that service. You can use a source code installer to get started with it, or you can opt for a downstream distribution from one of several providers. OpenStack is also available for installation with all major Linux distributions. Keep in mind that the installation/ deployment option you choose will determine how much work you will need to put into the project. If you use OpenStack to build your own private cloud from the ground up with no assistance, in-depth knowledge and experience are a necessity, so make this choice with care.
OpenStack is an ongoing project, so contributors are always developing new features and suggesting changes. Two major releases of OpenStack occur each year. Each time a release occurs, a major summit is organized. Each OpenStack Summit is a five-day conference during which users, administrators and developers discuss the project in detail.
The most recent OpenStack Summit took place in May 2016 and was held in Austin, Texas which was sync with the latest OpenStack release: Codename Mitaka. The next OpenStack Summit is scheduled for November, and preliminary plans indicate that it will take place in Barcelona, Spain. During each summit, visitors are able to participate in several informational workshops and talks that provide them with insights and advice to improve their experiences with OpenStack. You can find videos of the workshops, lectures and other sessions from the most recent OpenStack Summit here.