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