Version 7.3 of Bright OpenStack has a lot of great features. One I am most excited about is Cluster on Demand (COD), which lets end users provision entire cluster environments in a Bright OpenStack cloud. Any kind of cluster can be implemented, including HPC, Hadoop, Spark, or even a Bright OpenStack cloud.
What can you do with Cluster on Demand?
COD lets users deploy Bright OpenStack and create a virtualized small version of the same HPC cluster they are working with. You can test on the virtual cluster, knowing the test environment is exactly the same as the production cluster. Users can work on the cluster without access to more expensive bare metal servers, but with a guarantee that it will behave the same way when moved to the real environment. It comes with a full management stack, including monitoring and alerting, in a single pane of glass.
So who would want this capability?
COD is great for developers, since it gives them access to a test environment that lets them see how their app behaves and what it looks like from an admin’s point of view. COD lets you give admins full root access to the cluster so they can play around with it, bang on it, and even try to break it. It behaves just like the real machine they will have to administer later on.
It’s also great for quality assurance, support, and demos, as well as many other exciting use cases, like training environments, research and development, virtualized labs, and even to meet security and compliance needs for storing sensitive data in HPC.
You can also use COD for hybrid HPC configurations where you have the same workload running across physical and virtual environments. You can install a large cluster and keep part of it as Bright OpenStack and designate the other part as bare metal/HPC.
DevOps teams will love the COD feature. They can spin up a cluster to run a job or test out a new idea whenever they want.
We originally developed this capability strictly as an internal tool to spin up clusters for our developers. It really seemed to resonate with customers we talked to about it, so that’s why we’re making it available as a feature of our product. In Bright 7.2 we called it Cluster-as-a-Service (CaaS), and it was mostly aimed at POCs.
In Bright 7.3 we’ve streamlined the tooling. And we integrated it into our existing Cluster on Demand tools, which were already capable of running clusters in AWS. In Version 7.3, we added a command line utility that lets you spin up to either an AWS or OpenStack cloud. For example, a user may want an on-premise cloud under normal circumstances, but may want to spin up in AWS if more resources are needed than are available in their private cloud. Also, they can spin up in AWS and add many more instances than in a private cloud. Conversely, they may want to keep all their sensitive data in a private cloud for compliance reasons. There are also size issues to consider – shipping off to AWS may take far too long. Finally, there are also budget considerations – some users simply can’t afford to build a large private cloud.
In Version 7.3 of COD, we packaged the whole head node as a single image, making it easier to install and deploy. Users can drop the image in an OpenStack cloud and instantly launch head nodes. The image-based deployment model makes the deployment process much easier and faster – deploying the virtual head node to the cluster went from 20 minutes to 3 minutes.
Updating is also easier in Version 7.3. We put up a repository of the head node images and offer a tool that checks to see if there are any new releases; the tool lets private cloud admins pull the latest version of the head node images, and make them available to their users.
Here is a simplified overview of the implementation process:
- OpenStack + Ceph + Heat + python
- User runs script to create clusters
- Script creates Heat stack template
- Template passed to Heat orchestration engine
- Heat creates virtual infrastructure
- Install virtual head node using prebuilt image, run Bright-setup via cloud-init
- Install virtual nodes, PXE boot and provision from head node
- Customize cluster (for example, install Hadoop, Kubernetes, or other)
Where are we going next?
We have a general direction of where we will be going next with COD. One key item is making compute node images available, so they will start a lot faster. This will make it possible to set up the entire cluster in just a few minutes. We are also focusing on making it easier to customize virtual clusters; this means you will be able to duplicate the environment and customize one cluster in one way and another in a different way.
The future is very bright for COD. We have discussed just a few of the possible use cases – we are very excited to see what others our creative customers come up with.
This project has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 711315 Bright Beyond HPC