OpenStack Myth-busting. (Part 1)

OpenStack Myth-busting. (Part 1)

OpenStack has had a rocky road to acceptance, and some (I) included would argue that its still thought of as a poor cousin, deployed by few, understood by fewer, and generally not suitable for production.

In this post, I am to bust one of those myths and help people to understand that actually OpenStack is a credible choice for both public and private clouds, especially with the uncertainty brought about by the Broadcom VMWare changes.

OpenStack is hard to deploy.

Lets get one of the big ones out of the way first. In the past OpenStack has had some issues with deployment, that is 100% true. The good news, this is mostly a thing of the past. OpenStack still requires a level of understanding, but the “jank” that existed in the past is mostly gone. If you are able to read YAML, understand how to build an Ansible Inventory file, and can spend 20-25 minutes of your time reading some getting started guides, you would be able to deploy a working OpenStack region.

Is it going to be “Production” ready, possibly not, but the work done by the teams building these tools has meant that a lot of the guess work, and “manual” work required has been removed.

My recommended tools:

kolla-ansible - Kolla Ansible is my current goto tool for deploying OpenStack clouds, it makes use of ansible, provides sensible defaults for OpenStack deployment, meaning that by configuring a single globals.yaml file, and providing an inventory file you can standup an OpenStack environment with minimal fuss. Adding to this the fact that using Ansible inheritance you are able to provide overrides to all OpenStack services, you can very easily provide complex configuration files which are easily configuration managed and maintained. Kolla Ansible, takes care of deploying OpenStack, but does not deploy the hosts that you are going to use for the platform. There is a companion set of tooling called Kayobe which provides baremetal provisioning, and some other interesting features to help manage the lifecycle of both hardware and the OpenStack platform.

openstack-ansible - OpenStack Ansible is similar to kolla-ansible in that it uses Ansible to provide the deployment technology to ensure the state of your OpenStack deployment. Again, if you understand Ansible, and are able to provide an inventory file you will be able to deploy a working OpenStack platform in under an hour. Like Kolla you will still need to provision your hosts to deploy the platform onto.

Other tools:

TripleO - OpenStack on OpenStack, is the tool of choice if you decide to embark on a Red Hat OpenStack journey. TripleO, differs from kolla Ansible and OpenStack Ansible, as it involves deploying an Undercloud, (which also runs OpenStack), which is then used to PXE boot physical machines, before deploying the OpenStack components. This provides a single set of tooling for fully managing the lifecycle of both the hardware, and OpenStack components. I have used older versions of TripleO, and whilst it has made great strides, I personally found that TripleO was much more complicated to setup, understand and deploy, when compared to Kolla Ansible. In past versions, it made use of a mix of HEAT (OpenStack Orchestration), Puppet, and python/bash scripts. This has improved in more recent versions, with some of the Puppet being replaced by Ansible.

Charmed OpenStack - This is the Canonical based deployment of OpenStack, deployed using MAAS for baremetal provisioning, and then using charmed OpenStack to deploy the OpenStack platform. Of the options listed above, unfortunately this is the one deployment methodology which I have had the least experience with. I have used MAAS to deploy baremetal nodes, and to be fair, MAAS does this pretty well. It provides an easy to use GUI, and a fairly accomplished API, it has a couple of rough edges, and its very geared to deploying Ubuntu, it is possible to deploy other OS’s but as MAAS is a Canonical tool it really is designed to deploy Ubuntu.

Conclusion

As you can see there are now multiple, mature and well maintained tools that can be used to deploy OpenStack, both Kolla-Ansible, and OpenStack-Ansible, have been used to deploy multiple production grade OpenStack clouds, both public and private. I have personally deployed public clouds using Kolla-Ansible, and TripleO, and whilst I prefer Kolla-Ansible over TripleO, both provide the means and the tooling to ensure that OpenStack regions can be deployed with limited mess and fuss.

Until next time, Steve.