What is OpenStack?
OpenStack is a collection of open source software modules and tools that provides a framework to create and manage both public cloud and private cloud infrastructure.
OpenStack delivers infrastructure-as-a-service functionality -- it pools, provisions and manages large concentrations of compute, storage and network resources. These resources, which include bare metal hardware, virtual machines (VMs) and containers, are managed through application programming interfaces (APIs) as well as an OpenStack dashboard. Other OpenStack components provide orchestration, fault management and services intended to support reliable, high availability operations.
Businesses and service providers can deploy OpenStack on premises (in the data center to build a private cloud), in the cloud to enable or drive public cloud platforms, and at the network edge for distributed computing systems.
What does OpenStack do?
To create a cloud computing environment, an organization typically builds off of its existing virtualized infrastructure, using a well-established hypervisor such as VMware vSphere, Microsoft Hyper-V or KVM. However, cloud computing offers more than just virtualization -- a public or private cloud provides extensive provisioning, lifecycle automation, user self-service, cost reporting and billing, orchestration and other features.
Installing OpenStack software on top of a virtualized environment forms a cloud operating system. An organization can use that to organize, provision and manage large pools of heterogeneous compute, storage and network resources. Whereas an IT administrator typically provisions and manages resources in a more traditional virtualized environment, OpenStack enables individual users to provision resources through management dashboards and an API.
This cloud-based infrastructure created through OpenStack supports an array of uses cases, including web hosting, big data projects, software-as-a-service delivery or container deployment.
OpenStack competes most directly with other open source cloud platforms, including Eucalyptus and Apache CloudStack. Some also see it as an alternative to public cloud platforms such as Amazon Web Services or Microsoft Azure, and some smaller public cloud providers use OpenStack as the native cloud platform.
How does OpenStack work?
OpenStack is not an application in the traditional sense, but rather a platform composed of several dozen separate components, called projects, which interoperate with each other through APIs. Each component is complementary, but not all components are required to create a basic cloud. Organizations can install only select components that build the features and functionality in a desired cloud environment.
OpenStack also relies on two additional foundation technologies: a base operating system, such as Linux, and a virtualization platform, such as VMware or Citrix. The OS handles the commands and data exchanged from OpenStack, while the virtualization engine manages the virtualized hardware resources used by OpenStack projects.
Once the OS, virtualization platform and OpenStack components are deployed and configured properly, administrators can provision and manage the instanced resources that applications require. Actions and requests made through a dashboard produce a series of API calls, which are authenticated through a security service and delivered to the destination component, which executes the associated tasks.
As a simple example, an administrator logs into OpenStack and manages the cloud environment through a dashboard. Administrators can create and connect new compute instances and storage instances, and configure network behaviors. Additionally, an administrator might connect various other services, such as to monitor the performance of a provisioned instance and employ resource billing and chargeback.
The OpenStack platform's vast scope and sheer number of interrelated components can be confusing, and even daunting. Most OpenStack adopters start with a small number of essential components and gradually deploy other components over time to build out their cloud's operational and business capabilities.
What are the different OpenStack components?
The OpenStack cloud platform is an amalgam of software components. These components are shaped by open source contributions from the developer community, and OpenStack adopters can choose to implement some or all of these components as business needs dictate.
The following map shows all OpenStack components, as of April 2021.
OpenStack setups vary, but typically start with a handful of central components: compute (Nova), VM images (Glance), networking (Neutron), storage (Cinder or Swift), identity management (Keystone) and resource management (Placement).
What are the pros and cons of OpenStack?
Many enterprises that deploy and maintain an OpenStack infrastructure enjoy several advantages, including that it is:
- Affordable. OpenStack is available freely as open source software released under the Apache 2.0 license. This means there is no upfront cost to acquire and use OpenStack.
- Reliable. With almost a decade of development and use, OpenStack provides a comprehensive and proven production-ready modular platform upon which an enterprise can build and operate a private or public cloud. Its rich set of capabilities includes scalable storage, good performance and high data security, and it enjoys broad acceptance across industries.
- Vendor-neutral. Because of OpenStack's open source nature, some organizations also see it as a way to avoid vendor lock-in, as an overall platform as well as its individual component functions.
But potential adopters must also consider some drawbacks, such as the following:
- Complexity. Because of its size and scope, OpenStack requires an IT staff with significant knowledge to deploy the platform and make it work. In some cases, an organization might require additional staff or a consulting firm to deploy OpenStack, which adds time and cost.
- Support. As open source software, OpenStack is not owned or directed by any one vendor or team. This can make it difficult to obtain support for the technology, beyond the open source community.
- Consistency. The OpenStack component suite is always in flux as new components are added and others are deprecated.
To reduce the complexity of an OpenStack deployment, and to gain direct access to technical support, an organization can select an OpenStack distribution from a vendor. This is a version of the open source platform packaged with other components, such as an installation program and management tools. It often comes with technical support options.
An organization has many OpenStack distributions to choose from, including the Red Hat OpenStack platform, the Mirantis Cloud Platform and the Rackspace OpenStack private cloud.
OpenStack vs. other cloud platforms
Even simple clouds are complex and require extensive automation, orchestration and management to operate. This means there are few direct alternatives to OpenStack that are practical and proven. However, there are some options that can help organizations combine the benefits of cloud and on-premises capabilities to simplify or speed an enterprise's adoption of next-generation technology.
Organizations with small, dynamic container-based environments may balk at OpenStack's embrace of traditional VMs. They may instead opt for a pure container-based approach using a platform such as Kubernetes.
Hybrid cloud stacks
The three major public cloud providers all provide managed offerings for on-premises clouds, with a strong emphasis on hybrid cloud adoption. AWS Outposts, Azure Stack and Google Anthos all offer appliances that sit within a local data center to facilitate a range of services that mimic the providers' public services and capabilities.
Given the vast enterprise investments in virtualization technology, it's natural to consider building a private cloud based on VMware's vCloud Suite. VMware has partnerships with cloud providers, notably AWS, to support such hybrid cloud projects. However, VMware software is proprietary and requires licensing, and it may offer fewer capabilities and less flexibility than an open source platform such as OpenStack.
Public clouds only
Plenty of organizations decide that the breadth and reliability of public cloud services fulfill their requirements, thereby avoiding the need to invest financially and intellectually in a private cloud infrastructure.
How to get started with OpenStack
OpenStack adoption is a process, not an event. There are potentially dozens of components to understand, install and employ. Organizations that seek to build a private cloud based on OpenStack need time, financial investment and support from upper management.
Testing. OpenStack adoption typically starts with a technology evaluation -- a test drive to see what an OpenStack setup looks like and how it operates. The OpenStack Public Cloud Passport offers trial programs from various OpenStack public cloud providers. Organizations that prefer to install and run OpenStack locally for a hands-on examination can use the DevStack distribution, which focuses on the dashboard and OpenStack administration/user interactions and can be installed on a single computer.
Preparation. Once an organization chooses to adopt OpenStack, it must prepare to address the following three elements:
- Education. Learn more about OpenStack components, how they operate and how they're used.
- Support. Identify and engage with OpenStack support services, from simply finding online communities to identifying competent OpenStack employees and third-party contractors.
- Infrastructure. Identify the hardware infrastructure to initially deploy OpenStack, which may require procurement and installation.
Deployment. Organizations should consider starting with limited, proof-of-concept OpenStack projects. As an example, the OpenStack Compute Starter Kit focuses on just five components: Nova (compute), Glance (VM images), Keystone (identity management), Neutron (networking) and Placement (resource usage and tracking).
Expansion. As an organization gains expertise in the OpenStack environment, it may want to expand its OpenStack deployment through additional components. It is highly unlikely that every business use case will need every available component, so organizations can select components, such as monitoring or billing, that fit specific business goals.
OpenStack versions are released in the spring and fall of each year. These releases follow an alphabetical naming scheme, starting with the initial Austin release in 2010.
OpenStack releases 2010-2019
The original OpenStack releases -- Austin, Bexar and Cactus -- are no longer available. Releases between 2012 and 2016 are all at end-of-life status as of late 2021: Diablo, Essex, Folsom, Grizzly, Havana, Icehouse, Juno, Kilo, Liberty, Mitaka and Newton.
OpenStack releases from 2017-2019 are now in what's called extended maintenance status: Ocata, Pike, Queens, Rocky, Stein and Train.
OpenStack releases 2020-2021
OpenStack releases in 2020, Ussuri and Victoria, are actively maintained and supported by the community.
The Wallaby OpenStack release arrived in April 2021. Notable improvements in Wallaby focused on role-based access control and integration with other open source projects, including Ceph (distributed storage), Kubernetes (container orchestration) and Prometheus (monitoring and alerts).
Future OpenStack releases
The Xena version of OpenStack has an anticipated release in October 2021. The Yoga release is expected in March 2022.
OpenStack was originally developed through a partnership between the U.S. National Aeronautics and Space Administration and Rackspace, a managed hosting and cloud computing service provider. In September 2012, the OpenStack Foundation was created as an independent nonprofit organization to oversee the OpenStack platform and community, governed by a board of directors comprised of many direct and indirect competitors, including IBM, Intel and VMware.
In October 2020, the OpenStack Foundation was relaunched as the Open Infrastructure Foundation (OpenInfra) with a mission to more broadly support other open source infrastructure communities and foster continued development around public, private and hybrid clouds. Various OpenInfra projects involve artificial intelligence and machine learning, CI/CD software development paradigms, container infrastructure and edge computing.
OpenStack platform providers
While comprehensive and capable, an OpenStack platform is difficult to deploy from scratch. The OpenStack market provides a variety of alternatives, including the following:
Distributions. Organizations can choose prepackaged software offerings that include or support OpenStack. Examples include VMware Integrated OpenStack, Debian, SUSE OpenStack Cloud and Red Hat OpenStack Platform.
Appliances. These combine OpenStack software with vendors' selected hardware to accelerate deployment. Examples include IBM Spectrum Scale with OpenStack Swift, and the Dell EMC Ready Architecture for Red Hat OpenStack Platform.
Managed private cloud. Third-party organizations can support and help with local OpenStack deployment and operation. Examples include IBM Bluemix Private Cloud Local, Rackspace OpenStack Private Cloud and Tencent Cloud TStack.
Hosted private cloud. Some organizations cannot deploy and manage a private cloud on-site, and instead rely on third-party providers to handle the hardware and management of OpenStack-based private clouds. Examples include IBM Bluemix Private Cloud, Canonical's Managed OpenStack and Rackspace OpenStack Private Cloud.
Public cloud. Various public cloud providers offer services based on OpenStack technology, such as Rackspace Public Cloud, Vexxhost Public Cloud and Elastx OpenStack.