Create a premium, managed marketplace for users where they can easily deploy and manage for their average technical needs.
TL;DR
A user can sign up with username/password or with OAuth
A user can choose to pay in USD/ETH/BTC
user can choose to see costs in the currency of their choice
A user can create a "Project"
can have a GW added to it
all deployments within the project will share a "private nw" (over wireguard but abstracted from the user)
Within the project, a user can deploy their choice of solutions
VMs
Kubernetes Clusters
Other solutions (TBD)
Networking:
A user can get a public IP for their project
a lightweight VM will be deployed on their behalf that can then work as a portforwarder for the project
User can easily configure which ports goes to which VM internally.
This VM can also run traefik instead and then work as a GW (depending on the user choices)
Or without public IP the user can always use our webgateways to gateway his private workload
Discussion Points
Storage
Two solutions are suggested:
Continuous backing up:
Disks can be backed up in realtime, running some backup cron tasks on disks to store them on different locations (over S3), need to be researched.
some questions:
What are available backup protocols, rsync, etc… ?
network overhead?
Since we are backing the entire disk file, we need to investigate the behavior for very large files.
Quantum Safe BLOCK Device
The better solution (but requires more work) is introducing something like “quantum safe BLOCK device” (not filesystem) so VM disks can also be erasure encoded over multiple locations. This means if the node is gone, the vm can be respawned on a different node as soon as possible over the same block device. (we estimate it to be around 4 week's work)
This is by itself a good stand alone solution since people can create a redundant block device on the grid and just use it from their personal computers and put any filesystem they desire on it (say btrfs) and use it as a vault for their files.
Initial specs here
Monitoring
there are 2 levels of monitoring that we need to consider
Infrastructure
The monitoring of zos nodes, disks, etc ..
the monitoring of our own running services (portal, database, etc…)
This should cover that if a node is down that we know what workloads are affected (and then do what?)
User solutions
ZOS needs to make sure that VMs are running, and for some solutions we can also pull (internally) a health endpoint to make sure the service is UP. This requires changes to ZOS to enable health checks for VMs (this also require that we tell it where to push the health status)
Deployment Strategy
Helm Charts provide a lot of self-healing out of the box, so this is the preferred way to go
General Questions
Are we restricting the farms to run on? At least some basic standards
Should the user pre-pay? or as they go? bearing in mind the fluctuations of the TFT price vs USD
Perhaps we can have a vault that funds the deployments and charges the user for their costs
Project Phase 1
for phase 1, we should aitm to have
the marketplace created
in Vue3
has administrative dashboard
has operations dashboard
Sleek UI to abstract anything the user can do without
swipe integration
have a clean, professional UI
Be able to deploy a specific set of VMs
Have a monitoring/response plan in place
User Journeys
Sign up
sign up with email/password
OAuth (Google, Github, Facebook?)
Create Project
give a name
add gw
(Future) can have a feature to put a maximum limit on cost or other limitations
Project Overview
all deployments within this project share a private network over wireguard by default
add gw
list all deployments with uptime and link to console
Create Deployment
Should be super easy. we have a set of well tested images with our monitoring and the user can choose one
give it a name
toggle public ip
choose to add sshkey
can optionally configure GW if one exists
Choose size (perhaps we can have minimal, standard and enterprise?)
Choose location? Depends if we'll be deploying on the entire grid or certain farms
Dynamically see cost of every choice
"checkout"
Payment
User can choose to pay through FIAT (Swipe) or BTC
Objective
Create a premium, managed marketplace for users where they can easily deploy and manage for their average technical needs.
TL;DR
Discussion Points
Storage Two solutions are suggested:
Continuous backing up: Disks can be backed up in realtime, running some backup cron tasks on disks to store them on different locations (over S3), need to be researched. some questions:
Monitoring there are 2 levels of monitoring that we need to consider
Deployment Strategy
Project Phase 1
for phase 1, we should aitm to have
Have a monitoring/response plan in place
User Journeys