ThreeFold Grid Workloads
Introduction
Hosting on the ThreeFold Grid in a reliable way is possible, but it requires the sysadmin hosting the workloads to have a good skill set to achieve satisfactory results. For more information on this type of deployment, have a look at this forum post.
There are also amazing use cases for the ThreeFold Grid which do not require high reliability in the form of uptime.
While there is already some documentation covering different types of redundant deployments on the ThreeFold Manual, there is so much we can do on the ThrereFold Grid. Let’s discuss some of those possibilities.
Current Possibilities
For now, you can consult different guides on the manual to get redundant and availability for network, storage and compute (apps). This documentation can provide a starting point for your high availability (HA) explorations.
Manual Content
- Terraform/OpenTofu
- Multiple gateways deployment offering network redundancy
- Kubernetes deployments offering app redundancy
Continuous Integration & Testing
You can use GitHub and Gitea runners to run your integration.
Using Infrastructure as Code (IaC)
You can use Terraform and Pulumi to set highly reliable deployments on the grid. For example, you can deploy a Kubernetes cluster of 3-master nodes and 5-worker nodes.
Terraform and Pulumi are amazing tools to deploy test cases, and simulate larger environments.
Development Machines
Using the grid, you can set up VSCode and AI tools to develop efficiently on the grid. This kind of setup allows many people to connect to the same VM.
HA for Apps and Storage
There are many ways to set up highly available (HA) workloads on the grid.
Let’s go over some of those possibilities.
GlusterFS
GlusterFS is an open-source distributed file system that aggregates storage resources from multiple servers into a single global namespace, enabling high availability and redundancy. It operates by creating a cluster of storage nodes, where data can be distributed across multiple devices using various volume types, such as replica, stripe, or disperse.
We already cover basic use of GlusterFS on the Manual as explained in the section above. A lot more is possible in terms of using GlusterFS on the grid. Let us know how it goes if you decide to explore this route!
Kubernetes
Currently, the Dashboard supports 1-master and many workers deployments with Kubernetes. That being said, it is possible to set up deployments with many masters and many workers using Kubernetes. This ensures high availability on the grid.
This type of Kubernetes deployment can be explored with tools such as Terraform/OpenTofu, Pulumi and Nomad. Coupled with scalable network filesystem like GlusterFS, this type of deployment allows for redundancy in both storage and app.
Nomad Solution
Nomad is a highly available, distributed, and resilient workload orchestrator developed by HashiCorp. It is designed to manage parallel processing applications, whether they are containerized or running on virtual machines, and can be used for deploying and managing both stateless and stateful applications.
The Manual already covers how to deploy a Nomad cluster.
Using Nomad, users on the grid can deploy redundant app workloads. For example, you can have a 3-server nodes and 3-client nodes deployment using Nomad.
Coupled with scalable network filesystem like GlusterFS, this type of deployment allows for redundancy in both storage and app.
Conclusion
There are already many ways to get redundant deployments on the grid and we invite the community to explore such possibilties.
The manual already provides relevant information to get started and it will be our pleasure to enhance the manual as community members explore the possibilities and share their experience on the forum.