55 lines
1.3 KiB
Markdown
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.
|