BACKGROUND IMAGE: iSTOCK/GETTY IMAGES
What OpenStack does
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. But cloud computing goes beyond just virtualization. A public or private cloud also provides a high level of provisioning and lifecycle automation, user self-service, cost reporting and billing, orchestration and other features.
When an organization installs OpenStack software on top of its virtualized environment, this forms a "cloud operating system" that can organize, provision and manage large pools of heterogeneous compute, storage and network resources. While an IT administrator is typically called on to provision and manage resources in a more traditional virtualized environment, OpenStack enables individual users to provision resources through management dashboards and the OpenStack application programming interface (API).
An organization can use OpenStack to deploy and manage cloud-based infrastructure that supports an array of uses cases, including web hosting, big data projects, software as a service (SaaS) delivery, or deploying high volumes of containers.
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 like Amazon Web Services or Microsoft Azure.
The OpenStack cloud platform is not a single thing, but an amalgam of software modules that serve different purposes. OpenStack components are shaped by open source contributions from the developer community, and adopters can implement some or all of these components. Key OpenStack components, by category, include:
- Glance -- a service that discovers, registers and retrieves virtual machine (VM) images;
- Ironic -- a bare-metal provisioning service;
- Magnum -- a container orchestration and provisioning engine;
- Nova -- a service that provides scalable, on-demand and self-service access to compute resources, such as VMs and containers;
- Storlets -- a computable object storage service;
- Zun -- a service that provides an API to launch and manage containers.
- Cinder -- a block storage service;
- Swift -- an object storage service;
- Freezer -- a backup, restore and disaster recovery service;
- Karbor -- an application and data protection service;
- Manila -- a shared file system.
Networking and content delivery
- Designate -- a DNS service for the network;
- Neutron -- a software-defined networking (SDN) service for virtual compute environments;
- Dragonflow -- a distributed control plane implementation of Neutron;
- Kuryr -- a service that connects containers and storage;
- Octavia -- a load balancer;
- Tacker -- an orchestration service for network functions virtualization (NFV);
- Tricircle -- a network automation service for multi-region cloud deployments.
Data and analytics
- Sahara -- a provisioning service for big data projects;
- Searchlight -- a data indexing and search service;
- Trove -- a database as a service (DBaaS).
Security and compliance
- Barbican -- a management service for passwords, encryption keys and X.509 Certificates;
- Congress -- an IT governance service;
- Keystone -- an authentication and multi-tenant authorization service;
- Mistral -- a workflow management and enforcement service.
- Ansible OpenStack-- a service that provides Ansible playbooks for OpenStack;
- Chef OpenStack -- a service that provides Chef cookbooks for OpenStack;
- Kolla -- a service for container deployment;
- Charms -- a service that offers Juju charms for OpenStack;
- Puppet OpenStack -- a service that provides Puppet modules for OpenStack;
- TripleO -- a service to deploy OpenStack in production.
- Horizon -- a management dashboard and web-based user interface for OpenStack services;
- OpenStack Client -- the OpenStack command-line interface (CLI);
- Rally -- an OpenStack benchmark service;
- Senlin -- a clustering service;
- Vitrage -- a root cause analysis (RCA) service for troubleshooting;
- Watcher -- a performance optimization service.
- Heat -- orchestration and autoscaling services;
- Murano -- an application catalog;
- Solum -- a software development tool;
- Zaqar -- a messaging service.
- Aodh -- an alarming service that takes actions based on rules;
- Ceilometer -- a metering and data collection service;
- CloudKitty -- a billing and chargeback service;
- Monasca -- a high-speed metrics monitoring and alerting service;
- Panko -- a service for metadata indexing and event storage to aid auditing and troubleshooting.
OpenStack pros and cons
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. Considering all of its modular components, OpenStack provides a comprehensive and production-ready platform upon which an enterprise can build and operate a private or public cloud. Because of its open source nature, some organizations also see OpenStack as a way to avoid vendor lock-in.
But potential enterprise adopters must also consider some drawbacks. Perhaps the biggest disadvantage of OpenStack is its very size and scope -- such complexity requires an IT staff to have 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.
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 -- other than support from the open source community.
To reduce the complexity of an OpenStack deployment, and get more direct access to technical support, an organization can choose to adopt an OpenStack distribution from a vendor. An OpenStack distribution is a version of the open source platform that is packaged with other components, such as an installation program and management tools, and often comes with technical support options. Common OpenStack distributions include the Red Hat OpenStack platform, the Mirantis Cloud Platform and the Rackspace OpenStack private cloud.
OpenStack has followed an alphabetical naming scheme for its version releases since its initial Austin release in October 2010. The original Austin, Baxar and Cactus releases have since been deprecated, and are no longer available. More recent releases, between 2012 and 2016, include Diablo, Essex, Folsom, Grizzly, Havana, Icehouse, Juno, Kilo, Liberty, Mitaka and Newton, which are all at end-of-life (EOL).
These were followed by the Ocata release in February 2017, and the Pike release in August 2017. Pike added a variety of new features, including support for Python 3.5, a revert-to-snapshot feature in Cinder and support for globally distributed erasure codes in Swift.
The National Aeronautics and Space Administration (NASA) worked with Rackspace, a managed hosting and cloud computing service provider, to develop OpenStack.
OpenStack officially became an independent non-profit organization in September 2012. The OpenStack Foundation, which is overseen by a board of directors, is comprised of many direct and indirect competitors, including IBM, Intel and VMware.