Open Source at StackHPC
By default, everything we build at StackHPC is built using open source software. We regularly contribute back to a number of open source software projects. Sometimes this includes integrating with best of breed commercial, off-the-shelf solutions.
OpenInfra Silver Member
Open infrastructure will underpin the next decade of transformation for cloud infrastructure. StackHPC is proud to be a silver member of the Open Infrastructure Foundation.
StackHPC supports and adheres to the four opens. It is core to how StackHPC delivers and manages the systems we work on.
LOKI (Linux OpenStack Kubernetes Infrastructure) is an end-to-end open source infrastructure stack that helps operators identify successful patterns and combinations of technologies to build production infrastructure.
StackHPC has helped build successful patterns for those needing to run HPC, AI and similar research computing use cases
- StackHPC's OpenStack contributions on Stackalytics
Operating OpenStack using Kayobe
A founding principle of StackHPC in rationalising the inherent complexity of OpenStack is OpenStack Kayobe.
Kayobe relies on a simplified implementation of the OpenStack control plane using a containerised method, called Kolla-Ansible. This adds significant value to the automation of Kolla-Ansible and provides the necessary DevOps environment to deliver on-premise cloud capability.
The architecture of Kayobe has been heavily influenced by the HPC, HTC and AI use cases to enhance software-defined infrastructure to encompass modern cloud-native platforms and science workflows. This results in a substantial body of infrastructure-as-code strengthened by CI/CD practice which underpins a StackHPC OpenStack operation and its service offering.
For more information please read more about how StackHPC uses OpenStack Kayobe to bootstrap and maintain OpenStack clouds.
Azimuth: Self-Service LOKI
Azimuth allows OpenStack cloud operators to provide a self-service catalog of common compute platforms to allow HPC and AI practicioners to quickly use your cloud in the most performant way.
Moreover, these reference platforms like Slurm and JupyterHub can be customized to meet your local needs. These reference platforms can also be used standalone outside of Azimuth.
If you would like to know more about what Azimuth can do, please see the Azimuth user documentation.
Azimuth acts as an OpenStack client, similar to the CLI and Horizon. So if you have access to an OpenStack cloud that passes the refstack conformance tests, you can try Azimuth on your own cloud.
Ansible, Packer, Terraform and Helm
Azimuth makes uses of many industry standard tools including Ansible, Packer, Terraform and Helm to help repeatably deploy applications on clouds. This includes packaging up Guacamole, JupyterHub, Kubeflow, repo2docker and more.
In the never ending quest to automate all the things, StackHPC have contributed back to many community Ansible roles and collections. Where there are no existing roles or collections that can meet our specific needs, we create our own. You can see these in both our GitHub org and on Ansible galaxy.
OpenStack and Kubernetes
The Kubernetes ecosystem has great support for running on clouds, including on OpenStack clouds.
StackHPC uses Azimuth and OpenStack Magnum to help our customers deliver Kubernetes as a Service on top OpenStack clouds. We do this through the OpenStack support in Kubernetes Cluster API and Cloud Provider OpenStack.
For more details, please see our helm charts that are used by both Magnum's ClusterAPI driver and Azimuth to create Kubernetes clusters on OpenStack: https://github.com/stackhpc/capi-helm-charts
OpenStack and Ceph
The majority the OpenStack clouds supported by StackHPC make use of Ceph. OpenStack is Ceph's "killer app".
StackHPC uses and helps maintain how Kayobe and Kolla-Ansible integrate Ceph storage with OpenStack.
We are currently helping users transition from using Ceph-Ansible to CephAdm through the use of this Ansible collection: https://galaxy.ansible.com/stackhpc/cephadm
Automating Baremetal using Ironic
StackHPC uses OpenStack Ironic as a way to manage the full lifecylce of physical compute hardware via Ansible automation using open source APIs. We make use of integration with Neutron's networking-generic-switch driver to allow us to control the physical switches.
StackHPC are supporting Cambridge Univeristy running their CSD3 supercomputer on OpenStack. This enables a single pool of hardware to be dynamically shared bettween Slurm and OpenStack hypervisors. Those OpenStack hypervisors also run isolated Slurm clusters that support the secure processing of sensitive data.
And much more on GitHub
The nature of our Open first policy means this page can never be fully up to date. We look forwarding to meeting you in one of the many Open Source communities where we have a presence.
Things that do not (yet) have an upstream home get put into our GitHub organisation.
We look forward to collaborating with you all soon!