When the 2016 OpenStack User Survey revealed that while OpenStack adoption was steadily increasing deployment was still a pain point, the call for further improvement was acknowledged.
Using OpenStack’s Kolla-Ansible we took on the challenge of establishing a method for deploying a fully mature cloud platform within an hour. Leveraging OpenStack Kolla’s production-ready Docker containers and support for complete customization of configurations, a deployment guide—suitable for novice users–was created.
Separate from the upstream Kolla-Ansible guide, this step-by-step document uses bash and Python scripts, as well as Ansible playbooks, to make the deployment of an OpenStack cloud fast and simple. The guide is broken down into two parts:
- Provisioning bare metal: This section describes how to provision your own bare metal server using the open source tool, Cobbler.
- Deploying OpenStack:
- Creating Docker Registry: The best way to create a docker registry on your deployment host.
- Configuring OpenStack services: How to prepare your deployment host for Kolla-Ansible, and deploying OpenStack with all core projects using Kolla-Ansible.
- Validating your deployment: Running a bash script using which you can test and validate your deployment.
To test our solution, the DevOps team followed the guide to provision 100 bare-metal servers, deploy OpenStack, then validate the deployment. The time taken for deployment by these experienced users was just under 30 minutes. However, the real test would be finding out how easy it would be for enthusiasts, with no prior deployment experience, to get up and running using the guide.
Developers who were novices to the task of deploying OpenStack were asked to use the guide and deploy a 22-node OpenStack cloud offering compute, networking and object storage services. Some 21 developers participated in deployments over the span of four weeks. Each participant was asked to record their time taken for each of the three phases of deployment and provide feedback related to the guides usability and accuracy.
The following visualizations show the average time it took developers to deploy a multi-node OpenStack cloud:
Using the feedback from each installation run, the guide was continuously updated and the time taken in provisioning, preparation, and deployment phases was consistently decreasing. All 21 of the novice installs took less than 60 minutes, however, the final iteration averaged just 38 minutes.
The detailed ease-of-use guide can be obtained here.