OpenStack distribution (or distro for short), is typically a product offering, which makes it easy to setup and use OpenStack. While one can download the various pieces of OpenStack cloud management software, and deploy it in their environment, it’s a non-trivial task, on the other hand.
Getting a working OpenStack setup requires deep knowledge of various constituent pieces, configuration options, dependencies and so on. Add to that, the need for additional requirements like support and maintenance, certification, business continuity options and others. This is where OpenStack distribution comes into play.
At a high level, OpenStack distribution consists of the following components:
Key Features of an OpenStack distribution
Quick Time-to-Value in setting up an OpenStack based cloud environment.
- Most of the distributions have some sort of automated installation ‘toolkit’ for OpenStack. For example- Redhat have ‘packstack’, which is based on puppet. Mirantis have ‘fuel’, which is also based on puppet.
- Packaged, Tested and Certified Openstack software
- Support & Maintenance Options
- Bundling of value-adds like non-core OpenStack projects, 3rd party OpenStack plugins, business continuity options.
- For example, Mirantis OpenStack includes non-core OpenStack projects like Sahara for automated deployment of Hadoop cluster, supports High-Availability for OpenStack controller among other value-added features.
You can see a list of OpenStack distribution in the OpenStack marketplace – http://www.openstack.org/marketplace/distros/
Distributions are available from Mirantis, Redhat, Canonical, SuSe, IBM, HP, VMware, Rackspace and many other companies.
There are so many OpenStack distributions available today, that selecting a specific one becomes very difficult. The key differentiation is mostly around the following features:
Supported hypervisors for compute
- Supported 3rd party storage and network plug-ins
Value Adds like – Reference Configuration, High-Availability Options, Disaster Recovery Options, Certification and Training, Logging and Monitoring among others.
Availability of fully functional free version versus paid version.
Choosing a specific distribution is not easy, and needs careful consideration. One recommended approach, is to start with your requirements, and then evaluate the distributions on the basis of your specific functional and non-functional requirements.
Some of the commonly used functional requirements to select a distribution are listed here:
Supported hypervisors – KVM, Xen, VMware, Hyper-V etc.
Storage Options – Ceph, Gluster, GPFS, IBM, EMC etc
Network Options – VLAN, Tunneling (GRE/VXLAN), SDN options etc
High-Availability Options for OpenStack services
Supported OpenStack release versions and upgrade options.
This is not an exhaustive list. In many environments, there could be specific requirements on application provisioning, application monitoring etc. For example – if the primary requirement is to deploy Hadoop workloads via OpenStack, then selecting a distribution, which supports the same will be a good idea. Similarly, if the requirement is to seamlessly integrate with a specific monitoring software for specific applications deployed via OpenStack, then selecting a distribution supporting the specific monitoring software will be a good idea.
Some of the commonly used non-functional requirements to select a distribution are listed here:
Support Options – 24×7, 12×7, location etc
Training and Certification options
Consulting Options and Reference Guides
Scalability limits – like number of supported hypervisor nodes, instances etc.
Once you have zeroed down on possible distributions, it’s very important to do some prototyping before taking the final call. Many OpenStack distributions are free to download and try, and this makes it very easy to evaluate specific distributions as per requirement.