mzws/README.md
2024-11-25 19:30:41 -06:00

55 lines
1.3 KiB
Markdown

Michael Zhang Web Services (MZWS)
===
Welcome to MZWS!
Design Principles
---
* Onboarding should be simple.
Download a binary / run a script, then add more servers / storage / as necessary.
Configuration should be incremental, in that a basic setup will work and more features can be added with more configuration.
Requirements for setup
---
* Just a single machine: host services locally
* With an internal IP: serve to that IP
* With a public IP: automatic ACME certificates
* With more nodes: automatic consensus across the cluster
* With more storage: automatic CRUSH for S3
Features
---
Services:
* Object storage
* Managed static websites
* Managed DB
Features:
* Manage collections of services
* ^Programmatically
Technical docs
---
### Raft docs
* A node initially has no raft startup
Overall state consists of:
* A list of nodes, along with their UUIDs
* Which nodes are exit nodes, i.e hooked up to which public ports
* The exit nodes will receive requests and forward them to others
* TODO: For now, just a single load balancer. In the future, have others?
* Which nodes are available to run Docker services, and which services are running on which hosts
### Assumptions
* All nodes can reach each other directly.
This is either via public internet or a private net like Tailscale.
Bastion systems are not supported.