Problem: Creating clusters is difficult
Researchers want to be able to create clusters or applications which span multiple servers (e.g. see #174 (closed)).
Currently this is not easy to do in Exosphere, and probably involves one or more of the following:
- Manual setup of each server
- Tricky cloud-init
- Provisioning multiple servers and then using them as inventory for something like Ansible
OpenStack has a native orchestration facility called Heat: https://docs.openstack.org/heat/latest/template_guide/hot_spec.html
It is deployed on 64% of production OpenStack clouds (74% and 68% for Government/Defense and Academic/Research respectively). (See OpenStack survey for more - https://www.openstack.org/analytics)
Implementing an orchestration template feature may make it easier to add support for other cloud providers later. There are closely related technologies for the big three public cloud providers:
- AWS: https://aws.amazon.com/cloudformation/
- Google Cloud: https://cloud.google.com/deployment-manager
- Azure: https://docs.microsoft.com/en-us/azure/azure-resource-manager/
Exosphere end-users/researchers could leverage community-curated templates if we had the Heat feature added. An example could be setting up a Galaxy instance, or some other scientific gateway for their own communities.
heat-lib is an example of a curated collection of infrastructure components which can be 're-mixed' and combined into templates:
This repository serves as a library for various infrastructure components and software configurations (SC) written in the form of Openstack Heat templates. The consumer of this library can either leverage the basic building blocks found in this library, both infrastructure and software configurations, or they can follow the framework this library offers in order to develop new components.